Startup
Modul StartUp je základným komponentom vstavaného systému, ktorý zabezpečuje správnu inicializáciu mikrokontroléra bezprostredne po resete alebo zapnutí napájania. Tento modul pripraví hardvérové a pamäťové prostredie skôr, než odovzdá riadenie používateľom definovanej funkcii main().
Účel
Modul StartUp je zodpovedný za nastavenie základného prostredia potrebného na správny beh aplikácie. Je úzko spätý s architektúrou mikrokontroléra a typicky sa vykonáva hneď po spustení reset vektora.
Vlastnosti
-
Inicializácia ukazovateľa zásobníka a vektorovej tabuľky
Nastaví počiatočný ukazovateľ zásobníka a nakonfiguruje tabuľku vektorov prerušení, aby sa zaistilo správne spracovanie výnimiek a prerušení. -
Inicializácia pamäťových sekcií
Skopíruje inicializované dáta z flash do RAM a vynuluje sekciu.bss, čím inicializuje neinicializované premenné na nulu. -
Vykonanie konštruktorov
Automaticky volá statické konštruktory (napr. globálne objekty C++) pred zavolanímmain(), čím zabezpečí správne nastavenie runtime prostredia. -
Inicializácia RCC (Reset and Clock Control)
Nakonfiguruje systémové hodiny (HSE, PLL atď.), aby mikrokontrolér a periférie pracovali na požadovaných frekvenciách. -
Spustenie hlavnej aplikácie
Odovzdá riadenie funkciiAppMain(), ktorá obsahuje logiku používateľskej aplikácie.
Podrobnosti implementácie
- Modul typicky obsahuje assemblerový súbor
startup_<device>.sa zdrojové súbory v C pre nízkoúrovňovú inicializáciu. - Spracúvané štandardné pamäťové sekcie:
.data– kopíruje sa z flash do RAM.bss– v RAM sa inicializuje na nulu
- Pre nastavenie hodín alebo prípravu periférií môžu byť poskytnuté vlastné inicializačné funkcie.
Závislosti
- CMSIS (podpora jadra ARM Cortex-M)
- MCAL (pre konfiguráciu RCC a NVIC)
- Linker script (definuje pamäťové oblasti a štartovacie symboly)
Použitie
Tento modul zahrňte na úplný začiatok svojej vstavanej aplikácie. Uistite sa, že vektorová tabuľka a symboly reset handlera sú definované v linker scripte a že štartovací assembler je vstupným bodom vo vašom projekte.
Licencia
Tento projekt je licencovaný pod licenciou Creative Commons Attribution–NonCommercial 4.0 International (CC BY-NC 4.0).
Toto dielo môžete slobodne používať, upravovať a zdieľať na nekomerčné účely, pokiaľ uvediete primeraný zdroj.
Úplné znenie podmienok nájdete v LICENSE.md alebo na creativecommons.org/licenses/by-nc/4.0.
Autori
- Mr.Nobody — embedbits.com
Príspevky sú vítané! Otvorte prosím pull request.