32-bitni mikrokontroleri i primena - MS1BMP 3. deo

Slides:



Advertisements
Similar presentations
Univerzitet u Nišu Elektronski fakultet Katedra za Elektroniku PREDMET: Mikroprocesorski Sistemi Avgust 2008 MSP430 Razvojna sredstva i Laboratorijska.
Advertisements

1 Predlozi tema za master radove – 2010/11. Cvetana Krstev.
Rješenje za izradu obiteljskog stabla
Prof: doc.dr. Samir Lemeš student: Samir Hrnjić. System restore je komponenta Microsoftovih operativnih sistema Windows Serveri ne podržavaju opciju System.
ARM Cortex-M3 RTLAB 박 유 진.
Matična ploča Mina Mirković I6.
32-bitni mikrokontroleri i primena - MS1BMP 2. deo
32-bitni mikrokontroleri i primena - MS1BMP 2. deo
32-bitni mikrokontroleri i primena - MS1BMP 2. deo
UML Dijagrami Nemanja Zdravković broj Indeksa: 12824
32-bitni mikrokontroleri i primena - MS1BMP
Petlje WHILE – WEND.
32-bitni mikrokontroleri i primena - MS1BMP
Mentor: Kandidat: Prof. dr Radovan Stojanović Božidarka Radović
RP3/predavanje08 Ugniježdeni tipovi Iznimke 10/11/2018
Java Hello world !.
Algoritamske/programske strukture
Algoritmi raspoređivanja
Arhitektura računarskog sistema
32-bitni mikrokontroleri i primena - MS1BMP 2. deo
32-bitni mikrokontroleri i primena - MS1BMP 6. deo
32-bitni mikrokontroleri i primena - MS1BMP
Grafičke kartice.
v.as.mr. Samir Lemeš Univerzitet u Zenici
OPIS KONAČNIH AUTOMATA POMOĆU VHDL-a
Programiranje - Blokovi naredbi i logički tipovi –
CheckBox RadioButton RadioGroup
Naredbe ciklusa.
Matična ploča Motherboard – matična ploča Mainboard – osnovna ploča
REPEAT…UNTIL Naredbe ciklusa.
Internet mreže, FTN - KZI
Programi,Podaci,Varijable,Računanje - 2
SPREGA SA U/I UREDJAJIMA
KREIRANJE OBJEKATA.
32-bitni mikrokontroleri i primena - MS1BMP
Video zapis.
Uvod u Microsoft Project (3)
Uvod u programiranje - matematika – X predavanje
LABORATORIJSKA VEŽBA VEŽBA 4
32-bitni mikrokontroleri i primena - MS1BMP 5. deo
Podešavanje osobina stranica
Arhitektura računarskog sistema
32-bitni mikrokontroleri i primena - MS1BMP
32-bitni mikrokontroleri i primena - MS1BMP
Struktura MAC adrese i Ethernet okvira
Organizacija sistema zasnovana na
32-bitni mikrokontroleri i primena
M-datoteke.
Računarska grafika.
Organizacija adresnog prostora (2)
Ključne reči,identifikatori, konstante i promenljive
Networking u Windows-u 2000 i Windows-u XP
Mikroprocesori i programiranje
Internet FTP usluga.
32-bitni mikrokontroleri i primena - MS1BMP
Lazarus okruženje TIPOVI UNIT-a
Osnovni simboli jezika Pascal
Do While ... Loop struktura
MagistralA (bus) Milan Milovanovic I6.
Home - Bullets & Numbering -
Sharepoint u magli i oblacima
Sustavi za pracenje i vođenje procesa STATEFUL INSPECTION FIREWALL
5. Baze podataka Postavke MS Accessa.
Skup instrukcija procesora
Fakultet elektrotehnike i računarstva
ARHITEKTURA NA RAZINI LOGIČKIH SKLOPOVA
Programiranje - Naredbe za kontrolu toka programa – 3. dio
Programski jezik C++ - Vježbe - 1. dio
Elder Scroll V:Skyrim.
Programski jezik C++ - Vježbe - 2. dio
Presentation transcript:

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

Najpre o projektima! Primer iz IRS-a koga se verovatno sećate. Do četvrtka 17.10. 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: http://tnt.etf.rs/~ms1bmp/projekti Primer iz IRS-a koga se verovatno sećate.

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 !

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.

Projekti - primeri Primeri projekata mogu se pronaći na stranici: http://tnt.etf.rs/~ms1bmp/projekti 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.

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

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

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.

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

Mapa adresnog prostora

Adresni prostor

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; 0x0000 01 02 FF 00 uint8_t b = 2; uint16_t c = 255; // 0x00FF uint32_t d = 0x12345678; 0x0004 78 56 34 12 Big-Endian : MSB na nižoj adresi Memory Value Offset (LSB) (MSB) ====== =========== uint8_t a = 1; 0x0000 01 02 00 FF uint8_t b = 2; uint16_t c = 255; // 0x00FF uint32_t d = 0x12345678; 0x0004 12 34 56 78

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.

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

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

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

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

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 1-240. Konfigurabilan broj nivoa prioriteta 8-256. Odvojeni stek i nivo privilegija u handler i thread modu. Maskiranje prioriteta za implementaciju kritičnih sekcija koda.

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.

Tipovi izuzetaka SP_init Reset vektor Prekidi periferijskih modula

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 24-42 ciklusa, a restauracija 16 ciklusa. POP 12 ciklusa

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.

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.

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.

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.

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

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...

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