OT SDCC '51 startup; was: ATmega, zachovaní promxJtubsO9Y2g o resetu

Jan Waclawek konfera na efton.sk
Úterý Březen 24 19:45:37 CET 2015


U SDCC je to zlozitejsie, v '51 verzii je startup kod generovany
kompilatorom. V principe sa jedna o volanie zlinkovanych niekolko
startupov (z asemblerovskych suborov) pre rozne oblasti pamati, pricom nie
vsetky su vzdy linkovane (podla prepinacov pouzitych pri preklade ktore
ovplyvnia pritomnost roznych pamatovych oblasti); pritom este prvy z nich
nie je inicializacia ale volanie funkcie _sdcc_external_startup() ktorou
sa da cely tento proces potlacit; a nakoniec je kompilatorom generovany
kod pre inicializaciu premennych explicitne inicializovanych (to nie je
kopirovanie, ale kod inicializujuci jednotlive premenne rovnako ako by ste
zapisali inicializaciu tych premennych priradenim na zaciatku main(), to
je vec co treba pre SDCC/51 vediet, je to nedostatok ale nejsou lidi to
urobit dokonalejsie). Popisane je to v manuali v kapitole "MCS51/DS390
Startup Code" - naschval neuvadzam cislo kapitoly, lebo nedavno bola
konkretne tato podkapitola v ramci manualu presunuta.

Mozete teda potlacit/prepisat ktorykolvek asm subor pre danu pamatovu
oblast; samozrejme musite rozumiet tomu, co robite.

Co sa tyka internej RAM, defaultny startup kod ju nuluje v principe celu,
ale podla toho manualu "The startup code clears all internal data memory,
256 bytes by default, but from 0 to n-1 if --iram-sizen is used.", co by
mohlo byt pre Vas riesenie (je to zrejme preklep a chce to byt
--iram-size). Tie svoje premenne potom musite umiestnit expliticne nad
specifikovanu hranicu a dat pozor, aby ste mali dost miesta na normalne
premenne a zasobnik.

Neskusal som, je to na Vas.

wek




----- Original Message ---------------

>dobrý večer,
>
>přiµivím se se svým dotazem : Není taková moµnost i v SDCC pro 8051 ?
>Docela by se mi hodilo poznat, jestli se něco těsně před reakcí watchdogu
>opravdu stalo ale nevím, kam to napsat.
>Na±el jsem jen příkaz překladači --no-xinit-opt, ale nejsem si jist,
>zda by to ±lo pouµít,
>kdybych si tu poznámku psal do pole  xdata.
>
>
>


Daląí informace o konferenci Hw-list