Prekidi u STM32F103, NVIC Flashcards
Koji rukovaoci izuzetnim situacijama postoje u STM32F103?
Fault handler
System handler
Šta radi fault handler?
Obrađuje fault izuzetke
Šta radi System handler?
Obrađuje:
- fault izuzetke
- nemaskirajuće prekide (NMI)
- supervisor call (SVC)
- PendSV
- SysTick
Kako se zove rukovalac prekidima periferija?
ISR = Interrupt Service Routine
Šta radi ISR?
Obrađuje izuzetke IRQ0-IRQ67
Koji mehanizam se koristi za obradu prekida u STM32F103?
Vektorisani mehanizam sa ugnježđivanjem izuzetaka
Od koje adrese počinje vektor tabela?
Počinje od adrese 0 (4?), ali može da se relocira na drugu adresu
Koliko linija za prekide ima NVIC?
68 linija za prekide
Gde se nalazi NVIC kontroler u odnosu na procesor?
Blisko je spregnut sa procesorom
Da li instrukcije mogu da se prekinu u STM32F103 upotrebom prekida?
Da, postoji mogućnost prekidanja instrukcija dugotrajnog izvršavanja
Kako da se smanji potrošnja STM32F103 upotrebom prekida?
Može da se upravlja napajanjem i da se uključe modovi smanjene potrošnje
Koliko nivoa prioriteta prekida ima u STM32F103?
16 nivoa prioriteta
Zašto mogu da se grupišu prekidi u STM32F103?
U cilju bolje kontrole preotimanja (preemption control)
Kako može da se vrši dozvoljavanje i zabrana prekida u STM32F103?
Pojedinačno i na nivou procesora
Na šta procesor reaguje kad stigne prekid?
Na nivo (level triggered interrupt)
i na ivicu (edge triggered interrupt)
Kakve moraju biti adrese svih prekidnih rutina u STM32F103?
Neparne, da bi procesor ostao u Thumb stanju
Koji tipovi izuzetaka postoje u STM32F103 (Cortex-M3)?
Reset
NMI = Non Maskable Interrupt
Hard fault
Memory management fault
Bus fault
Usage fault
SVCall
PendSv
SysTick
Maskirajući prekidi
Kada se aktivira reset izuzetak?
Po uspostavljanju napajanja i nakon reseta sistema (nakon deaktivacije reset signala)
Koji izuzetak se jedini izvršava u privilegovanom režimu u Thread modu?
Reset izuzetak
Koji je prioritet reset izuzetka?
-3, fiksno najviši
Koji je prioritet NMI izuzetka?
-2, fiksno drugi najviši
Kako se aktivira NMI izuzetak?
Spolja ili softverski
Da li je moguće zabraniti NMI izuzetak?
Nije moguće (zove se nemaskirajući prekid)
Koji je prioritet Hard fault izuzetka?
-1, fiksno treći najviši
Kada se izvršava hard fault?
- kao posledica greške tokom rada sistema
- kada druga rutina ne može da obradi nastalu grešku u sistemu
Kada nastaje memory management fault?
- u slučaju narušavanja pravila zaštite u MPU
- u slučaju pokušaja izvršavanja instrukcija u regionu sa XN atributom
Šta je bus fault?
Greška nastala tokom pristupa instrukcijama i podacima
Šta je usage fault?
Greška nastala izvršavanjem instrukcije na nepredviđen način
Kada se diže usage fault izuzetak?
- nepostojeća instrukcija
- nedozvoljen neporavnat pristup
- nevalidno stanje prilikom izvršavanja instrukcija
- greška pri povratku iz neke druge rutine (RET)
- deljenje nulom
Kada se vrši eskalacija grešaka na hard fault?
Kada iz različitih razloga grešku nije moguće obraditi namenskim rukovaocem:
- rukovalac proizvodi isti tip greške zbog koje je pozvan
- rukovalac generiše novu grešku istog ili nižeg prioriteta
- neki drugi rukovalac generiše grešku čiji rukovalac je istog ili nižeg prioriteta
- odgovarajući rukovalac u konfiguraciji nije omogućen
Koji je izuzetak (poseban slučaj) kada ne dolazi do eskalacije na hard fault?
Slučaj u kojem bus fault nastane tokom operacije push, prilikom ulaska u rukovalac za bus fault.
Kada se vrši lockup (zaključavanje)?
Kada se u reset ili NMI obradi desi hard fault - procesor se zaustavlja, ne izvršava instrukcije.
Koji sve prekidi postoje u STM32F103?
Interrupt (IRQ)
Šta je sistemski poziv u STM32F103?
SVCall prekid.
Aplikacija iz neprivilegovanog režima izvršava predefinisane sistemske usluge u privilegovanom režimu.
Kako se diže PendSV prekid/izuzetak?
Zahteva se softverski, postavljanjem odgovarajućeg kontrolnog bita u ICSR
Šta je SysTick?
Prekid sistemskog tajmera
Da li SysTick može da se aktivira i softverski?
Da, kroz ICSR
Šta je IRQ?
Interrupt Request, prekid periferije
Koliko različitih prekida periferija postoji u STM32F103?
68 različitih prekida
Koja komponenta povezuje određene pinove mikrokontrolera STM32F103 kao izvore zahteva za prekid sa NVIC?
EXTI - External Interrupt / Event Controller
Šta znači EXTI?
External Interrupt / Event Controller