Mikroprocesorski sistemi/Jul 2022

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu

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?

  1. 0x00000004
  2. mem[0x00000004]
  3. Nijedna od ponuđenih
  4. mem[0x08000004]
  5. 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 7. 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 94 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?

  1. Nema grešaka
  2. Samo Framing error
  3. Framing error i Parity error
  4. 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.