Mikroprocesorski sistemi/Jul 2022
Julski ispit 2022. godine održan je 10. jula i na njemu je bila dostupna sva potrebna dokumentacija i prezentacije sa predavanja. Postavka roka nije dostupna sa stranice predmeta. Nije mnogo poznato o ovom roku, osim teorijskih pitanja navedenih ispod.
- Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni
- Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni, tako da se prikažu kada izaberete taj tekst (primer: ovako)
- Pritisnite levo dugme ispod za sakrivanje i otkrivanje svih odgovora, ili desno dugme za uključivanje i isključivanje interaktivnog režima:
Teorija
1. zadatak
Na kojoj adresi se nalazi mašinska instrukcija koju mikroprocesor Cortex-M3 prvu izvršava nakon reseta?
- 0x00000004
- mem[0x00000004]
- Nijedna od ponuđenih
- mem[0x08000004]
- 0x08000004
Objašnjenje: U Cortex-M3 Programming Manual piše na strani 15 kako se u programski brojač upisuje vrednost sa adrese 0x00000004, tako da se prva instrukcija izvršava sa adrese koja piše na toj lokaciji u memoriji.
2. zadatak
Koja vrednost se nalazi u registru R1 nakon izvršavanja date sekvence asemblerskih instrukcija? Odgovor uneti prema formatu neoznačenih heksadecimalnih literala u C programskom jeziku širine 32 bita.
mov r0, 3
mov r1, 8
cmp r1, r0
itttt gt
subgt r1, r1, r0
subgt r1, r1, 8
subsgt r1, r1, r0
subsgt r1, r1, 5
Prikaz očekivanog formata odgovora za proizvoljno odabranu vrednost 1 jeste:
0x00000001
Odgovor: 0xFFFFFFFA
Objašnjenje: Na početku programa registru R0 dodeljuje se vrednost 3, a registru R1 vrednost 8. Zatim se ta dva registra upoređuju, pa se prelazi na izvršavanje instrukcija koje zavise od toga da li je jedan broj bio veći od drugog. Pošto jeste, prva instrukcija subgt menja R1 na 5, a druga na -3. Pošto druga instrukcija nije imala sufiks s, programski statusni registar se nije ažurirao, pa se nastavlja na izvršavanje instrukcije subsgt, nakon koje R1 ima vrednost -6, a programska statusna reč se ažurira tako da se poslednja instrukcija ne izvršava. Relevantna stranica u Cortex-M3 Programming Manual je 56 (3.3.7 Conditional execution).
3. zadatak
Kolika je maksimalna radna frekvencija (HCLK) mikrokontrolera STM32F103R6 ukoliko se koristi HSE oscilator koji na svom izlazu proizvodi signal takta frekvencije 2MHz? Odgovor uneti u megahercima bez navođenja oznake jedinice.
Odgovor: 32
Objašnjenje: Na slici sa strane 93 od STM32F103 Reference Manual može se videti kako HSE takt može proći kroz PLL koji može da njegovu frekvenciju pomnoži do 16 puta.
4. zadatak
- Isti zadatak kao sa drugog kolokvijuma 2022. godine.
5. zadatak
Periferija USART mikrokontrolera STM32F103R6 konfigurisana je tako da prenosi osam (8) bitova, koristi parnu parnost i postavlja jedan stop bit. Sa linije za prenos uzorkovani su sledeći bitovi (svaki bit je dobijen na osnovu odgovarajućeg broja uzoraka stanja na liniji):
...111111011011010000011111111...
Koje greške postoje prilikom prijema?
- Nema grešaka
- Samo Framing error
- Framing error i Parity error
- Samo Parity error
Objašnjenje: Dok na žici nema paketa, stoji vrednost 1. Nailazimo na početni bit 0, a nakon njega dolazi osam bitova od kojih osmi predstavlja bit parnosti. Sabiranjem tih osam bitova dobijamo broj 5, što je neparan broj a parnost je parna, pa se dešava Parity error. Nakon tih osam bitova nailazi bit sa vrednošću 0, a očekuje se završni bit sa vrednošću 1, tako da se takođe dešava i Framing error.