AVRGCC jak zalozit noinit promennou na danou adresu

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Středa Srpen 9 18:32:15 CEST 2023


Uelal bych do LS specialni sekci pro tu promennou na pevne adrese a 
promennou tam umistil.

Dne 09.08.2023 v 16:22 Zdeněk Aster napsal(a):
> A nepomohlo by absolute??
> Pripadne to dat na zasobnik a v bootloaderu opravit init kod a mrknout
> na zasobniku jestli tam je ta promena co chci.....
>
> Zdenek
>
> Dne 09.08.2023 v 15:16 Tomas Chvatal napsal(a):
>> Dobry den.
>>
>> Dekuji moc za informace.
>> Udelam ten linker script.
>>
>>> Mimochodom, nechapem, co myslite pod....
>>
>> To asi neobsahuje, ale nejak se ten HEX opravdu natahne (nezkoumal 
>> jsem kde presne).
>>
>> Ja vysledny hex vyrabim spojenim aplikace a meho bootloaderu pomoci
>> srec_cat %in1% -Intel %in2% -Intel -o AppPlusBootl.hex -Intel
>>
>> Na paleni pouzivam aplikaci eXtremeBurner a ta, pri natahovani HEX, 
>> zahlasi, ze je HEX pro dany cpu moc dlouhy.
>>
>> Jen tusim, ze to bude nejak souviset s tim posunem sekce. Nic jineho 
>> nezmenim a po navratu na orig.stav je to ok.
>> Radek pro sekci .data se zmeni pouze ve sloupci ADRESA (odsouvam ji 
>> na adr.00800102),
>> ale nezmeni se jeji SIZE, coz by se, dle meho, melo.
>>
>>> Idx Name          Size      VMA LMA       File off  Algn
>>>  0 .data         00000222  00800100  00004148  000041fc  2**0
>>>  0 .data         00000222  00800102  00004148  000041fc  2**0
>>
>> s přáním hezkého dne / best regards
>> Tomáš Chvátal
>> tchvatal na fordiag.cz
>>
>> ----- Původní zpráva ----- Od: "Jan Waclawek" <konfera na efton.sk>
>> Komu: "HW-news" <hw-list na list.hw.cz>; <hw-list na list.hw.cz>
>> Odesláno: 9. srpna 2023 11:49
>> Předmět: Re: AVRGCC jak zalozit noinit promennou na danou adresu
>>
>>
>> Zacnem tym jednoduchym:
>>
>>> Poddotaz: kde najdu nejaky popis parametru linkeru jako je 
>>> "--section-start"?
>>
>> V manuali k linkeru, t.j.
>> https://sourceware.org/binutils/docs/ld/Options.html#index-_002d_002dsection_002dstart_003dsectionname_003dorg 
>>
>>
>> Nie zeby to nejako zvlast pomohlo. V skutocnosti linker je nenormalne
>> zlozita zalezitost (presnejsie, projekt binutils, ktoreho ld je len 
>> jednou
>> sucastou, je nenormalne zlozita zalezitost, kvoli nenormalnemu rozsahu
>> cielov ktore to podchytava, a rozsahu variant pre vsetky ciele, a 
>> rozsahu
>> a zlozitosti cinnosti ktore sa pre vsetky tie ciele a varianty robia), a
>> manual obsahuje len zlomok informacie, vacsinou pre "typicke aplikacie".
>> Bohuzial, tu plne plati zasada "skutocnej dokumentacie"...
>>
>> Teraz to tazke.
>>
>> To, co sa snazite urobit by sa malo spravne riesit tym, ze pouzijete
>> vlastny linker script, a v nom si prehodite .noinit na zaciatok data.
>> Najlepsie zobrat ten, ktory je defaultny (ak to arduino nejako 
>> nepomenilo,
>> tak [avr-gcc]/lib/ldscripts/avrN.x - snad sa nepouziva niektory z 
>> dalsich
>> styroch s inou priponou,
>> https://www-user.tu-chemnitz.de/~heha/hsn/chm/avr-libc.chm/faq_linkerscripts.html 
>>
>> ), skopirovat si ho k sebe, mozno premenovat aby bolo jasne o co ide; 
>> a do
>> prikazu ktorym sa spusta linker (znova, netusim ako to robi arduino a 
>> ani
>> ma to nezaujima) pridat -Wl,-Tmy_linkerscript.x
>>
>> Vsetky ostatne postupy narazaju na to, ze nimi porusujete nejaky 
>> zauzivany
>> postup.
>>
>> Mimochodom, nechapem, co myslite pod:
>>
>>> coz zafunguje, posune se na tuto adresu, ale NEzmeni se pak jeji 
>>> velikost
>>> a vznikly HEX soubor pri natazeni do flash.programu hlasi "soubor 
>>> HEX je
>>> prilis velky pro dany cip".
>>
>> ved hex neobsahuje output section data... ?
>>
>> wek
>>
>>
>> ----- Original Message ---------------
>>
>> Subject: AVRGCC jak zalozit noinit promennou na danou adresu
>>   From: "Tomas Chvatal" <tchvatal na fordiag.cz>
>>   Date: Tue, 8 Aug 2023 08:37:09 +0200
>>     To: ".hw konfera" <Hw-list na list.hw.cz>
>>
>>> Zdravim.
>>>
>>> (Microchip Studio, AVRGCC, Visual Micro, Arduino)
>>>
>>> Mam aplikaci ktera bude umet skocit do bootloaderu.
>>> Zalozil jsem si promennou BLstart ve ktere chci poslat do bootloaderu
>>> informaci o tom,
>>> ze zadam o reflash (ze ma bootloader cekat na reflash i bez stisku 
>>> nejakeho
>>> tlacitka).
>>>
>>> Tedy potrebuji promennou BLstart:
>>> volatile unsigned char BLStartReq __attribute__ ((section 
>>> (".noinit")));
>>> na nejake pevne dane adrese. Idealne 1.byte RAM,
>>> v sekci .noinit (jestli se nepletu).
>>>
>>> Pokud v linker prikazu pridam:
>>> -Wl,--section-start=.noinit=0x800100
>>> tak se mi prom.spravne posadi na adresu 0x0100
>>>
>>> Ale STEJNOU adresu take pouzije sekce .data.
>>> viz.:
>>>
>>> Sections:
>>> Idx Name          Size      VMA       LMA       File off  Algn
>>>  0 .data         00000222  00800100  00004148  000041fc  2**0
>>>                  CONTENTS, ALLOC, LOAD, DATA
>>>  1 .noinit       00000001  00800100  00004148  0000441e  2**0
>>>                  ALLOC
>>>
>>>
>>> Zkusil jsem tedy i sekci .data urcit adresu pomoci:
>>> -Wl,--section-start=.data=0x800102
>>>
>>> coz zafunguje, posune se na tuto adresu, ale NEzmeni se pak jeji 
>>> velikost
>>> a vznikly HEX soubor pri natazeni do flash.programu hlasi "soubor 
>>> HEX je
>>> prilis velky pro dany cip".
>>> viz.
>>> Sections:
>>> Idx Name          Size      VMA       LMA       File off  Algn
>>>  0 .data         00000222  00800102  00004148  000041fc  2**0
>>>                  CONTENTS, ALLOC, LOAD, DATA
>>>  1 .noinit       00000001  00800100  00800100  0000441e  2**0
>>>                  ALLOC
>>>
>>>
>>> Co prosim prehlizim ? Lze pres nejaky linker option urcit velikost 
>>> sekce
>>> .data ?
>>> Nebo musim zeditovat linker script ? (to bych nerad, Arduino ....)
>>>
>>> Poddotaz: kde najdu nejaky popis parametru linkeru jako je 
>>> "--section-start"
>>> ?
>>> (zkousel jsem, ale nebyl jsem uspesny :-( )
>>>
>>> Diky predem za kazde info.
>>>
>>> s přáním hezkého dne / best regards
>>> Tomáą Chvátal
>>> tchvatal na fordiag.cz
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list