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ť | 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žší |
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.
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