Микропроцесорски системи/Јул 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Јулски испит 2022. године одржан је 10. јула и на њему је била доступна сва потребна документација и презентације са предавања. Поставка рока није доступна са странице предмета. Није много познато о овом року, осим теоријских питања наведених испод.

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

Теорија

1. задатак

На којој адреси се налази машинска инструкција коју микропроцесор Cortex-M3 прву извршава након ресета?

  1. 0x00000004
  2. mem[0x00000004]
  3. Ниједна од понуђених
  4. mem[0x08000004]
  5. 0x08000004

Објашњење: У Cortex-M3 Programming Manual пише на страни 15 како се у програмски бројач уписује вредност са адресе 0x00000004, тако да се прва инструкција извршава са адресе која пише на тој локацији у меморији.

2. задатак

Која вредност се налази у регистру R1 након извршавања дате секвенце асемблерских инструкција? Одговор унети према формату неозначених хексадецималних литерала у C програмском језику ширине 32 бита.

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

Приказ очекиваног формата одговора за произвољно одабрану вредност 1 јесте:

0x00000001

Одговор: 0xFFFFFFFA

Објашњење: На почетку програма регистру R0 додељује се вредност 3, а регистру R1 вредност 8. Затим се та два регистра упоређују, па се прелази на извршавање инструкција које зависе од тога да ли је један број био већи од другог. Пошто јесте, прва инструкција subgt мења R1 на 5, а друга на -3. Пошто друга инструкција није имала суфикс s, програмски статусни регистар се није ажурирао, па се наставља на извршавање инструкције subsgt, након које R1 има вредност -6, а програмска статусна реч се ажурира тако да се последња инструкција не извршава. Релевантна страница у Cortex-M3 Programming Manual је 56 (3.3.7 Conditional execution).

3. задатак

Колика је максимална радна фреквенција (HCLK) микроконтролера STM32F103R6 уколико се користи HSE осцилатор који на свом излазу производи сигнал такта фреквенције 2MHz? Одговор унети у мегахерцима без навођења ознаке јединице.

Одговор: 32

Објашњење: На слици са стране 93 од STM32F103 Reference Manual може се видети како HSE такт може проћи кроз PLL који може да његову фреквенцију помножи до 16 пута.

4. задатак

Исти задатак као са другог колоквијума 2022. године.

5. задатак

Периферија USART микроконтролера STM32F103R6 конфигурисана је тако да преноси осам (8) битова, користи парну парност и поставља један стоп бит. Са линије за пренос узорковани су следећи битови (сваки бит је добијен на основу одговарајућег броја узорака стања на линији):

...111111011011010000011111111...

Које грешке постоје приликом пријема?

  1. Нема грешака
  2. Само Framing error
  3. Framing error и Parity error
  4. Само Parity error

Објашњење: Док на жици нема пакета, стоји вредност 1. Наилазимо на почетни бит 0, а након њега долази осам битова од којих осми представља бит парности. Сабирањем тих осам битова добијамо број 5, што је непаран број а парност је парна, па се дешава Parity error. Након тих осам битова наилази бит са вредношћу 0, а очекује се завршни бит са вредношћу 1, тако да се такође дешава и Framing error.