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

Jirka Mww jirka.mww na gmail.com
Úterý Březen 24 22:51:33 CET 2015


Díky pane Waclawek, podívám se na to. Assemblerem 8051 jsem se
nějakou dobu v minulosti i ľivil, takľe to snad najdu a pochopím.



2015-03-24 19:45 GMT+01:00 Jan Waclawek <konfera na efton.sk>:
> 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.
>>
>>
>>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



-- 
Zdravi
Jirka OK1MWW


Daląí informace o konferenci Hw-list