执行在Flash NOR中预加载的代码

时间:2008-12-23 21:35:21

标签: arm embedded flash-memory uclinux

我正在构建一个在NXP LPC2478上运行的uClinux系统。该芯片具有512k板载快速闪存,可直接执行代码。我想从常规外部SDRAM加载并运行用户应用程序。但我有一个特殊的图形库,我想预先加载以执行板载闪存。

有没有办法编译图形库以在内存中的固定位置(闪存)运行,然后编译/链接使用它的应用程序将其所有引用固定到flash中的相应位置?

如果我必须编写一个手动修复的自定义应用程序加载器,我会这样做。

1 个答案:

答案 0 :(得分:1)

我假设你正在使用GCC。此外,我相信您将uCLinux,图形库和您的应用程序链接在一个阶段,以生成可执行文件。所有组件的链接由链接描述文件(ld文件)控制。要做你想做的事,你需要编辑ld文件,并在启动代码中进行正确的初始化。

在链接描述文件中,您应该将数据部分放在外部RAM中。然后为图形库创建一个特殊部分并将其放在flash中。创建节时,您可以指示它包含哪些对象文件。在启动代码中,您需要将数据部分从闪存复制到RAM。链接器将负责将RAM中的应用程序与闪存中的图形库链接。

这就是通常的事情。根据您的工具链和库的要求,可能涉及更多步骤。