Zhrnutie na Architektúra ARM Cortex-M3 a Základy Programovania

Architektúra ARM Cortex-M3 a Základy Programovania pre študentov

Úvod

Počítačová architektúra popisuje, ako sú navrhnuté vnútorné časti počítača alebo mikrokontroléra tak, aby vykonávali inštrukcie efektívne a spoľahlivo. V tejto učebnej pomôcke sa zameriame na základné pojmy architektúry počítača so špecifickými príkladmi ARM Cortex-M3, vhodnými pre stredoškolské štúdium.

Definícia: Počítačová architektúra je súbor princípov a pravidiel, podľa ktorých sú navrhnuté procesor, pamäť a zbernice tak, aby vykonávali inštrukcie a komunikovali s perifériami.

1. Harvard vs. Von Neumannova architektúra

Harvardova architektúra

  • Má oddelenú pamäť pre program (kód) a pre dáta.
  • Používa oddelené zbernice (napr. I-code bus pre inštrukcie a D-code bus pre dáta).
  • Umožňuje paralelné načítavanie inštrukcií a prácu s dátami, čo zvyšuje výkon.

Definícia: Harvardova architektúra = oddelené pamäte a zbernice pre inštrukcie a dáta.

Von Neumannova architektúra (porovnanie)

VlastnosťHarvardVon Neumann
Pamäť inštrukcií a dátoddelenáspoločná
Zberniceoddelenéspoločné
Paralelné prenosyánonie
Výkon pri fetch/executevyššínižší
💡 Vedeli ste?Fun fact: Cortex-M3 používa Harvardovu architektúru, čo mu umožňuje efektívne načítavať inštrukcie a spracúvať dáta paralelne.

2. Čo je inštrukcia?

Definícia: Inštrukcia je základný príkaz procesoru, ktorý určuje, akú operáciu má vykonať, nad akými operandmi a kam uložiť výsledok.

  • Inštrukcie v Cortex-M3 používajú sadu Thumb-2 (kombinácia 16-bitových a 32-bitových inštrukcií).
  • Príklad inštrukcie: načítanie hodnoty z pamäti, sčítanie dvoch registrov, vetvenie programu.

3. ARM Cortex-M3 — základné vlastnosti

  • Šírka procesora: ARM Cortex-M3 je 32-bitový procesor.
    • To znamená, že pracuje s 32-bitovými dátami, registre majú šírku 32 bitov a ALU spracúva 32-bitové operácie.
  • Adresná zbernica: 32-bitová adresná zbernica.
    • Dôsledok: môže adresovať $2^{32}$ adries, pričom 1 adresa = 1 Byte, teda celkovo až 4 GB pamäte.

Definícia: Adresná zbernica (bus) určuje, koľko rôznych pamäťových adries môže procesor priamo oslovovať.

4. Pipeline (rúrkové spracovanie inštrukcií)

  • Cortex-M3 používa trojstupňové pipeline: Fetch, Decode, Execute.
  • Výhoda: viaceré časti inštrukcie sa spracúvajú súčasne, čím rastie výkon.

Praktický príklad: keď procesor vykonáva jednu inštrukciu, súčasne môže načítať ďalšiu a dekódovať nasledujúcu.

5. Režimy CPU a zásobníky

Režimy vykonávania

  • Thread mode – vykonávanie bežného programu.
  • Handler mode – obsluha prerušení a výnimiek.

Definícia: Režim CPU určuje kontext a oprávnenia, s ktorými procesor vykonáva inštrukcie.

Privilegované vs. neprivilegované

  • Privilegovaný režim má plný prístup k systémovým zdrojom.
  • Neprivilegovaný režim je obmedzený, používa sa na spúšťanie používateľského kódu.

Zásobníky

  • Dva zásobníky: MSP (Main Stack Pointer) a PSP (Process Stack Pointer).
    • Privilegovaný režim → používa MSP.
    • Neprivilegovaný režim → používa PSP.
  • Po resete: CPU štartuje v Thread mode, v privilegovanom režime a používa MSP.

6. Prerušenia a výnimky

Definícia: Prerušenie je žiadosť z externého zariadenia, aby procesor prerušil aktuálny program a vykonal obslužný program (ISR). Výnimka je udalosť vnútri jadra CPU (napr. reset, NMI, HardFault).

  • Prerušovací systém v Cortex-M3 riadi NVIC (Nested Vectored Interrupt Controller).
  • Rozdiel:
    • Výnimky vznikajú vnútri jadra (reset, NMI, HardFault, SysTick).
    • Prerušenia prichádzajú zvonka (UART, timer, ADC).

Praktické použitie: časovače a periférie používajú prerušenia na oznámenie dokončenia činnosti bez neustáleho kontroly (pollingu).

7. SysTick

  • SysTick je 24-bitový systémový časovač v jadre Cortex-M3.
  • Počíta smerom nadol; po dosiahnutí nuly sa znovu načíta a môže vyvolať prerušenie.
  • Používa sa na časovanie a ako systémový tick pre RTOS.
  • Má tri registre: Control, Reload, Current.
💡 Vedeli ste?Fun fact: SysTick často slúži v reálnych operačných systémoch
Zaregistruj sa pre celé zhrnutie
KartičkyTest znalostíZhrnutiePodcastMyšlienková mapa
Začni zadarmo

Už máš účet? Prihlásiť sa

Architektúra Cortex-M3

Klíčové pojmy: Harvardova architektúra = oddelené pamäte pre inštrukcie a dáta, Cortex-M3 je 32-bitový procesor a pracuje s 32-bitovými registromi, 32-bitová adresná zbernica umožňuje adresovať $2^{32}$ adries (4 GB), Inštrukcie v Cortex-M3 používajú Thumb-2 (16/32-bitové), Pipeline Cortex-M3: Fetch, Decode, Execute, Po resete: Thread mode, privilegovaný režim, používa MSP, Dva zásobníky: MSP pre privilegovaný, PSP pre neprivilegovaný režim, Prerušenia (externé) vs výnimky (vnútorné), NVIC riadi prerušovací systém, SysTick je 24-bitový časovač používaný pre RTOS, BusMatrix umožňuje paralelný prístup medzi CPU, pamäťou a perifériami

## Úvod Počítačová architektúra popisuje, ako sú navrhnuté vnútorné časti počítača alebo mikrokontroléra tak, aby vykonávali inštrukcie efektívne a spoľahlivo. V tejto učebnej pomôcke sa zameriame na základné pojmy architektúry počítača so špecifickými príkladmi ARM Cortex-M3, vhodnými pre stredoškolské štúdium. > Definícia: Počítačová architektúra je súbor princípov a pravidiel, podľa ktorých sú navrhnuté procesor, pamäť a zbernice tak, aby vykonávali inštrukcie a komunikovali s perifériami. ## 1. Harvard vs. Von Neumannova architektúra ### Harvardova architektúra - Má oddelenú pamäť pre program (kód) a pre dáta. - Používa oddelené zbernice (napr. I-code bus pre inštrukcie a D-code bus pre dáta). - Umožňuje paralelné načítavanie inštrukcií a prácu s dátami, čo zvyšuje výkon. > Definícia: Harvardova architektúra = oddelené pamäte a zbernice pre inštrukcie a dáta. ### Von Neumannova architektúra (porovnanie) | Vlastnosť | Harvard | Von Neumann | |---|---:|---:| | Pamäť inštrukcií a dát | oddelená | spoločná | | Zbernice | oddelené | spoločné | | Paralelné prenosy | áno | nie | | Výkon pri fetch/execute | vyšší | nižší | Fun fact: Cortex-M3 používa Harvardovu architektúru, čo mu umožňuje efektívne načítavať inštrukcie a spracúvať dáta paralelne. ## 2. Čo je inštrukcia? > Definícia: Inštrukcia je základný príkaz procesoru, ktorý určuje, akú operáciu má vykonať, nad akými operandmi a kam uložiť výsledok. - Inštrukcie v Cortex-M3 používajú sadu Thumb-2 (kombinácia 16-bitových a 32-bitových inštrukcií). - Príklad inštrukcie: načítanie hodnoty z pamäti, sčítanie dvoch registrov, vetvenie programu. ## 3. ARM Cortex-M3 — základné vlastnosti - **Šírka procesora**: ARM Cortex-M3 je 32-bitový procesor. - To znamená, že pracuje s 32-bitovými dátami, registre majú šírku 32 bitov a ALU spracúva 32-bitové operácie. - **Adresná zbernica**: 32-bitová adresná zbernica. - Dôsledok: môže adresovať $2^{32}$ adries, pričom 1 adresa = 1 Byte, teda celkovo až 4 GB pamäte. > Definícia: Adresná zbernica (bus) určuje, koľko rôznych pamäťových adries môže procesor priamo oslovovať. ## 4. Pipeline (rúrkové spracovanie inštrukcií) - Cortex-M3 používa **trojstupňové pipeline**: Fetch, Decode, Execute. - Výhoda: viaceré časti inštrukcie sa spracúvajú súčasne, čím rastie výkon. Praktický príklad: keď procesor vykonáva jednu inštrukciu, súčasne môže načítať ďalšiu a dekódovať nasledujúcu. ## 5. Režimy CPU a zásobníky ### Režimy vykonávania - **Thread mode** – vykonávanie bežného programu. - **Handler mode** – obsluha prerušení a výnimiek. > Definícia: Režim CPU určuje kontext a oprávnenia, s ktorými procesor vykonáva inštrukcie. ### Privilegované vs. neprivilegované - **Privilegovaný režim** má plný prístup k systémovým zdrojom. - **Neprivilegovaný režim** je obmedzený, používa sa na spúšťanie používateľského kódu. ### Zásobníky - Dva zásobníky: MSP (Main Stack Pointer) a PSP (Process Stack Pointer). - Privilegovaný režim → používa MSP. - Neprivilegovaný režim → používa PSP. - Po resete: CPU štartuje v Thread mode, v privilegovanom režime a používa MSP. ## 6. Prerušenia a výnimky > Definícia: Prerušenie je žiadosť z externého zariadenia, aby procesor prerušil aktuálny program a vykonal obslužný program (ISR). Výnimka je udalosť vnútri jadra CPU (napr. reset, NMI, HardFault). - Prerušovací systém v Cortex-M3 riadi NVIC (Nested Vectored Interrupt Controller). - Rozdiel: - Výnimky vznikajú vnútri jadra (reset, NMI, HardFault, SysTick). - Prerušenia prichádzajú zvonka (UART, timer, ADC). Praktické použitie: časovače a periférie používajú prerušenia na oznámenie dokončenia činnosti bez neustáleho kontroly (pollingu). ## 7. SysTick - SysTick je 24-bitový systémový časovač v jadre Cortex-M3. - Počíta smerom nadol; po dosiahnutí nuly sa znovu načíta a môže vyvolať prerušenie. - Používa sa na časovanie a ako systémový tick pre RTOS. - Má tri registre: Control, Reload, Current. Fun fact: SysTick často slúži v reálnych operačných systémoch