Download - 32-bitni mikrokontroleri i primena - MS1BMP
![Page 1: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/1.jpg)
32-bitni mikrokontroleri i primena - MS1BMP
2013Nenad Jovičić
![Page 2: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/2.jpg)
Organizacija kursa
• Predavači:– Prof. Dr Dragan Vasiljević [email protected] – As. Dr Nenad Jovičić [email protected]
• Web: tnt.etf.rs/~ms1bmp
• Ispit: Demonstracija projekta + diskusija
![Page 3: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/3.jpg)
Projekat• Implementacija jednostavnog hardversko-softverskog sistema/uređaja na
Cortex-M3 razvojnoj platformi.• Projekat ne treba da bude obiman po broju korišćenim periferija, ali treba da
bude detaljan u ispitivanju mogućnosti izabranih periferija. Ide se u dubinu a ne u širinu.
![Page 4: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/4.jpg)
Projekat - rokovi• danas - 17.10.2013. – Prikupljanje predloga projekata.• 17.10.2013. Izveštaj 1. - Idejno rešenje.• 17.10.2013. - 31.10.2013. – Definisanje spiska potrebnih
komponenti. • 31.10.2013. Izveštaj 2. - Dizajn hardvera na nivou
električne šeme. Dizajn softvera na nivou osnovnih softverskih blokova i dijagrama toka.
• 31.10.2013. - 28.11.2013. – Nabavka komponenti.• 28.11.2013. - Realizacija/finalizacija projekta.• Ispitni rok januar 2014 – Finalni izveštaj.
![Page 5: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/5.jpg)
Literatura
• ARM System-on-Chip Architecture, Steve Furber, Addison-Wesley, 2000.
• ARM System Developer's Guide: Designing and Optimizing System Software, Andrew N. Sloss, Dominic Symes, Chris Wright and John Rayfield, Elsevier, 2004.
• The Definitive Guide to the ARM Crotex-M3, Joseph Yiu, Elsevier, 2010.
![Page 6: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/6.jpg)
ARM
• Holding osnovan 1990 godine, kao zajedničko preduzeće kompanija Accorn, Apple i VLSI Technology.
• ARM ne proizvodi čipove već se bavi dizajnom arhitekture i procesora, tj. IP-a.
• Skoro svi vodeći proizvođači elektronskih komponenti otkupljuju licence od ARMa i na osnovu njih proizvode svoje varijante mikrokontrolera i mikroprocesora.
• Osnovna ideja je da procesorsko jezgro bude standardizovano (ARM), a da svaki proizvođač dodaje svoje specifične periferije.
![Page 7: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/7.jpg)
ARM partneri
![Page 8: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/8.jpg)
Aplikacije
![Page 9: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/9.jpg)
Najmanji ARM računar
A CB
Wirelessly networked into large scale sensor arrays
Battery Solar Cells
Processor, SRAM and PMU
University of Michigan
Sensors, timers
Cortex-M0 +16KB RAM 65nmUWB Radio antenna
10 kB Storage memory ~3fW/bit
12µAh Li-ion Battery
Wireless Sensor Network
Cortex-M0; 65¢
![Page 10: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/10.jpg)
Najveći ARM računar
4200 ARM poweredNeutrino Detectors
Work supported by the National Science Foundation and University of Wisconsin-Madison
2.5km
70 bore holes 2.5km deep
60 detectors per stringstarting 1.5km down
1km3 of active telescope
1km
![Page 11: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/11.jpg)
Lider u sferi mobilnih računara
![Page 12: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/12.jpg)
Progres u oblasti namenski računarskih (embedded) sistema
![Page 13: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/13.jpg)
ARM – evolucija arhitektura
![Page 14: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/14.jpg)
ARM – evolucija arhitektura
![Page 15: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/15.jpg)
Cortex familije
Cortex-R4
Cortex-A8
SC300™
Cortex-M1
Cortex™-M3
...2.5GHzx1-4
Cortex-A9
12k gates...Cortex-M0
x1-4
Cortex-A5
x1-4
Cortex-A15ARM Cortex-A family (v7-A):Applications processors for full OS and 3rd party applications
ARM Cortex-R family (v7-R):Embedded processors for real-time signal processing, control applications
ARM Cortex-M family (v7-M):Microcontroller-oriented processors for MCU and SoC applications
![Page 16: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/16.jpg)
Cortex familije
![Page 17: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/17.jpg)
Šta je arhitektura?
![Page 18: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/18.jpg)
Cortex-M3 – procesor baziran na ARMv7-M arhitekturi
RISC procesor Harward arhitektura
![Page 19: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/19.jpg)
Cortex-M3 core periferije• NVIC (Nested Vector Interrupt Controller) – integrisani prekidni kontroler koji
omogućava procesiranje prekida sa malim kašnjenjem• WIC (Wakeup Interrupt Controller) – opcioni kontroler zahteva za buđenje iz
režima smanjene potrošnje.• SYSTICK – sistemski tajmer tj. 24bitni brojač na dole namenjen za podršku
generisanju sistemskog prekida za operativne sisteme.• MPU (Memory Protection Unit) – opciona jedinica za kontrolu pristupa
pojedinim regionima u memoriji• ETM (Embedded Trace Macrocell) – modul koji obezbeđuje logovanje
izvršavanja instrukcija• DWT (Data Watchpoint and Trace Unit) – modul koji implementira data
watchpoint • FPB (Flash Patch and Breakpoint Unit) – modul koji omogućava preusmeravanje
izvršavanja programa iz CODE memorije u nekid rugi deo memorije.
![Page 20: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/20.jpg)
Magistrale za pristup instrukcijama i podacima
• ICode memorijska magistrala bazirana na AHB-Lite standardu – koristi se za prenos instrukcija iz Code adresnog prostora (0x00000000 do 0x1FFFFFFF).
• Dcode memorijska magistrala bazirana na AHB-Lite standardu – koristi se za prenos podataka iz Code adresnog prostora (0x00000000 do 0x1FFFFFFF).
• System memorijska magistrala bazirana na AHB-Lite standardu – koristi se za prenos i instrukcija i podataka iz System adresnog prostora (0x20000000 do 0xDFFFFFFF i 0xE0100000 do 0xFFFFFFFF).
• PPB magistrala – pristup internim i eksternim privatnim periferijama.
![Page 21: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/21.jpg)
Tipična arhitektura Cortex-M3 mikrokontrolera
![Page 22: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/22.jpg)
AMBA – advanced microcontroller bus architecture
AHB – advanced high-performance bus APB – advanced peripheral bus
High PerformanceARM processor
High-bandwidthon-chip RAM
HighBandwidthExternalMemoryInterface
DMABus Master
APBBridge
Keypad
UART
PIO
TimerAHB
APB
Visoke performanseProtočni prenosBurst prenosiVišestruki masteri
Niska potrošnjaMala brzinaJednostavan interfejsVeza sa Slave periferijama
![Page 23: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/23.jpg)
Registri procesoraRegistri opšte namene:
– 13 registara opšte namene, r0-r12– Pokazivač steka SP (r13)– Link registra LR (r14)– Programski brojač PC (r15)– Registri r0-r7 (niži registri) su dostupni
preko svih instrukcija– Registri r8-r12 (viši registri) su dostupni
preko svih 32-bitnih instrukcija.
Specijalni registri:– Programski statusni registar xPSR– Registri za kontrolu prekida PRIMASK,
FAULTMASK, BASEPRI– Kontrlni registra CONTROL
![Page 24: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/24.jpg)
SP – Stack pointer• Registar koji se fizički realizuje kao dva 32-bitna registra. • Main Stack Pointer (MSP) – ovaj registar je podrazumevani registar posle
reseta i mogu da ga koriste i korisnički program i prekidne rutine. U slučaju korišćenja operativnog sistema, ovaj registar koriste Kernel i prekidi, kao i neki delovi korisničkih Thread-ova sa posebnim privilegijama.
• Process Stack Pointer (PSP) – ovaj registar je namenjen za korišćenje od strane neprivilegovanih delova softvera. Na primer, to su korisnički Thread-ovi u Operativnom sistemu.
• U zavisnosti od odgovarajućeg konfiguracionog bita u CONTROL registru pristupa se jednom ili drugom od ova dva registra.
• Kod Cortex-M3 familije stek je realizovan kao Full Descending Stack, što znači da stek raste prema nižim adresama i pokazuje na poslednju zauzetu adresu.
![Page 25: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/25.jpg)
LR – Link Register
• LR se koristi za čuvanje adrese povratka iz potprograma - na primer kada je skok izvršen BL (Branch with Link) instrukcijom:
![Page 26: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/26.jpg)
Statusni rigistri• Application Program Status Register, APSR
– Sadrži flegove koje koristi korisnički neprivilegovani aplikativni softver
• Interrupt Program Status Register, IPSR – Sadrži broj izuzetka/prekida koji se trenutno izvršava
• Execution Program Status Register, EPSR– Sadrži specijalne flegove koji kontrolišu rad procesora. Na primer
biti ICI/IT se koriste za kontrolu prekidanja uslovnih blokova instrukcija i instrukcija koje rade višestruke Load/store operacije (LDM/STM)
![Page 27: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/27.jpg)
Registri za kontrolu prekida
• Setovanje PM bita u PRIMASK registru maskira sve prekide osim NMI i HardFault prekida.
• Setovanje FM bita u FAULTMASK registru maskira sve prekide osim NMI prekida.
• BASEPRI registra definiše nivo prioriteta prekida kojima je dozvoljeno generisanje.
![Page 28: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/28.jpg)
Pristup registrima kontrole prekida
• Iz C-a:
• Iz Asembler-a:
![Page 29: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/29.jpg)
CONTROL registar
• Control registar poseduje samo dva bita.• Njime se kontroliše korišćenje steka i nivo privilegije
softvera.
![Page 30: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/30.jpg)
Protok podataka kroz CPU
RegisterBank Mul/Div
AddressIncrementer
ALU
B
A
INTADDR
I_HADDR
AddressRegister
BarrelShifter
Writeback
ALU
Read DataRegister
Write DataRegister
InstructionDecode
I_HRDATA
D_HWDATA
D_HRDATA
AddressIncrementer
D_HADDRAddressRegister
![Page 31: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/31.jpg)
Pipeline
• Pipeline u tri nivoa – tako zvana trostepena protočna obrada.
• Pretetch jedinica može da unapred učita do tri 32-bitne instrukcije.
Branch forwarding & speculation
1st Stage - Fetch 2nd Stage - Decode 3rd Stage - Execute
Execute stage branch (ALU branch & Load Store Branch)
Fetch(Prefetch)
AGU
Instruction Decode &
Register Read
Branch
Address Phase & Write
Back
Data Phase Load/Store &
Branch
Multiply & Divide
Shift ALU & Branch
Write
![Page 32: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/32.jpg)
Značaj prefetch buffer-a
![Page 33: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/33.jpg)
Optimalni pipeline
• Sve instrukcije su nad registrima• Efektivno dobijamo instrukciju po ciklusu
![Page 34: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/34.jpg)
Pipeline sa instrukcijom skoka
• 3 ciklusa su potrebna da se završi skok
![Page 35: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/35.jpg)
Modovi rada procesora kod najnaprednijih ARM arhitektura (ARMv7-A)
![Page 36: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/36.jpg)
Modovi rada kod Cortex-M3 procesora
• 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.
ARM Cortex-M3
Application code
OS
System Call (SVCall)Undefined Instruction
Privileged
Memory
Instructions & Data
AbortsInterruptsReset
Non-Privileged
Supervisor
User
Handler Mode
Thread Mode
![Page 37: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/37.jpg)
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.
![Page 38: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/38.jpg)
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
![Page 39: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/39.jpg)
Arhitektura instrukcijskog setaISA Instruction set architecture
“Instruction set architecture (ISA) is the structure of a computer that a machine language programmer (or a compiler) must understand to write a correct (timing independent) program for that machine”
IBM introducing 360 in 1964
![Page 40: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/40.jpg)
Razvoj instrukcijskog seta
32-bitni instrukcijski set
16-bitni instrukcijski set
Pomešan 16-bitni i 32-bitni instrukcijski set
![Page 41: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/41.jpg)
Poređenje performansi instrukcijskih setova
• Instrukcijski set promenljive dužine– ARM instrukcije su bile isključivo 32-bitne– Thumb instrukcije su bile isključivo 16-bitne– Thumb-2 instrukcije mogu da budu i 16-bitne i
32-bitne,
• Thumb-2 daje za oko 26% veću gustinu koda od ARM
• Thumb-2 daje za oko 25% veće performanse u odnosu na Thumb
![Page 42: 32-bitni mikrokontroleri i primena - MS1BMP](https://reader033.vdocuments.us/reader033/viewer/2022061604/56816337550346895dd3c572/html5/thumbnails/42.jpg)
Kako je nekada rađeno
• Kod ranijih ARM arhitektura prebacivanje sa jednog na drugi instrukcijski set je posedovalo značajan overhead.