Jak zacit s STM32?
Miroslav Mraz
mrazik na volny.cz
Pondělí Listopad 23 15:44:27 CET 2015
V textu
Dne 23.11.2015 v 15:15 Josef Štengl napsal(a):
> Mě to připadá jako nedostatek logického úsudku - paměť je velká zzz a
> byly blbé dotazy proč je nastavena na zzz + 1, když tam nic není. Tak ji
> nastavili na zzz a mají klid. Už jsem se s takovou logikou setkal.
>
V každém případě, pokud něco takového udělám, stálo by za to přidat
krátký komentář proč.
> Nechápu zbytečnost nastavení adresy stacku ve start-up kódu, podle mě je
> to docela důležité + nastavuje se na jednom místě. Nebo máte takový
> procesor, který ví, jakou chcete velikost stacku? Po resetu tam, podle
> toho co jsem vypozoroval, bývají docela různorodé hodnoty ...
>
> A taky nastavuji stack na začátek paměti, aby když mě dojde stack, se to
> jednoznačně dozvěděl a nestudoval, proč se mi program courá někde, kde
> nemá být.
>
> Nebo jsem něco pochopil nesprávně?
>
> ced
>
To platí skoro pro všechny procesory, kromě Cortex-Mx. První položka
tabulky vektorů udává přímo počáteční hodnotu SP, kterou pak doplní do
toho SP přímo hardware při skoku do Reset_Handleru. To udělali proto,
aby šlo celý program napsat v čistém C. A proto se také samočinně
schovávají některé registry do stacku při vstupu do přerušení.
Mrazík
Další informace o konferenci Hw-list