1 / 42

32-bitni mikrokontroleri i primena - MS1BMP

32-bitni mikrokontroleri i primena - MS1BMP. 2013 Nenad Jovičić. Organizacija kursa. Predavači: Prof. Dr Dragan V asiljević dragan@el.etf.rs As. Dr Nenad Jovičić nena d@etf.rs Web: tnt.etf.rs/~ms1bmp Ispit: D emonstracija projekta + diskusija . Projekat.

ledell
Download Presentation

32-bitni mikrokontroleri i primena - MS1BMP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Organizacija kursa • Predavači: • Prof. Dr Dragan Vasiljevićdragan@el.etf.rs • As. Dr Nenad Jovičić nenad@etf.rs • Web: tnt.etf.rs/~ms1bmp • Ispit: Demonstracija projekta + diskusija

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

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

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

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

  7. ARM partneri

  8. Aplikacije

  9. Najmanji ARM računar Wireless Sensor Network Sensors, timers Cortex-M0 +16KB RAM 65nm UWB Radio antenna 10 kBStorage memory ~3fW/bit 12µAh Li-ion Battery A B C Wirelessly networked into large scale sensor arrays University of Michigan Cortex-M0; 65¢

  10. Najveći ARM računar 4200 ARM powered Neutrino Detectors 70 bore holes 2.5km deep 60 detectors per string starting 1.5km down 1km3 of active telescope 2.5km 1km Work supported by the National Science Foundation and University of Wisconsin-Madison

  11. Lider u sferi mobilnih računara

  12. Progres u oblasti namenski računarskih (embedded) sistema

  13. ARM – evolucija arhitektura

  14. ARM – evolucija arhitektura

  15. x1-4 Cortex-A9 Cortex-A5 Cortex-A15 x1-4 x1-4 Cortex-R4 Cortex-A8 Cortex-M1 Cortex™-M3 Cortex-M0 SC300™ Cortex familije ...2.5GHz • ARM 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 12k gates...

  16. Cortex familije

  17. Šta je arhitektura?

  18. Cortex-M3 – procesor baziran na ARMv7-M arhitekturi RISCprocesorHarwardarhitektura

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

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

  21. Tipična arhitektura Cortex-M3 mikrokontrolera

  22. UART Timer Keypad PIO AMBA – advanced microcontroller bus architecture AHB – advanced high-performance bus APB – advanced peripheral bus High Performance ARM processor APB High Bandwidth External Memory Interface APB Bridge AHB High-bandwidth on-chip RAM DMA Bus Master Visoke performanse Protočni prenos Burst prenosi Višestruki masteri Niska potrošnja Mala brzina Jednostavan interfejs Veza sa Slave periferijama

  23. Registri procesora Registri 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

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

  25. LR – Link Register • LR se koristi za čuvanje adrese povratka iz potprograma - na primer kada je skok izvršen BL (Branchwith Link) instrukcijom:

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

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

  28. Pristup registrima kontrole prekida • Iz C-a: • Iz Asembler-a:

  29. CONTROL registar • Control registar poseduje samo dva bita. • Njime se kontroliše korišćenje steka i nivo privilegije softvera.

  30. Protok podataka kroz CPU I_HRDATA Instruction Decode D_HWDATA Write Data Register Address Incrementer D_HRDATA Read Data Register D_HADDR Address Register B Address Incrementer Register Bank Mul/Div Barrel Shifter ALU I_HADDR ALU A Address Register Writeback INTADDR

  31. Pipeline • Pipeline u tri nivoa – tako zvana trostepena protočna obrada. • Pretetch jedinica može da unapred učita do tri 32-bitne instrukcije. 2nd Stage - Decode 3rd Stage - Execute 1st Stage - Fetch Address Phase & Write Back Data Phase Load/Store & Branch Write AGU Instruction Decode & Register Read Fetch(Prefetch) Multiply & Divide Branch Shift ALU & Branch Branch forwarding & speculation Execute stage branch (ALU branch & Load Store Branch)

  32. Značaj prefetch buffer-a

  33. Optimalni pipeline • Sve instrukcije su nad registrima • Efektivno dobijamo instrukciju po ciklusu

  34. Pipeline sa instrukcijom skoka • 3 ciklusa su potrebna da se završi skok

  35. Modovi rada procesora kod najnaprednijih ARM arhitektura (ARMv7-A)

  36. Aborts Interrupts Reset System Call (SVCall) Undefined Instruction Application code 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. Supervisor Privileged Handler Mode OS Non-Privileged User Thread Mode Memory Instructions & Data

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

  38. 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. OSaplikacije Jednostavneaplikacije

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

  40. Razvoj instrukcijskog seta 32-bitni instrukcijski set Pomešan 16-bitni i 32-bitni instrukcijski set 16-bitni instrukcijski set

  41. 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 odARM • Thumb-2 daje za oko 25% veće performanse u odnosu naThumb

  42. Kako je nekada rađeno • Kod ranijih ARM arhitektura prebacivanje sa jednog na drugi instrukcijski set je posedovalo značajan overhead.

More Related