WinAVR - mensi problemek se starup kodem

MK info@mcu.cz
Středa Listopad 2 16:00:31 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.

Castecne se mi to podarilo vyresit nasledujicim zpusobem:
linkuji s parametry: -nostartfiles  -nostdlib

a zacatek kodu je nasledujici:

void xmain(void) __attribute__ ((naked));

void start(void){
  asm volatile ( "clr __zero_reg__" );                 // r1 set to 0
  SPL = (RAMEND-1)&0xFF;
  SPH = (RAMEND-1)>>8;
  asm volatile ("rjmp xmain");
}

void xmain(void){
......
......
}

Funkce start() nahrazuje pocatecni inicializi a musi minimalne znulovat r1 a 
nastavit STACK,
nasleduje skok na funkci xmain() - coz je pouze prejmenovany puvodni main()
Takto jsem se zbavil kodu defaultni inicializace a tabulky vektoru 
preruseni,
stale mi tam ale jeste zustava 58B silenost v sekci "_ctors_end",  ktere se 
nedokazu
zatim zbavit. Pritom se jedna o evidentne mrtvy kod

S pozdravem
MK

00003c00 <__ctors_end>:
    3c00: fb 17        cp r31, r27
    3c02: 1e 18        sub r1, r14
    3c04: 36 18        sub r3, r6
    3c06: 4b 1b        sub r20, r27
    3c08: 4b 1b        sub r20, r27
    3c0a: 6d 18        sub r6, r13
    3c0c: 49 19        sub r20, r9
    3c0e: 4b 1b        sub r20, r27
    3c10: 4b 1b        sub r20, r27
    3c12: 4b 1b        sub r20, r27
    3c14: 4b 1b        sub r20, r27
    3c16: 4b 1b        sub r20, r27
    3c18: 4b 1b        sub r20, r27
    3c1a: 4b 1b        sub r20, r27
    3c1c: 4b 1b        sub r20, r27
    3c1e: a1 18        sub r10, r1
    3c20: 06 19        sub r16, r6
    3c22: 0a 19        sub r16, r10
    3c24: 2b 19        sub r18, r11
    3c26: 7d 1a        sub r7, r29
    3c28: 2a 19        sub r18, r10
    3c2a: 7c 1a        sub r7, r28
    3c2c: d3 1a        sub r13, r19
    3c2e: ea 1a        sub r14, r26
    3c30: d3 1a        sub r13, r19
    3c32: ea 1a        sub r14, r26
    3c34: ea 1a        sub r14, r26
    3c36: ea 1a        sub r14, r26
    3c38: 0d 1b        sub r16, r29
 





Další informace o konferenci Hw-list