2011-01-21 9 views
10

W asemblerze używam dyrektywę .section powiedzieć asembler co odcinek do wyjścia do npJak określić sekcje wyjściowe w plikach C skompilowanych przy użyciu GCC?

.section init 

Czy istnieje sposób, aby zrobić to samo w plikach C. Chcę, aby kod niektórych plików trafił do innej sekcji, więc mogę załadować go na inny adres pamięci. Wiem, że mogę stworzyć skrypt dla ld i określić sekcje, ale nie chcę tego robić. Czy istnieje jakiś przełącznik kompilatora lub dyrektywa typu .section dla plików C, które to zrobi?

+0

Podobne do tego pytania: http://stackoverflow.com/questions/3516398/define-a-sections-in-c-code-gcc. –

Odpowiedz

14

Jest:

__attribute__((section("section_name"))) 

Tak więc, na przykład:

void foo() __attribute__((section(".text_foo"))); 

.... 

void foo() {} 

stawiałoby foo w .text_foo

Zobacz here aby uzyskać więcej informacji.

+0

dziękuję, ale to jest tylko dla jednej funkcji. Chcę czegoś, co będzie takie samo dla kompletnego pliku C – binW

+0

Wskazówka: możesz użyć makra, aby uczynić go mniej brzydkim. – Artelius

+0

Makro to doskonały wybór, ponieważ pomaga również w przenoszeniu. –

Powiązane problemy