2008-12-23 21 views
4

我正在構建一個uClinux系統以在恩智浦LPC2478上運行。該芯片具有512K板載快速閃存,可以直接執行代碼。我想從常規的外部SDRAM加載並運行用戶應用程序。但是我有一個特殊的圖形庫,我想預加載執行板載閃存。執行在閃存中預加載的代碼NOR

有沒有辦法編譯圖形庫運行在內存中的固定位置(閃存),然後編譯/鏈接使用它的應用程序,它的所有引用都固定在閃存中的適當位置?

如果我必須編寫自定義應用程序加載程序來手動執行修復程序,我會這樣做。

回答

1

我假定您使用的是GCC。另外,我相信你在一個階段鏈接uCLinux,圖形庫和你的應用程序來生成一個可執行文件。所有組件的鏈接由鏈接器腳本(ld文件)控制。要做你想做的事,你需要編輯ld文件,並在啓動代碼中進行正確的初始化。

在鏈接器腳本中,您應該將數據部分放在外部RAM中。然後爲圖形庫創建一個特殊部分並將其放入Flash中。創建節時,可以指示它包含哪些對象文件。在您的啓動代碼中,您需要將數據部分從閃存複製到RAM。鏈接器將負責將您的RAM中的應用程序與flash中的圖形庫鏈接起來。

這就是事情的一般做法。根據您的工具鏈和庫的要求,可能會涉及更多步驟。

+0

是的。這是GCC。我會研究你的建議。設想它幾乎是沿着這些線。 – user126593 2008-12-24 20:17:23