2013-03-01 13 views
7

Sto provando a scrivere uno script linker per scrivere un contenuto di sezione in due regioni di memoria non contigue.sezione linker gnu dell'area di memoria non contigua

ho trovato un vecchio filo in questo elenco mail per questo: "sceneggiatura ld linker e non contigua regione di memoria" http://sourceware.org/ml/binutils/2012-01/msg00188.html

so una caratteristica dalla C28x compilatore per questo problema è spliting la sezioni su più segmenti di memoria: (con un o una funzione)

sEZIONI {.text: (. testo) {*} >> FLASH1 | FLASH3}

descritto qui: http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

devo provare senza successo. Al momento devo riempire manualmente la regione di memoria del pugno. ma è difficile cercare parti del codice streghe Non cambierò in futuro e mi adatterò e riempirò completamente la prima regione di memoria.

È implementata tale funzionalità nel linker GNU? O qualcuno ha un'idea migliore come posso risolvere questo problema?

risposta

1

Penso che il modo più semplice (e forse l'unico modo) sarebbe dividere la sezione in due sezioni, quindi assegnare una sezione alla prima regione di memoria e la seconda alla seconda regione di memoria.

Probabilmente avrete già visto questo, ma è una descrizione abbastanza concisa degli script di collegamento: http://www.math.utah.edu/docs/info/ld_3.html

+0

So che questa è una domanda molto vecchio, ma c'è un buon modo di dividerlo in due sezioni, senza manualmente mappare X nella sezione A e Y nella sezione B? Ho tre memorie non contigue per posizionare un intero programma in (.text, .data e .bss) e sarebbe un orso gestire la loro separazione. – rjp

Problemi correlati