Startup
Modul StartUp je základní komponentou vestavěného systému, která zajišťuje správnou inicializaci mikrokontroléru bezprostředně po resetu nebo zapnutí napájení. Tento modul připraví hardwarové a paměťové prostředí dříve, než předá řízení uživatelsky definované funkci main().
Účel
Modul StartUp odpovídá za nastavení základního prostředí potřebného ke správnému běhu aplikace. Je úzce svázán s architekturou mikrokontroléru a typicky se spouští přímo po vyvolání reset vektoru.
Vlastnosti
-
Inicializace ukazatele zásobníku a tabulky vektorů
Nastaví počáteční ukazatel zásobníku a nakonfiguruje tabulku vektorů přerušení, aby bylo zajištěno správné zpracování výjimek a přerušení. -
Inicializace paměťových sekcí
Zkopíruje inicializovaná data z flash do RAM a vynuluje sekci.bss, čímž inicializuje nulou neinicializované proměnné. -
Spuštění konstruktorů
Automaticky volá statické konstruktory (např. globální objekty C++) před zavolánímmain(), a zajišťuje tak správné nastavení běhových prostředí. -
Inicializace RCC (Reset and Clock Control)
Nakonfiguruje systémové hodiny (HSE, PLL atd.), aby mikrokontrolér a periferie pracovaly na požadovaných frekvencích. -
Spuštění hlavní aplikace
Předá řízení funkciAppMain(), která obsahuje logiku uživatelské aplikace.
Podrobnosti implementace
- Modul typicky zahrnuje assemblerový soubor
startup_<device>.sa zdrojové soubory v C pro nízkoúrovňovou inicializaci. - Standardní zpracovávané paměťové sekce:
.data– kopíruje se z flash do RAM.bss– v RAM se inicializuje nulami
- Pro nastavení hodin nebo přípravu periferií mohou být poskytnuty vlastní inicializační funkce.
Závislosti
- CMSIS (podpora jádra ARM Cortex-M)
- MCAL (pro konfiguraci RCC a NVIC)
- Linker script (definuje paměťové oblasti a startovací symboly)
Použití
Tento modul zahrňte na úplný začátek své vestavěné aplikace. Zajistěte, aby symboly tabulky vektorů a reset handleru byly definovány v linker scriptu a aby vstupním bodem ve vašem projektu byl startup assembler.
Licence
Tento projekt je licencován pod licencí Creative Commons Uveďte původ–Neužívejte komerčně 4.0 Mezinárodní (CC BY-NC 4.0).
Toto dílo můžete volně používat, upravovat a sdílet pro nekomerční účely za předpokladu, že uvedete odpovídající autorství.
Úplné podmínky najdete v LICENSE.md nebo navštivte creativecommons.org/licenses/by-nc/4.0.
Autoři
- Mr.Nobody — embedbits.com
Příspěvky jsou vítány! Otevřete prosím pull request.