Presentation is loading. Please wait.

Presentation is loading. Please wait.

32-bitni mikrokontroleri i primena - MS1BMP 3. deo

Similar presentations


Presentation on theme: "32-bitni mikrokontroleri i primena - MS1BMP 3. deo"— Presentation transcript:

1 32-bitni mikrokontroleri i primena - MS1BMP 3. deo
2013 Nenad Jovičić

2 Najpre o projektima! Primer iz IRS-a koga se verovatno sećate.
Do četvrtka u 9:00 am potrebno je da svako dostavi Idejno rešenje svog projekta. To podrazumeva blok šemu hadrvera na kojoj će se videti sve glavne komponente, i blok šemu internih resursa kontrolera koji će biti korišćeni. Ukoliko je moguće obe šeme treba da budu integrisane u jednu zajedničku. Uz šeme je potrebno dostaviti sažet opis funkcionalnosti sistema. Primer jednog izveštaja je moguće pronaći na stranici: Primer iz IRS-a koga se verovatno sećate.

3 Realizacija projekata
Projekti se realizuju na platformi STM32Dicovery sa sledećim karakteristikama: ARM core 32-bit Cortex-M3 Maksimalna frekfencija 24MHz (1,25 DMIPS/MHz) Obezbenjena operacija množenja u jednom ciklusu Hardverska podrška za deljenje FLASH 128KB SRAM 8KB Napon napajanja 2.0 – 3.6 V Podržava kristalni oscillator u opsegu 4-24MHz Poseduje interni RC fabrički podešen oscilator 8MHz Poseduje interni RC oscillator 40kHz Poseduje PLL za CPU klok Mogućnost vezivanj eksternog oscillatora 32kHz za RTC i backup registre Low-power modovi rada(Sleep, Stop, Standby) Baterijsko napajanje za RTC i backup register Debug modovi SWD i JTAG DMA (7 kanala) AD konvertor (12 bita, 16 kanala, 1.2us) DA konvertor(12 bita) Tajmeri x6 USART x3 SPI x2 I2C x 2 Svakom studentu će biti pored razvojnog sistema biti obezbeđen i odgovarajući set dodatnih komponenti !

4 Smisao projekta Smisao projekta je da se kroz realizaciju nekog konkretnog uređaja detaljno ispitaju mogućnosti procesora ili periferija. Svaki projekat bi već u fazi idejnog rešenja trebalo da ima definisanu ključnu periferiju. Na primer, u projektu koji se bavi akvizicijom analognih signala i njihovim smeštanjem u neki tip interne ili eksterne memorije, akcenat realizacije može da bude na: AD konvertoru koji manje ili više samostalno vrši akviziciju DMA kontroleru koji može samostalno da vrši prenos podataka Procesoru koji imlementira upis u spoljašnju mememoriju Sa tim u vidu, svaki projekat treba da ima neku vrstu benchmarking-a i ako je moguće poređenje različitih metoda implementacije iste stvari. Na primer, u pomenutom projektu mogle bi da se analiziraju: Više različitih načina akvizicije korišćenjem AD konvertora Brzina rada i prenosa DMA kontrolera u slučaju intenzivnog rada procesora sa memorijom Testiranje treba da bude izvedeno nekom softverskom tehnikom uz merenje vremena korišćenjem internih tajmera, ili signaliziranjem kritičnog procesa na nekom izlaznom portu. Na primer, brzina rada algoritma za određivanje orjentacije inercijalnog senzora može da se meri tako što se dok je jedna interacija algoritma u toku, odgovarajući pin mikrokontrolera drži na visokom nivou.

5 Projekti - primeri Primeri projekata mogu se pronaći na stranici:
Projekti pogodni za ispitivanje pojedinih periferija: Prepoznavanje brojeva, Balansirajući robot na dva točka, Procena orjentacije objekta u prostoru, Kalkulator – testiranje računarskih mogućnosti CPU-a Analizator signala, Višekanalni merač napona – testiranje mogućnosti DMA kontrolera ili AD konvertora. Programabilni generator talasnih oblika – testiranje mogućnosti DMA kontrolera ili DA konvertora. Projekti koji uključuju bilo kakve striktno definisane vremenske događaje su pogodni za testiranje mogućnosti tajmera. Ove godine se posebno ohrabruju projekti: koji će imati funkcionalnost koja se može implementirati kratkim asemblerskim funkcijama Projekti koji uključuju implementacije nekih algoritama obrade signala (DFT) Za posebno zaineresovane studente postoji mogućnost realizacije projekata i na platformi Cortex-M4 koja se od platofrme Cortex-M3 razlikuje u povećanoj brzini rada (skoro 10x) i u nekim dodatnim pogodnostima u realizaciji algoritama obrade signala.

6 Modovi rada procesora kod najnaprednijih ARM arhitektura (ARMv7-A)
U različitim modovima rada dozvoljeni su pristupi različitim resursima procesora.

7 Modovi rada kod Cortex-M3 procesora
ARM Cortex-M3 Cortex-M3 poznaje dva režima rada: Thread mode – u kojem se procesor nalazi nakon reseta. Handler mode – u kojem se procesor nalazi kada se izvršava prekidna rutina. Na ove modove se ne može uticati programski. Supervisor Privileged Handler Mode Aborts Interrupts Reset OS System Call (SVCall) Undefined Instruction Application code As mentioned, the M3 supports two operating modes, called Thread and Handler modes, which can be thought of as dividing the system into a Supervisor and a User modes. These are actually the terms used for the modes on ARM processors. Further, the M3 supports two levels of access for code, privileged and unprivileged. The two-level access for code enables the implementation of complex, open systems without sacrificing security of the application. Unprivileged code limits or excludes access to some resources such as specific instructions or memory locations. So the User sides where most application code runs, and supports non-privileged and privileged code. The Supervisor side supports only privileged code. Exceptional events, such as operating systems calls, for example, to allocate memory or perform some other OS task, or error conditions like undefined instructions are the only way to go from the User side to the Supervisor side. Other exception events are external and include things like memory aborts, interrupts, and Resets. And again, the technical term for these two modes or operation are Thread and Handler. Non-Privileged User Thread Mode Memory Instructions & Data

8 Modovi “rada” softvera
Privilegovani mod: U njega se automatski prelazi ulaskom u prekid. Potpuno su dostupni svi sistemski resursi. U ovom modu je moguće menjati nivo privilegije. Neprivilegovani mod: Uobičajeni režim običnog programa. Nisu dostupni svi sistemski resursi. Promena nivoa privilegija moguća samo nakon prekida. Za razliku od moda rada procesora, nivo privilegija se menja programski.

9 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

10 Mapa adresnog prostora

11 Adresni prostor

12 Format memorije CPU vidi memoriju kao linearno mapirani skup bajtova numerisan od broja 0. Podacima (u word ili half-word formatu) u memoriji procesor pristupa u little-endian ili big-endian formatu što se podešava nivoom signala na konfiguracionom pinu pri resetu procesora. Instukcijskom kodu se uvek pristupa u little-endian formatu. Little-Endian : LSB na nižoj adresi Memory Value Offset (LSB) (MSB) ====== =========== uint8_t a = 1; x FF 00 uint8_t b = 2; uint16_t c = 255; // 0x00FF uint32_t d = 0x ; x Big-Endian : MSB na nižoj adresi Memory Value Offset (LSB) (MSB) ====== =========== uint8_t a = 1; x FF uint8_t b = 2; uint16_t c = 255; // 0x00FF uint32_t d = 0x ; x

13 Bit-banding Rešavanje problema tipičnog za Load/Store arhitekturu
Kako obezbediti atomski (neprekidan) pristup nekoj memorijskoj lokaciji i izmenu jednog bita? Uobičajena sekvenca: disable_int→load→modify→store→enable_int. Bit-banding pristup je posredan pristup jednobitnoj lokaciji mapiranoj preko 32-bitne lokacije u alias regionu.

14 Bit-banding Upisivanje sa i bez bit-banidng-a
Očitavanje sa i bez bit-banding-a Atomska operacija

15 Bit-banding b31-b0 mapira se b[0] bit iz alias memorije!!!

16 NVIC – Nested Vector Interrupt Controller
NVIC podržava do 240 prekida sa 256 nivoa prioriteta koji se mogu dinamički menjati. NVIC implementira mehanizme za malo vreme kašnjenja servisiranja prekida. Puni pristup registrima NVIC je moguć iz privilegovanog moda izvršavanja u bilo kom formatu (bajt, polureč, reč). Registri NVIC su sistemski registri u little endian formatu zapisa koji sadrže informacije o broju prekidnih linija, podešavanje sistemskog intervala, dozvoli prekida, baferisanju prekida (pending, pre-empted), prioritetima prekida, informacije o broju i verziji CPU, procesiranju izuzetaka (prioritetima, dozvoli), adresi početka VT, kontroli stanja CPU sa smanjenom potrošnjom. Omogućeno gneždenje prekida

17 IVT – Interrupt Vector Table
Mogućnost remapiranja tabele vektora preko podešavanja registra ofseta tabele Adresa početka tabele poravnata na granicu 1024 bajta. Prekidi periferijskih modula Izuzeci

18 Model procesiranja izuzetaka
Osnovne karakteristike Automatsko snimanje/restauriranje konteksta. Automatsko čitanje vektorske tabele sa adresama ISR. Podrška za tail-chaining bez snimanja/restauracije konteksta između ISR. Dinamička promena prioriteta prekida. Direktna veza CPU i NVIC obezbeđuje brz odgovor na prekid i procesiranje kasno pristiglih prekida višeg prioriteta. Konfigurabilan broj prekida Konfigurabilan broj nivoa prioriteta Odvojeni stek i nivo privilegija u handler i thread modu. Maskiranje prioriteta za implementaciju kritičnih sekcija koda.

19 Model procesiranja izuzetaka
CPU i NVIC obezbeđuju prioritete i servisiranje izuzetaka. Svi izuzeci se servisiraju u handler modu u okviru ISR (Interrupt Service Routine). Stanje procesora (kontekst) se pamti na steku po pojavi izuzetka i automatski se restaurira po kraju ISR. Preuzimanje prekidnog vektora se obavlja paralelno sa snimanjem konteksta.

20 Tipovi izuzetaka SP_init Reset vektor Prekidi periferijskih modula

21 Način procesiranja izuzetaka
Dva mehaizma koje NVIC koristi za smanjivanje vremena kašnjenja servisiranja prekida su: Tail-chaining Lait-arrivals Ovim mehanizmima se postiže determinističko ponašanje sistema. Malo kašnjenje servisiranja izuzetaka što je od velike važnosti kod event-driven namenskih sistema za rad u realnom vremenu. Kod Cortex-M3 arhitekture se postiže vreme kašnjenja servisiranja prekida od 12 taknih ciklusa. Na ARM7 arhitekturi snimanje konteksta traje ciklusa, a restauracija 16 ciklusa. POP 12 ciklusa

22 Zamena konteksta Zamena konteksta je karakteristična za promenu toka izvršavanja programskog koda kao posledice pojave izuzetka ili promene aktivnog taska (procesa, tj. thread-a) na sistemu sa RTOS. Kod Cortex-M3 procesora se pri zameni konteksta na steku pamte sledeći registri: Programski brojač PC Statusni registar procesora xPSR r0-r3 r12 Link registar LR Nakon završetka operacije smeštanja podataka na stek SP se dekrementira za 8 reči.

23 Tail Chaining Tail-Chaining mehanizam se odnosi na situaciju kada dva prekida pristignu u istom trenutku, ili kada pristigne prekid niskog prioriteta za vreme servisiranja prekida višeg prioriteta. Tada će prekid niskog prioriteta čekati završetak ISR koja odgovara prekidu višeg prioriteta, nakon čega će se izvršiti ISR koja odgovara prekidu niskog prioriteta ali bez nepotrebne zamene konteksta između prekidnih rutina (snimanja/restauracije konteksta sa/na stek). Na ovaj način se štedi u vremenu kašnjenja servisiranja prekida za slučaj potrebe za izvršavanjem uzastopnih ISR.

24 Late arrivals Late-arrivalls. U slučaju kada se tokom snimanja konteksta kao posledica pojave prekida niskog prioriteta javi prekid višeg prioriteta, odmah nakon snimanja konteksta, kreće se u izvršavanje prekida višeg prioriteta a zatim prema tail-chaining mehanizmu i prekida nižeg prioriteta.

25 Late arrivals Slično, ako se tokom restauracije konteksta javi prekid višeg prioriteta, proces restauracije se napušta i prelazi se na servisiranje prekida višeg nivoa prioriteta.

26 Inicijalizacija procesora
Inicijalizacija SP registra ADR: 0x POR: SPmem(0x ) Tabela prekidnih vektora (IVT) Počinje od adrese 0x Sadrži 32-bitne adrese ISR Ulaz #1: reset vektor ADR: 0x POR: PCmem(0x ) Izvršavanje programskog koda

27 MPU MPU je komponenta koja omogućava zaštitu pristupa memoriji kroz podršku za zaštitu regiona, preklapanje zaštićenih regiona, dozvolu pristupa i prosleđivanje memorijskih parametara sistemu. U slučaju grešaka u pristupu generiše se Memory_Management izuzetak čiji je prioritet programabilan. Pomoću MPU jedinice moguće je implementirati privilegije pristupa, razdvojiti procese i implementirati pravila pristupa. Registri MPU definišu broj podržanih regiona, baznu adresu, veličinu, prava pristupa...

28 MPU Kod Cortex-M3 MPU podržava do 8 regiona koji mogu biti podeljeni na po 8 podregiona. Neprivilegovani mod izvršavanja Privilegovani mod izvršavanja Opcije podešavanja prava pristupa


Download ppt "32-bitni mikrokontroleri i primena - MS1BMP 3. deo"

Similar presentations


Ads by Google