32-bitni mikrokontroleri i primena - MS1BMP

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

description

32-bitni mikrokontroleri i primena - MS1BMP. 2013 Nenad Jovičić. Organizacija kursa. Predavači: Prof. Dr Dragan V asiljević [email protected] As. Dr Nenad Jovičić nena [email protected] Web: tnt.etf.rs/~ms1bmp Ispit: D emonstracija projekta + diskusija . Projekat. - PowerPoint PPT Presentation

Transcript of 32-bitni mikrokontroleri i primena - MS1BMP

Page 1: 32-bitni mikrokontroleri i primena - MS1BMP

32-bitni mikrokontroleri i primena - MS1BMP

2013Nenad Jovičić

Page 2: 32-bitni mikrokontroleri i primena - MS1BMP

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

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

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

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

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

ARM partneri

Page 8: 32-bitni mikrokontroleri i primena - MS1BMP

Aplikacije

Page 9: 32-bitni mikrokontroleri i primena - MS1BMP

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

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

Lider u sferi mobilnih računara

Page 12: 32-bitni mikrokontroleri i primena - MS1BMP

Progres u oblasti namenski računarskih (embedded) sistema

Page 13: 32-bitni mikrokontroleri i primena - MS1BMP

ARM – evolucija arhitektura

Page 14: 32-bitni mikrokontroleri i primena - MS1BMP

ARM – evolucija arhitektura

Page 15: 32-bitni mikrokontroleri i primena - MS1BMP

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

Cortex familije

Page 17: 32-bitni mikrokontroleri i primena - MS1BMP

Šta je arhitektura?

Page 18: 32-bitni mikrokontroleri i primena - MS1BMP

Cortex-M3 – procesor baziran na ARMv7-M arhitekturi

RISC procesor Harward arhitektura

Page 19: 32-bitni mikrokontroleri i primena - MS1BMP

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

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

Tipična arhitektura Cortex-M3 mikrokontrolera

Page 22: 32-bitni mikrokontroleri i primena - MS1BMP

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

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

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

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

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

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

Pristup registrima kontrole prekida

• Iz C-a:

• Iz Asembler-a:

Page 29: 32-bitni mikrokontroleri i primena - MS1BMP

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

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

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

Značaj prefetch buffer-a

Page 33: 32-bitni mikrokontroleri i primena - MS1BMP

Optimalni pipeline

• Sve instrukcije su nad registrima• Efektivno dobijamo instrukciju po ciklusu

Page 34: 32-bitni mikrokontroleri i primena - MS1BMP

Pipeline sa instrukcijom skoka

• 3 ciklusa su potrebna da se završi skok

Page 35: 32-bitni mikrokontroleri i primena - MS1BMP

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

Page 36: 32-bitni mikrokontroleri i primena - MS1BMP

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

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

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

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

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

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

Kako je nekada rađeno

• Kod ranijih ARM arhitektura prebacivanje sa jednog na drugi instrukcijski set je posedovalo značajan overhead.