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
Q

Šta nije dozvoljeno u neprivilegovanom režimu rada kod Cortex-M3?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Šta znači MSR instrukcija?

A

Move to Special Register

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

Šta znači MRS instrukcija?

A

Move from Special Register

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

Šta znači CPS instrukcija?

A

Change Processor State

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

Koji su opštenamenski registri ARM Cortex-M3 procesora?

A

R0-R12

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

Koji registar je pokazivač na stek kod ARM Cortex-M3 procesora?

A

SP (R13)

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

Koje vrste steka postoje u ARM Cortex-M3 procesoru?

A

Main Stack (MSP)
Process Stack (PSP)

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

Kakav je stek kod ARM Cortex-M3 procesora?

A

Pun opadajući stek

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

Na koju vrednost se postavlja MSP prilikom reseta?

A

Na vrednost sa memorijske lokacije 0
// mem(0)

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

Na koju vrednost se postavlja PSP prilikom reseta?

A

Nepoznato je stanje PSP prilikom reseta.

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

Na koju vrednost se postavljaju opštenamenski registri prilikom reseta?

A

Nepoznato je stanje opštenamenskih registara prilikom reseta.

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

Šta znači LR?

A

Link Registar

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

Koji registar je Link Registar?

A

LR (R14)

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

Na koju vrednost se postavlja LR prilikom reseta?

A

Na 0xFFFFFFFF

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

Za šta služi LR?

A

Link Registar čuva adresu povratka iz potprograma

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

Koji registar je programski brojač?

A

PC (R15)

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

Na koju vrednost se postavlja registar PC prilikom reseta?

A

Na vrednost sa memorijske adrese 4
// mem(4)

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

Koja je vrednost bita 0 u PC registru?

A

Uvek 0, instrukcije moraju biti poravnate na pola reči

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

Koji bit uvek ima vrednost 0 u PC registru?

A

Bit 0, dohvatanje instrukcija mora biti poravnato na pola reci

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

Kako instrukcije moraju biti poravnate u Cortex-M3?

A

Na pola reči

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

Zašto je bit 0 PC registra uvek 0?

A

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)

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

Kako se obezbeđuje poravnanje instrukcija na pola reči u Cortex-M3 procesoru?

A

Bit 0 registra PC je uvek 0.

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

Šta je PSR?

A

Program Status Register

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

Na koju vrednost se postavlja PSR prilikom restarta?

A

Na vrednost 0x01000000

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

Od kojih registara se sastoji PSR?

A

APSR (Application Program Status Register)
IPSR (Interrupt Program Status Register)
EPSR (Execution Program Status Register)

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

Šta znači APSR?

A

Application Program Status Register

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

Šta znači IPSR?

A

Interrupt Program Status Register

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

Šta znači EPSR?

A

Execution Program Status Register

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

Na koju vrednost se postavlja APSR prilikom restarta?

A

0x00000000

54
Q

Na koju vrednost se postavlja IPSR prilikom restarta?

A

0x00000000

55
Q

Na koju vrednost se postavlja EPSR prilikom restarta?

A

0x01000000

56
Q

U kom režimu rada procesora Cortex-M3 se može koristiti PSR?

A

Samo u privilegovanom

57
Q

U kom režimu rada procesora Cortex-M3 se može koristiti APSR?

A

I u privilegovanom i u neprivilegovanom

58
Q

U kom režimu rada procesora Cortex-M3 se može koristiti EPSR?

A

Samo u privilegovanom

59
Q

U kom režimu rada procesora Cortex-M3 se može koristiti IPSR?

A

Samo u privilegovanom

60
Q

Da li se može upisitvati u APSR?

A

Da

61
Q

Da li se može upisitvati u IPSR?

A

Ne, može se samo čitati

62
Q

Da li se može upisitvati u EPSR?

A

Ne, može se samo čitati (ali vraća 0)

63
Q

Koja vrednost treba da bude u IPSR?

A

Broj izuzetka koji se izvršava, ili 0

64
Q

Koje režime izvršavanja imaju ARM procesori (u zavisnosti od instrukcijskog seta koji se koristi)?

A

ARM i Thumb

65
Q

Koji bit u EPSR govori da je postavljen Thumb režim izvršavanja?

A

Bit 24. (najniži bit najvišeg bajta), T bit

66
Q

Koja greška se javi ako se pokuša postavljanje na 0 T bita (za Thumb režim rada) registra EPSR?

A

Usage fault (vrsta greške koja se javlja kada se pokuša izvršiti instrukcija koja nije validna ili nije dozvoljena)

67
Q

Koja greška se javi ako se bit T (za Thumb režim rada) postavi na 0 pri resetu?

A

Hard fault (greška koja obustavlja rad sistema)

68
Q

Šta se upisuje u T bit prilikom skokova?

A

Najniži bit odredišne adrese (koji je uvek 1)

69
Q

Koja je vrednost najnižeg bita svih adresa u Thumb režimu u ARM arhitekturi?

A

1, a 0 je rezervisana za ARM režim.

70
Q

Šta znači LDM instrukcija?

A

Load Multiple

71
Q

Šta znači STM instrukcija?

A

Store Multiple

72
Q

Zašta služe ICI/IT biti u EPSR registru?

A

Za nastavljanje izvršavanja LDM, STM i IfThen instrukcija

73
Q

Šta znači ICI/IT?

A

Interruptible Continuation Instruction / If Then

74
Q

Kako pristupiti trima registrima APSR, IPSR i EPSR odjednom?

A

Preko registra XPSR

75
Q

Kako pristupiti dvama registrima IPSR i EPSR odjednom?

A

Preko registra IEPSR

76
Q

Kako pristupiti dvama registrima IPSR i APSR odjednom?

A

Preko registra IAPSR

77
Q

Kako pristupiti dvama registrima EPSR i APSR odjednom?

A

Preko registra EAPSR

78
Q

Kako ispitati EPSR registar?

A

Uz pomoć steka

79
Q

Šta vraća čitanje EPSR registra?

A

Nulu

80
Q

Šta se dešava kada se pokuša upis u EPSR?

A

Ignoriše se

81
Q

U kom režimu može da se čita ili upisuje u kontrolni registar jezgra?

A

Samo u privilegovanom režimu

82
Q

Koji bit kontrolnog registra govori u kom režimu u Thread modu se program izvršava?

A

Bit 0 CONTROL registra

83
Q

Šta nam govori to da je bit 0 kontrolnog registra 0?

A

Privilegovan režim Thread moda

84
Q

Šta nam govori to da je bit 0 kontrolnog registra 1?

A

Neprivilegovan režim Thread moda

85
Q

Koji bit kontrolnog registra govori koji stek se koristi?

A

Bit 1 CONTROL registra

86
Q

Šta nam govori to da je bit 1 kontrolnog registra 0?

A

Koristi se Main stek (SP je MSP)

87
Q

Šta nam govori to da je bit 1 kontrolnog registra 1?

A

Koristi se Process stek (SP je PSP)

88
Q

Koji stek se koristi u Handler (exception) modu?

A

Uvek MSP (Main Stack Pointer)

89
Q

Šta se dešava sa kontrolnim registrom prilikom ulaska u i izlaska iz prekidne rutine?

A

Automatski se ažurira kontrolni registar.

90
Q

Kako osigurati da sve naredne instrukcije koriste novi stek prilikom promene steka MSR instrukcijom?

A

Posle MSR instrukcije ide ISB (Instruction Synchronization Barrier).

91
Q

Šta znači ISB instrukcija?

A

Instruction Synchronization Barrier

92
Q

Koje su instrukcije za prenos podataka između memorije i registara u Cortex-M3 procesoru?

A

LDR
STR
LDM
STM

93
Q

Koja instrukcija se koristi za prenos iz opštenamenskog registra u registar posebne namene?

A

MSR

94
Q

Kolika je veličina adresnog prostora memorije u Cortex-M3 jezgru?

A

4GB

95
Q

Koja instrukcija se koristi za prenos iz registra posebne namene u opštenamenski registar?

A

MRS

96
Q

Koja je adresibilna jedinica memorije u Cortex-M3 jezgru?

A

Bajt

97
Q

Kako pristupiti periferijama u Cortex-M3 jezgru?

A

Memorija i periferije su mapirani u isti adresni prostor

98
Q

Koji format za skladištenje podataka koristi Cortex-M3?

A

Little-endian poredak (niži bajt na nižoj adresi)

99
Q

Kako može da se pristupa memoriji što se tiče poravnanja?

A

Poravnati pristup
Neporavnati pristup (nekad nije dozvoljen i sporiji je)

100
Q

Šta su bit-band regioni?

A

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
Q

Šta je bit-band alias opseg?

A

Opseg u kom se nalaze alias adrese za pristup pojedinačnim bitovima u bit-band regionima.

102
Q

Šta je opseg PPB?

A

Private Peripheral Bus je opseg u memoriji za registre periferija Cortex-M3 procesora.

103
Q

Koji opseg u memoriji se koristi za registre periferija Cortex-M3 procesora?

A

PPB = Private Peripheral Bus

104
Q

Koja je formula za izračunavanje adrese bita u bit-band regionu?

A

bit_word_offset = (byte_offset * 32) + (bit_number * 4)
bit_word_addr = bit_band_base + bit_word_offset

105
Q

Koji sve tipovi memorijskih regiona (opsega) postoje u Cortex-M3 procesoru?

A

Normal region
Device region
Strongly-ordered region
(XN, dodatni fleg za memorijski region)

106
Q

Šta procesor radi u normal memorijskom regionu (opsegu)?

A
  • promena redosleda transakcija radi efikasnosti
  • spekulativna čitanja
107
Q

Šta procesor radi u device memorijskom regionu (opsegu)?

A
  • održava redosled transakcija u odnosu na ostale transakcije u opsezima Device i Strongly-ordered
108
Q

Šta procesor radi u strongly-ordered memorijskom regionu (opsegu)?

A
  • održava redosled pristupa u odnosu na sve ostale transakcije
109
Q

Koji dodatni fleg se koristi u memorijskom regionu i za šta služi?

A

XN fleg (Execute never)
Procesor ne dozvoljava izvršavanje instrukcija

110
Q

Šta se desi ako se pokuša izvršavanje instrukcija u regionu koji ima postavljen fleg XN (Execute never)?

A

Memory management fault izuzetak

111
Q

Šta je XN fleg?

A

Execute never
Fleg kojim se ne dozvoljava izvršavanje instrukcija u memorijskom regionu

112
Q

Zašto je dobro da kod uvek bude u Code regionu?

A

Da bi se iskoristila mogućnost simultanog dohvatanja instrukcije i podataka

113
Q

Da li Code region može da sadrži i podatke?

A

Da

114
Q

Koji regioni u memoriji sadrže bit-band i bit-band alias regione?

A

Peripheral i SRAM regioni

115
Q

U kom regionu se nalaze NVIC, sistemski tajmer i SCB?

A

U PPB (Private Peripheral Bus) regionu

116
Q

Zašto mogu da nastanu problemi kod Cortex-M3 procesora?

A
  • 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
Q

Koje je rešenje za probleme koji mogu da nastanu u Cortex-M3?

A

Koristiti neku od barijera

118
Q

Šta znači DMB?

A

Data Memory Barrier

119
Q

Koje sve barijere postoje u Cortex-M3?

A

DMB (Data Memory Barrier)
DSB (Data Synchronization Barrier)
ISB (Instruction Synchronization Barrier)

120
Q

Šta znači DSB?

A

Data Synchronization Barrier

121
Q

Šta znači ISB?

A

Instruction Synchronization Barrier

122
Q

Za šta služi DMB?

A

Osigurava da će se svi pristupi memoriji instrukcija pre DMB okončati pre počinjanja prvog pristupa memoriji instrukcija posle DMB

123
Q

Za šta služi DSB?

A

Osigurava da će se svi pristupi memoriji pre DSB okončati pre izvršavanja instrukcija posle DSB

124
Q

Za šta služi ISB?

A

Prazni pipeline, tako da se sve instrukcije posle ISB moraju ponovo dohvatiti iz keša ili memorije kada se ISB završi

125
Q

Kada se preporučuje korišćenje barijera?

A
  • 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
Q

Zašto se korišćenje barijere preporučuje kada se modifikuje vektor tabela i dozvoljava prekid?

A

Da se prekid ne dogodi pre upisa nove adrese prekidne rutine (DMB)

127
Q

Zašto se korišćenje barijere preporučuje kod samomodifikujućeg koda?

A

Da se ne desi da se i nakon modifikacije izvrši stari kod (ISB)

128
Q

Zašto se korišćenje barijere preporučuje kod dinamičke promene prioriteta zahteva?

A

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
Q

Zašto se korišćenje barijere preporučuje kod promene memorijske mape?

A

Da se ne bi koristila stara mapa u narednim instrukcijama (DSB)

130
Q

Zašto se korišćenje barijere preporučuje kod upotrebe semafora u sistemima sa više procesora?

A

Potrebno je obezbediti da svi vide isti redosled operacija nad semaforom (DMB)

131
Q

Koji tip memorijskog regiona ne zahteva DMB?

A

Strongly ordered