2011-01-21 10 views
10

in linguaggio assembly Io uso .section direttiva per raccontare l'assemblatore quale sezione di uscita per esCome si specificano le sezioni di output nei file C compilati usando GCC?

.section init 

C'è un modo per fare lo stesso in file C. Voglio che il codice di alcuni file vada in una sezione diversa in modo da poterlo caricare su un indirizzo di memoria diverso. So che posso creare uno script per ld e specificare le sezioni lì ma non voglio farlo. C'è qualche tipo di comando per il commutatore o la direttiva .section per i file C che lo farà?

+0

Simile a questa domanda: http://stackoverflow.com/questions/3516398/define-a-sections-in-c-code-gcc. –

risposta

14

c'è:

__attribute__((section("section_name"))) 

Così, ad esempio:

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

.... 

void foo() {} 

porrebbe foo in .text_foo

Vedere here per ulteriori informazioni.

+0

grazie ma è solo per una funzione. Voglio qualcosa che sarà lo stesso per il file C completo – binW

+0

Suggerimento: puoi usare una macro per renderla meno brutta. – Artelius

+0

Una macro è un'ottima scelta, in quanto aiuta anche la portabilità. –

Problemi correlati