2013-03-01 36 views
7

我正在嘗試編寫鏈接器腳本來將一個節內容寫入兩個非連續內存區域。非連續內存區域的gnu鏈接器部分

我發現在這個這個郵件列表中的舊線: 「LD鏈接腳本和非連續的內存區域」 http://sourceware.org/ml/binutils/2012-01/msg00188.html

我知道從的C28x編譯了一個功能,這個問題 劈裂的(帶有或功能)

SECTIONS {.text:{*(.text)} >> FLASH1 |閃光3}

說明如下: http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

我已經嘗試沒有成功。 目前我必須手動填寫第一個內存區域。但很難搜索部分代碼女巫 我不會在將來改變,並填充完整的第一個內存區域。

在GNU鏈接器中實現了這樣的功能嗎?或者沒有人有更好的主意 我該如何解決這個問題?

回答

1

我認爲最簡單的方法(也許唯一的辦法)是將你的部分分成兩部分,然後分配一個部分到第一個存儲區域,第二個部分分配到第二個存儲區域。

你可能已經看到了這一點,但它是鏈接腳本的一個非常簡潔的描述: http://www.math.utah.edu/docs/info/ld_3.html

+0

我知道這是一個很古老的問題,而是有沒有把它分成兩個部分,而無需手動的好方法將X映射到A部分,將Y映射到B部分?我有三個非連續的記憶來放置一個完整的程序(.text,.data和.bss),這將是一個管理讓它們分裂的熊。 – rjp 2016-11-08 21:42:17