r - ARM Cortex-M3 STM32F103(R6) mikrokontroler Flashcards

1
Q

Kako se zove mikrokontroler koji učimo na kursu MIPS?

A

STM32F103 (R6)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Šta je ARM Cortex-M3?

A

Procesorsko jezgro za mikrokontrolere

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

ARM Cortex-M3 je deo koje arhitekture?

A

Armv7-M arhitekture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Koji su moduli Cortex M3 procesora?

A

Procesorsko jezgro,
Periferije jezgra,
Opcioni moduli

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Koje su periferije Cortex-M3 procesorskog jezgra?

A

NVIC (Nested Vectored Interrupt Controller)
SCB (System Control Block)
System Timer
MPU (Memory Protection Unit)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Šta je NVIC periferija Cortex-M3 jezgra?

A

Nested Vectored Interrupt Controller

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Šta je MPU periferija Cortex-M3 jezgra?

A

Memory Protection Unit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Šta je SCB periferija Cortex-M3 jezgra?

A

System Control Block

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Koji su opcioni moduli Cortex-M3 procesora?

A

Debug
Data Watchpoint and Trace Unit
Instrumentation Trace Macrocell Unit
Embedded Trace Macrocell
Trace Port Interface Unit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Kakva je arhitektura Cortex-M3 jezgra?

A

32-bitna load/store (Harvard) arhitektura

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Kakva je protočna obrada u Cortex-M3?

A

Trostepena protočna obrada

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Koje veličine su podaci u Cortex-M3?

A

Reč (32 bita), a može da bude i polureč (16b) i bajt (8b)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Kakvu aritmetiku ima Cortex-M3?

A

Označenu i neoznačenu aritmetiku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Koji instrukcijski set ima Cortex-M3?

A

Thumb instrukcijski set

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Koje su veličine instrukcija u Cortex-M3?

A

Instrukcije su veličine 16 bita i 32 bita

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Koji režimi rada postoje u Cortex-M3?

A

1) Thread režim rada
2) Exception režim rada

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Ko koristi exception režim rada u Cortex-M3?

A

Prekidne rutine i izuzeci

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Tipovi izvršavanja instrukcija u thread režimu rada u Cortex-M3?

A

1) privilegovano izvršavanje
2) neprivilegovano izvršavanje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Ko koristi privilegovano izvršavanje u thread režimu rada u Cortex-M3?

A

Operativni sistem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Koji režim rada je podrazumevani za operativni sistem u Cortex-M3?

A

Privilegovani

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Koji registar se koristi za upravljanje privilegijama i postavkama režima rada u Cortex-M3?

A

CONTROL registar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Ko koristi neprivilegovano izvršavanje u thread režimu rada u Cortex-M3?

A

Aplikativni softver

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Kako aplikativni softver iz neprivilegovanog režima rada prelazi u privilegovani u Cortex-M3?

A

Koristeći SVC = Supervisor Call

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Šta znači SVC?

A

Supervisor Call

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Šta nije dozvoljeno u neprivilegovanom režimu rada kod Cortex-M3?
- ograničeno je korišćenje MSR i MRS instrukcija - onemogućeno korišćenje CPS instrukcije - nema pristupa sistemskom tajmeru, NVIC i SCB - može biti ograničen pristup memoriji i periferijama
26
Šta znači MSR instrukcija?
Move to Special Register
27
Šta znači MRS instrukcija?
Move from Special Register
28
Šta znači CPS instrukcija?
Change Processor State
29
Koji su opštenamenski registri ARM Cortex-M3 procesora?
R0-R12
30
Koji registar je pokazivač na stek kod ARM Cortex-M3 procesora?
SP (R13)
31
Koje vrste steka postoje u ARM Cortex-M3 procesoru?
Main Stack (MSP) Process Stack (PSP)
32
Kakav je stek kod ARM Cortex-M3 procesora?
Pun opadajući stek
33
Na koju vrednost se postavlja MSP prilikom reseta?
Na vrednost sa memorijske lokacije 0 // mem(0)
34
Na koju vrednost se postavlja PSP prilikom reseta?
Nepoznato je stanje PSP prilikom reseta.
35
Na koju vrednost se postavljaju opštenamenski registri prilikom reseta?
Nepoznato je stanje opštenamenskih registara prilikom reseta.
36
Šta znači LR?
Link Registar
37
Koji registar je Link Registar?
LR (R14)
38
Na koju vrednost se postavlja LR prilikom reseta?
Na 0xFFFFFFFF
39
Za šta služi LR?
Link Registar čuva adresu povratka iz potprograma
40
Koji registar je programski brojač?
PC (R15)
41
Na koju vrednost se postavlja registar PC prilikom reseta?
Na vrednost sa memorijske adrese 4 // mem(4)
42
Koja je vrednost bita 0 u PC registru?
Uvek 0, instrukcije moraju biti poravnate na pola reči
43
Koji bit uvek ima vrednost 0 u PC registru?
Bit 0, dohvatanje instrukcija mora biti poravnato na pola reci
44
Kako instrukcije moraju biti poravnate u Cortex-M3?
Na pola reči
45
Zašto je bit 0 PC registra uvek 0?
Zbog poravnanja instrukcija na pola reči (i da bi bit 0 odredišnih adresa mogao da se koristi za informaciju da li se radi o ARM (0) ili Thumb (1) instrukcijskom setu)
46
Kako se obezbeđuje poravnanje instrukcija na pola reči u Cortex-M3 procesoru?
Bit 0 registra PC je uvek 0.
47
Šta je PSR?
Program Status Register
48
Na koju vrednost se postavlja PSR prilikom restarta?
Na vrednost 0x01000000
49
Od kojih registara se sastoji PSR?
APSR (Application Program Status Register) IPSR (Interrupt Program Status Register) EPSR (Execution Program Status Register)
50
Šta znači APSR?
Application Program Status Register
51
Šta znači IPSR?
Interrupt Program Status Register
52
Šta znači EPSR?
Execution Program Status Register
53
Na koju vrednost se postavlja APSR prilikom restarta?
0x00000000
54
Na koju vrednost se postavlja IPSR prilikom restarta?
0x00000000
55
Na koju vrednost se postavlja EPSR prilikom restarta?
0x01000000
56
U kom režimu rada procesora Cortex-M3 se može koristiti PSR?
Samo u privilegovanom
57
U kom režimu rada procesora Cortex-M3 se može koristiti APSR?
I u privilegovanom i u neprivilegovanom
58
U kom režimu rada procesora Cortex-M3 se može koristiti EPSR?
Samo u privilegovanom
59
U kom režimu rada procesora Cortex-M3 se može koristiti IPSR?
Samo u privilegovanom
60
Da li se može upisitvati u APSR?
Da
61
Da li se može upisitvati u IPSR?
Ne, može se samo čitati
62
Da li se može upisitvati u EPSR?
Ne, može se samo čitati (ali vraća 0)
63
Koja vrednost treba da bude u IPSR?
Broj izuzetka koji se izvršava, ili 0
64
Koje režime izvršavanja imaju ARM procesori (u zavisnosti od instrukcijskog seta koji se koristi)?
ARM i Thumb
65
Koji bit u EPSR govori da je postavljen Thumb režim izvršavanja?
Bit 24. (najniži bit najvišeg bajta), T bit
66
Koja greška se javi ako se pokuša postavljanje na 0 T bita (za Thumb režim rada) registra EPSR?
Usage fault (vrsta greške koja se javlja kada se pokuša izvršiti instrukcija koja nije validna ili nije dozvoljena)
67
Koja greška se javi ako se bit T (za Thumb režim rada) postavi na 0 pri resetu?
Hard fault (greška koja obustavlja rad sistema)
68
Šta se upisuje u T bit prilikom skokova?
Najniži bit odredišne adrese (koji je uvek 1)
69
Koja je vrednost najnižeg bita svih adresa u Thumb režimu u ARM arhitekturi?
1, a 0 je rezervisana za ARM režim.
70
Šta znači LDM instrukcija?
Load Multiple
71
Šta znači STM instrukcija?
Store Multiple
72
Zašta služe ICI/IT biti u EPSR registru?
Za nastavljanje izvršavanja LDM, STM i IfThen instrukcija
73
Šta znači ICI/IT?
Interruptible Continuation Instruction / If Then
74
Kako pristupiti trima registrima APSR, IPSR i EPSR odjednom?
Preko registra XPSR
75
Kako pristupiti dvama registrima IPSR i EPSR odjednom?
Preko registra IEPSR
76
Kako pristupiti dvama registrima IPSR i APSR odjednom?
Preko registra IAPSR
77
Kako pristupiti dvama registrima EPSR i APSR odjednom?
Preko registra EAPSR
78
Kako ispitati EPSR registar?
Uz pomoć steka
79
Šta vraća čitanje EPSR registra?
Nulu
80
Šta se dešava kada se pokuša upis u EPSR?
Ignoriše se
81
U kom režimu može da se čita ili upisuje u kontrolni registar jezgra?
Samo u privilegovanom režimu
82
Koji bit kontrolnog registra govori u kom režimu u Thread modu se program izvršava?
Bit 0 CONTROL registra
83
Šta nam govori to da je bit 0 kontrolnog registra 0?
Privilegovan režim Thread moda
84
Šta nam govori to da je bit 0 kontrolnog registra 1?
Neprivilegovan režim Thread moda
85
Koji bit kontrolnog registra govori koji stek se koristi?
Bit 1 CONTROL registra
86
Šta nam govori to da je bit 1 kontrolnog registra 0?
Koristi se Main stek (SP je MSP)
87
Šta nam govori to da je bit 1 kontrolnog registra 1?
Koristi se Process stek (SP je PSP)
88
Koji stek se koristi u Handler (exception) modu?
Uvek MSP (Main Stack Pointer)
89
Šta se dešava sa kontrolnim registrom prilikom ulaska u i izlaska iz prekidne rutine?
Automatski se ažurira kontrolni registar.
90
Kako osigurati da sve naredne instrukcije koriste novi stek prilikom promene steka MSR instrukcijom?
Posle MSR instrukcije ide ISB (Instruction Synchronization Barrier).
91
Šta znači ISB instrukcija?
Instruction Synchronization Barrier
92
Koje su instrukcije za prenos podataka između memorije i registara u Cortex-M3 procesoru?
LDR STR LDM STM
93
Koja instrukcija se koristi za prenos iz opštenamenskog registra u registar posebne namene?
MSR
94
Kolika je veličina adresnog prostora memorije u Cortex-M3 jezgru?
4GB
95
Koja instrukcija se koristi za prenos iz registra posebne namene u opštenamenski registar?
MRS
96
Koja je adresibilna jedinica memorije u Cortex-M3 jezgru?
Bajt
97
Kako pristupiti periferijama u Cortex-M3 jezgru?
Memorija i periferije su mapirani u isti adresni prostor
98
Koji format za skladištenje podataka koristi Cortex-M3?
Little-endian poredak (niži bajt na nižoj adresi)
99
Kako može da se pristupa memoriji što se tiče poravnanja?
Poravnati pristup Neporavnati pristup (nekad nije dozvoljen i sporiji je)
100
Šta su bit-band regioni?
To su regioni u kojima svakom bitu može da se pristupa zasebno i to atomičnim operacijama, koristeći adresu iz bit-band alias opsega.
101
Šta je bit-band alias opseg?
Opseg u kom se nalaze alias adrese za pristup pojedinačnim bitovima u bit-band regionima.
102
Šta je opseg PPB?
Private Peripheral Bus je opseg u memoriji za registre periferija Cortex-M3 procesora.
103
Koji opseg u memoriji se koristi za registre periferija Cortex-M3 procesora?
PPB = Private Peripheral Bus
104
Koja je formula za izračunavanje adrese bita u bit-band regionu?
bit_word_offset = (byte_offset * 32) + (bit_number * 4) bit_word_addr = bit_band_base + bit_word_offset
105
Koji sve tipovi memorijskih regiona (opsega) postoje u Cortex-M3 procesoru?
Normal region Device region Strongly-ordered region (XN, dodatni fleg za memorijski region)
106
Šta procesor radi u normal memorijskom regionu (opsegu)?
- promena redosleda transakcija radi efikasnosti - spekulativna čitanja
107
Šta procesor radi u device memorijskom regionu (opsegu)?
- održava redosled transakcija u odnosu na ostale transakcije u opsezima Device i Strongly-ordered
108
Šta procesor radi u strongly-ordered memorijskom regionu (opsegu)?
- održava redosled pristupa u odnosu na sve ostale transakcije
109
Koji dodatni fleg se koristi u memorijskom regionu i za šta služi?
XN fleg (Execute never) Procesor ne dozvoljava izvršavanje instrukcija
110
Šta se desi ako se pokuša izvršavanje instrukcija u regionu koji ima postavljen fleg XN (Execute never)?
Memory management fault izuzetak
111
Šta je XN fleg?
Execute never Fleg kojim se ne dozvoljava izvršavanje instrukcija u memorijskom regionu
112
Zašto je dobro da kod uvek bude u Code regionu?
Da bi se iskoristila mogućnost simultanog dohvatanja instrukcije i podataka
113
Da li Code region može da sadrži i podatke?
Da
114
Koji regioni u memoriji sadrže bit-band i bit-band alias regione?
Peripheral i SRAM regioni
115
U kom regionu se nalaze NVIC, sistemski tajmer i SCB?
U PPB (Private Peripheral Bus) regionu
116
Zašto mogu da nastanu problemi kod Cortex-M3 procesora?
- procesor promeni redosled transakcija - višestruke magistrale po kojima se prenose instrukcije i podaci - različit broj wait stanja (različita vremena kašnjenja) - neki pristupi memoriji su baferisani (odloženi) ili spekulativni (unapred izvršava instrukcije pre nego što su uslovi ispunjeni)
117
Koje je rešenje za probleme koji mogu da nastanu u Cortex-M3?
Koristiti neku od barijera
118
Šta znači DMB?
Data Memory Barrier
119
Koje sve barijere postoje u Cortex-M3?
DMB (Data Memory Barrier) DSB (Data Synchronization Barrier) ISB (Instruction Synchronization Barrier)
120
Šta znači DSB?
Data Synchronization Barrier
121
Šta znači ISB?
Instruction Synchronization Barrier
122
Za šta služi DMB?
Osigurava da će se svi pristupi memoriji instrukcija pre DMB okončati pre počinjanja prvog pristupa memoriji instrukcija posle DMB
123
Za šta služi DSB?
Osigurava da će se svi pristupi memoriji pre DSB okončati pre izvršavanja instrukcija posle DSB
124
Za šta služi ISB?
Prazni pipeline, tako da se sve instrukcije posle ISB moraju ponovo dohvatiti iz keša ili memorije kada se ISB završi
125
Kada se preporučuje korišćenje barijera?
- kada se modifikuje vektor tabela i dozvoljava prekid (DMB) - kod samomodifikujućeg koda (ISB) - kod promene memorijske mape (DSB) - kod dinamičke promene prioriteta zahteva (DSB) - kod upotrebe semafora u sistemima sa više procesora (DMB)
126
Zašto se korišćenje barijere preporučuje kada se modifikuje vektor tabela i dozvoljava prekid?
Da se prekid ne dogodi pre upisa nove adrese prekidne rutine (DMB)
127
Zašto se korišćenje barijere preporučuje kod samomodifikujućeg koda?
Da se ne desi da se i nakon modifikacije izvrši stari kod (ISB)
128
Zašto se korišćenje barijere preporučuje kod dinamičke promene prioriteta zahteva?
U slučaju kada se menja prioritet zahteva koji je već pristigao i čeka obradu, da se obezbedi da promena bude završena pre daljeg izvršavanja instrukcija (DSB)
129
Zašto se korišćenje barijere preporučuje kod promene memorijske mape?
Da se ne bi koristila stara mapa u narednim instrukcijama (DSB)
130
Zašto se korišćenje barijere preporučuje kod upotrebe semafora u sistemima sa više procesora?
Potrebno je obezbediti da svi vide isti redosled operacija nad semaforom (DMB)
131
Koji tip memorijskog regiona ne zahteva DMB?
Strongly ordered