Download presentation
Presentation is loading. Please wait.
Published byΔιογένης Καλογιάννης Modified over 6 years ago
1
32-bitni mikrokontroleri i primena - MS1BMP
2017/2018 Nenad Jovičić
2
Režimi rada procesora Nakon reseta nema razlike između Thread i handler režima. Moguće je slobodno pristupati svim resursima procesora i celog sistema.
3
Ulazak u neprivilegovani Thread režim
Preko kontrolnog registra je moguće ograničiti mogućnosti softvera koji se izvršava u Thread režimu. To se vrši preko kontrolnog registra. Control registar poseduje samo dva bita (3 ako postoji FPU). Njime se kontroliše korišćenje steka i nivo privilegije softvera. Control registar može da se menja samo iz privilegovanog softvera. Bit 2 (FPCA) govori da li se FPU koristi ili ne.
4
Neprivilegovani režim
Nije dozvoljeno raditi sledeće stvari: Pristupati kontrolnom registru Od specijalnih registara moguće je pristupati samo APSR registru. Nije moguće uticati ni na maske za prekide u IPSR registru. Nije dozvoljeno pristupati NVIC-u, Systick-u, ni System Control Block-u. Drugim rečima moguće je samo izvršavati korisnički kod bilo da je u glavnom programu ili prekidnim rutinama.
5
Korišćenje steka Privilegovani Thread koristi MSP.
Neprivilegovani Thread koristi PSP. Potencijalni problem: PSP nije inicijalizovan i korisnik mora da ga inicijalizuje na pogodnu vrednost. Šta je pogodno?
6
Pristup registrima Postoje posebne intrinsic funkcije kojima je moguce pristupati registrima procesora.
7
Privilegovani/neprivilegovani rad
Promena nivoa privilegije je moguća samo u privilegovanom modu rada. U prekidu je moguće uticati na nivo privilegije prilikom povratka u thread režim procesora. OS aplikacije Jednostavne aplikacije
8
Jednostavne OS aplikacije
Softver je praktično uvek privilegovan, ali se deo softvera koji je Kernel OS-a izvršava na MSP steku, a deo softvera koji je korisnički na PSP steku.
9
Vežba 5.1 Operating Modes MSP se inicijalizuje korišćenjem prva 4 bajta IVT tabele Prelazak u neprivilegovani režim
10
Korišćenje PSP
11
Modifikacija? Pokušati upis u CONTROL registar nakon prebacivanja u neprivielgovani režim. Šta se dešava?
12
Šta se dešava u prekidu? U prekidu se uvek koristi MSP
13
SVC – Supervisor Call Koristi se kada korisnički neprivilegovani softver ipak ima potrebu da izvrši određene operacije koje zahtevaju sve privilegije. SVC je nešto kao softverski prekid koji poziva određenu funkciju.
14
Vežba 5.2 Supervisor Call
15
Poziv funkcije kroz prekid
16
Poziv funkcije kroz prekid
Ako je potrebno da korisnički neprivilegovan softver implementira neku funkcionalnost koja traži privilegije, SVC-om se efektivno generiše prekid unutar koga se poziva određena funkcija.
17
Cortex-M4/M7 FPU IEEE 754 standard
Broj ciklusa potrebnih za izvršavanje osnovnih aritmetičkih operacija. tzv. Skalarani registri: 32 single precision ili 16 double precision registra. Svi registri su memorijski mapirani. Ali u njima je moguce cuvati i integere. Konverzija integer/float i obrnuto se vrši za samo jedan ciklus...!
18
FPU FPU je sastavni deo procesora i praktično se izvršavanje FPU instrukcija odvija paralelno izvršavanju klasičnih instrukcija. Po default-u FPU je disable-ovan. Enable-uje se setovanjem odgovarajućih bita u Co processor Access Control Register (CPARC) registru. It is necessary to use the data barrier instruction to ensure that the write is made before the code continues. The instruction barrier command is also used to ensure that the pipeline is flushed before the code continues.
19
FPU i prekidi Sa aktiviranim FPU kontekst koji se automatski čuva na steku se povećava sa 32 na 100 bajtova. Da ovo ne bi povećalo latency uvodi se tzv lazy stacking procedura.
20
Vežba EX 8.1 Floating Point Unit
Proveriti u opcijama projekta da li je uključeno korišćenje FPU.
21
Opcije projekta
22
Testiranje sa i bez FPU
23
Testiranje sa i bez FPU C nema operator za koren pa se forsiranje hardversko korenovanja vrši pozivom intrinsic funkcije __sqrtf(e) sqrt(e) je standardna math.h funkcija za korenovanje koja se implementira preko ostalih operacija
24
SIMD instrukcije Aritmetičke SIMD instrukcije sa modifikatorima
25
SIMD Sabiranje i oduzimanje sa “polovljenjem” rezultata
Množenje sa sabiranjem i oduzimanjem
26
SIMD - instrukcije za podršku
27
Vežba EX 8.2 SIMD Uporediti vreme izvršavanja za operaciju nad nizovima sa i bez SIMD instrukcije
28
DSP algoritmi na Cortex M4
Tipičan FIR filter
29
Vežba 8.5 CMSIS-DSP FIR Uključivanje CMSIS DSP biblioteke
30
Logic Analyzer BLOCK_SIZE postavimo na 1.
Uvodimo globalne promenljive koje mogu da se prikazuju u Logic Analyzer-u
31
Logic Analyzer
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.