WinAVR - mensi problemek se starup kodem
Jan Matejka
matejka@cat.cz
Středa Listopad 2 12:33:29 CET 2005
Snad by mohla byt cesta vytvorenim vlastni inicializacni rutiny stejneho
jmena jako ma ta knihovni. Linker by si mel vybrat tu vasi explicitne
linkovanou. (nezkousel jsem)
Co s vektory preruseni me nenapada. Pokud jste zatim neuspel, muzu zkusit
stesti a kouknout do zdrojaku standardni knihovny, ale to asi az vecer.
Jan Matejka
> Potreboval bych odstranit z programu napsanem ve winavr pro
> ATmega16 tabulku vektoru preruseni (program zadne nepouziva)
> a implicitni inicializaci pokud mozno bez zasahu do scriptu linkeru
>
> Tak nejak jsem se domnival, ze parametry -nostartfiles
> -nodefaultlibs mi umozni zbavit se defaultni inicializace
> primo v Cckovem fajlu, jenze se mi nejak nedari a nejsem
> schopen to nikde dohledat :-((((
>
> Vlastni inicializaci mam udelanou zjednodusene takto:
>
> void __MyInit(void) __attribute__ ((naked)) __attribute__
> ((section (".init0")));
>
> void __MyInit(void){
> asm volatile ( ".set __stack, %0" :: "i" (RAMEND) ); ............
> ............
> ............
> asm volatile ( "rjmp main"); //
> jump to main()
> }
>
> a opravdu je na ni nesmerovan vektor resetu a provede se,
> jenze WinAVR si klidne vedle toho nacpe do kodu svou vlastni
> standardni inicializaci, ktëra se nikdy neprovede a zabira
> jen drahocene misto.
> To same plati o vektorech preruseni - tech se mi zatim take
> nepodarilo zbavit .
>
> Vse by melo byt reseno pouze na urovni Cckoveho kodu,
> pripadne parametry prekladace. Nehohu si z jistych duvodu
> udelat zasah do scripru linkeru, tam to poresit dokazu
>
> Byl bych vdecen za dobre nakopnuti :-)))
>
> S pozdravem
> MK
>
>
>
>
Další informace o konferenci Hw-list