gcc string relocation

Petrik Gergely spee at freemail.hu
Wed Apr 21 16:20:33 CEST 2004


On Mon, 19 Apr 2004 ide.ne.irj at freemail.hu wrote:

> Thus spake Petrik Gergely:
>
> > ezutan a linkernek megadtam paramterben, hogy hova keruljon a
> > bl_string szekcio, de nem tette oda, hanem a stringek maradtak a
> > flash elejen levo kod mogott (ugyanazt csinaltam, mint a
> > .bootloader szekcional, azt jo helyre teszi). mi lehet a hiba?
>
> Mi erre a kulturalt megoldas?
ismerni kell a fejlesztoeszkoz lelkivilagat. a legelso
probalkozasaim (amiket azota debuggolassal lelepleztem) igen
gyengecskek voltak. a stringek helyett a rajuk mutato
pointer kerult a megfelelo szekcioba, es sorolhatnam. tobbek
kozott arra is feny derult, hogy a gcc az inline direktivat
figyelmen kivul hagyja, ha nincs bekapcsolva az
optimalizacio (es a fuggvenyeket szepen berakta a flash
elejere, amit aztan a ketyere onprogramozas kozben torolt,
es ertheto modon elszallt).

> Asm-ben ugy csinaltam, hogy definialtam egy kulon boot es bootvec
> szegmenst az IAR-ben, oda tudok pakolni RSEG-gel.
> A C forditonak hogyan lehet megmondani, hogy egy bizonyos programreszt,
> (pl fuggvenyt) valamint az osszes altala meghivott fuggvenyt (beleertve
> a library fuggvenyeket is) egy bizonyos szegmensbe tegye?
> Latatlanban ugy tunik, hogy kb eselytelen.
a library fuggvenyek kapcsan asszem egyetertek, de a tobbi
fv relokalasa megy C kiterjesztesekkel. a gcc-ben
__attribute__ (section((...))) izebigyoval (nem tudom minek
nevezzem). ugyanigy tortenik a varazslat motorola procis
palmon, arm-mal szerelt palmokkal nincs tapasztalatom, de
mintha azt is tamogatna a gcc, stb. amire biztosan
gyakran szukseg van, azt tutira meg lehet valahogy csinalni,
maskepp nem er semmit a fejlesztoeszkoz. ha valaki nagyon
ritka es furmanyos problemaba utkozik, akkor lehet hackelni,
ez benne van a pakliban. de az esetek tobbsegeben nem ez a
helyzet.

> Most qrwara orulok hogy az EKG programjat asm-ben irom, a tobbihez meg
> nem kell bootloader.
ami azt illeti, a bootloader eleg primitiv egy program (bar
eltartott egy hetig, mig mukodokepesre pofoztam, de ebben az
1 hetben benne volt az is, hogy eletemben nem programoztam
meg uC-t C-ben). makrokbol es inline fuggvenyekbol teljesen
szepen ossze lehet epiteni, es a relokalas is megoldhato
volt vegul. sima programkodnal mikor van jelentosege annak,
hogy hova kerul a flashben?

> Valaki nezte amirol a multkor irtam? Valtozo parameterhossz prepocesszor
> makrokban. Poenbol kiprobaltam az IAR-ben, nem muxik. GCC tamogatja?
ne mar. ilyen egzotikus dolgokat kitalalni... :)

NE flameljunk, jo? :) esetleg maganban megvitathatjuk az
elet nagy dolgait. eme mail monumentalis celja legfokepp az,
hogy bejelentsem: van avr-gcc-s bootloaderem mega16-ra (ami
valszeg muxik nagyobb vackokon is), es hozza egy primitiv
linuxos programozo "sw"-em is. ahogy neztem gugliban, nem
sok ilyen akad. amibol en dolgoztam, az is halal bugos volt
eredetileg. most mar persze tokeletes... :)

--
G




More information about the Elektro mailing list