Sekcja .bss



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "CodiJack" <jurek_k__at_nospam_poczta.onet.pl>
Subject: Sekcja .bss
Date: Mon, 15 May 2006 13:08:21 +0200


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.



Poprzedni Następny
Wiadomość
Spis treści
From: "Piotrek Sz." <zumek_at_nospam_WYTNIJ.gazeta.pl>
Subject: Re: Sekcja .bss
Date: Mon, 15 May 2006 15:32:21 +0000 (UTC)


CodiJack <jurek_k__at_nospam_poczta.onet.pl> napisał(a):

Witam.
Męczę CrossStudio (oparte na gcc, z którym rozpoczynam przygodę) dla ARM i
coś mnie "pomroczność jasna" napadła ;(

Ja bym to nazwał lenistwem :(

Chcę zainicjować zmienną np. int ALA=5; w sekcji ".text". (coby była stałą z
ROM)
Jak to zrobić?

Poczytać dokumentację ;)


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?


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,
CodiJack.

Pozdrawiam
Piotrek



--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotrek Sz." <zumek_at_nospam_WYTNIJ.gazeta.pl>
Subject: Re: Sekcja .bss
Date: Mon, 15 May 2006 16:01:26 +0000 (UTC)


Byłbym zapomniał ;)
const int ola=7;

P.


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Poprzedni Następny
Wiadomość
Spis treści
From: "CodiJack" <jurek_k__at_nospam_poczta.onet.pl>
Subject: Re: Sekcja .bss
Date: Tue, 16 May 2006 09:02:01 +0200



Użytkownik "Piotrek Sz." <zumek_at_nospam_WYTNIJ.gazeta.pl> napisał w wiadomości
news:e4a8km$pdb$1_at_nospam_inews.gazeta.pl...
Byłbym zapomniał ;)
const int ola=7;

Ż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")));



Poprzedni Następny
Wiadomość
Spis treści
From: "Piotrek Sz." <zumek_at_nospam_WYTNIJ.gazeta.pl>
Subject: Re: Sekcja .bss
Date: Tue, 16 May 2006 11:27:36 +0000 (UTC)


CodiJack <jurek_k__at_nospam_poczta.onet.pl> napisał(a):


Użytkownik "Piotrek Sz." <zumek_at_nospam_WYTNIJ.gazeta.pl> napisał w wiadomości
news:e4a8km$pdb$1_at_nospam_inews.gazeta.pl...
Byłbym zapomniał ;)
const int ola=7;

Że się wyrażę, a skąd wiesz, że operator const definiuje Ci zmienną w sekcji
..text?

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

Const mówi tylko, że nie wolno Ci danej zmienić, linker i tak ją wrzuci do
..data lub .bss.

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

Przejrzyj dokładnie jak linkier rozkłada dane...
Z nocnego lenistwa, powinno być:

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

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

Piotrek



--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/