Sekcja startowa w AVR-GCC

Aug 26, 2006 3 Replies

Witam Nie mogę sobie przypomnieć jak pozbyć się (zmienić) sekcji startowej rozpoczynającej każdy program kompilowany w AVRGCC. Chodzi mi o te początkowe procedury związane z inicjalozacją stosu i zmiennych, które umieszczane są przez kompilator zaraz za wektorami przerwań:



00001826 <__ctors_end>: 1826: 11 24 eor r1, r1 1828: 1f be out 0x3f, r1 ; 63 182a: cf e5 ldi r28, 0x5F ; 95 182c: d4 e0 ldi r29, 0x04 ; 4 182e: de bf out 0x3e, r29 ; 62 1830: cd bf out 0x3d, r28 ; 61


00001832 <__do_copy_data>: 1832: 10 e0 ldi r17, 0x00 ; 0 1834: a0 e6 ldi r26, 0x60 ; 96 1836: b0 e0 ldi r27, 0x00 ; 0 1838: e8 ec ldi r30, 0xC8 ; 200 183a: fe e1 ldi r31, 0x1E ; 30 183c: 02 c0 rjmp .+4 ; 0x1842


0000183e <.do_copy_data_loop>: 183e: 05 90 lpm r0, Z+ 1840: 0d 92 st X+, r0


00001842 <.do_copy_data_start>: 1842: a0 36 cpi r26, 0x60 ; 96 1844: b1 07 cpc r27, r17 1846: d9 f7 brne .-10 ; 0x183e



itd. itp. :-)


Pozdrawiam Grzegorz


Grzegorz Kurczyk przemówił ludzkim głosem:

Możesz dodać do opcji linkera -nostartfiles, ale to spowoduje wyrzucenie wszystkiego co jest w crt (łącznie z tablicą wektorów przerwań), więc będziesz musiał napisać i dołączyć do projektu własną okrojoną wersję crt.

Zbych snipped-for-privacy@onet.pl napisał(a):

Opcja -nostartfiles , "wyrzuci" wyłącznie tablicę wektorów , a crt pozostanie :( Do pozbycia się całego bałaganu , użyj -nostdlib.

Piotrek PS Kombinujesz z bootloaderem ?

Użytkownik Piotrek Sz. napisał:

Też, ale akurat w przypadku bootloadera w niczym mi to nie przeszkadza :-)

Pozdrawiam Grzegorz

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required