我正在构建一个在恩智浦LPC2478上运行的uClinux系统。该芯片具有512k的板载快速闪存,可以直接执行代码。我想从常规的外部SDRAM加载和运行用户应用程序。但我有一个特殊的图形库,我想要预加载,以执行板载闪存。
有没有一种方法可以编译图形库,使其在内存中的固定位置(闪存)运行,然后编译/链接使用它的应用程序,使其对该库的所有引用都固定到闪存中的适当位置?
如果我必须编写一个自定义的应用程序加载程序来手动修复,我会这么做的。
发布于 2008-12-24 08:23:28
我假设您使用的是GCC。此外,我相信您将在单个阶段中链接uCLinux、图形库和您的应用程序以生成可执行文件。所有组件的链接由链接器脚本(ld文件)控制。要执行所需操作,您需要编辑ld文件,并在启动代码中执行适当的初始化。
在链接器脚本中,您应该将数据部分放在外部RAM中。然后为图形库创建一个特殊的部分,并将其放入flash中。在创建节时,您可以指示它将包括哪些对象文件。在启动代码中,您需要将数据部分从闪存复制到RAM。链接器将负责将RAM中的应用程序与flash中的图形库进行链接。
这就是通常做事情的方式。根据您对工具链和库的要求,可能会涉及更多步骤。
https://stackoverflow.com/questions/390133
复制相似问题