2013-03-01 10 views
7

Próbuję napisać skrypt łącznika, aby zapisać jedną treść sekcji w dwóch nieciągłych regionach pamięci.Sekcja łącznika gnu w nieciągłym regionie pamięci

znalazłem stary wątek w tej liście poczty na ten temat: „skrypt ld Linker i Niesąsiadujące obszar pamięci” http://sourceware.org/ml/binutils/2012-01/msg00188.html

wiem funkcję z C28x kompilatora dla tego problemu jest spliting sekcje w wielu segmentach pamięci: (z funkcją lub)

SEKCJE {.tekst: {* (. tekst)} >> FLASH1 | FLASH3}

opisane tutaj: http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

muszę spróbować go bez powodzenia. W tej chwili muszę ręcznie wypełnić region pamięci pięści. ale jest trudnym do wyszukania fragmentem kodu z Nie zmienię się w przyszłości i dopasuję i całkowicie wypełnię pierwszy obszar pamięci.

Czy zaimplementowano taką funkcję w łączu GNU? A może ktoś ma lepszy pomysł? Jak mogę rozwiązać ten problem?

Odpowiedz

1

Myślę, że najprostszym sposobem (a może jedynym sposobem) byłoby podzielenie sekcji na dwie sekcje, a następnie przypisanie jednej sekcji do pierwszego obszaru pamięci, a drugiej do drugiego obszaru pamięci.

Prawdopodobnie już widziałem tego, ale jest to dość zwięzły opis skryptów link: http://www.math.utah.edu/docs/info/ld_3.html

+0

wiem, że to jest bardzo stare pytanie, ale czy jest to dobry sposób, aby podzielić go na dwie części bez ręcznego odwzorowanie X na części A i Y na sekcję B? Mam trzy nieciągłe wspomnienia, aby umieścić cały program w (.text, .data i .bss) i byłoby mi trudno zarządzać utrzymaniem ich podziału. – rjp