Sekcja .bss

May 15, 2006 4 Replies

Witam. Mêczê CrossStudio (oparte na gcc, z którym rozpoczynam przygodê) dla ARM i co¶ mnie "pomroczno¶æ jasna" napad³a ;( Chcê zainicjowaæ zmienn± np. int ALA=5; w sekcji ".text". (coby by³a sta³± z ROM) Jak to zrobiæ?



Próbowa³em: section .text ... Wynik -> parse error before '.' token



section ".text" ... Wynik -> parse error before string constant



Jak umie¶ciæ np. stringi w sekcjach innych ni¿ .data?



Pozdrawiam, CodiJack.



CodiJack <jurek_k snipped-for-privacy@poczta.onet.pl> napisał(a):

Ja bym to nazwał lenistwem :(

Poczytać dokumentację ;)

Wystarczy zajrzeć do opcji przykładowego projektu i w zakładce Section stoi jak byk : Constant Section Name .rodata Mało tego , wystarczy obejrzeć dowolny plik *.lst , a tam sekcji multum. Samo nic nie przyjdzie ,a wystarczy odrobinka wysiłku ;) A tak to się pisze w kodzie: char piotr[] __attribute__ ((section (".rodata"))) = {"Piotr"}; int ala __attribute__ ((section (".text"))) = 5;

Pozdrawiam Piotrek

U¿ytkownik "Piotrek Sz." snipped-for-privacy@WYTNIJ.gazeta.pl> napisa³ w wiadomo¶ci news:e4a8km$pdb$ snipped-for-privacy@inews.gazeta.pl...

¯e siê wyra¿ê, a sk±d wiesz, ¿e operator const definiuje Ci zmienn± w sekcji .text? Const mówi tylko, ¿e nie wolno Ci danej zmieniæ, linker i tak j± wrzuci do .data lub .bss. Przejrzyj dok³adnie jak linkier rozk³ada dane... Z nocnego lenistwa, powinno byæ:

int ola __attribute__ ((section(".text")));

CodiJack <jurek_k snipped-for-privacy@poczta.onet.pl> napisał(a):

Ja nie napisałem , że const wyląduje w sekcji .text C

Const ląduje w sekcji .rodata , a nie data, czy .bss

Ja Ci podałem tylko sposób , a nie gotowe rozwiązanie ;) Za lenia - sorki ;)

Piotrek

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required