【发布时间】:2017-01-24 10:37:32
【问题描述】:
我正在为我的定制板 (LPC1788) 开发嵌入式软件。我的目标是提高嵌入式系统 C 编程的技能和经验。
我已经实现了一个 USB 引导加载程序,它可以启动用户应用程序(如果存在)。否则,它用于通过 USB 轻松加载应用程序。
我的 USB 引导加载程序使用静态库 board.a,用户应用程序也是如此。
有什么技巧可以从用户应用程序引用board.a,它被链接到引导加载程序的二进制文件中?
换句话说,我想通过只输入一次board.a 代码和数据来优化闪存空间。
注意:我使用 LPCXpresso(NXP MCU 工具/GNU Make Builder)它调用 arm-none-eabi-gcc(GNU ARM 嵌入式工具链)
【问题讨论】:
-
我不认为有一个简单的方法可以做到这一点,但假设你将来会改进库 board.a,所以也要改进 userApp。您将能够使用改进的库上传新应用程序,而无需接触引导加载程序。这是正常的工作方式——我的意思是:你只刷新一次引导加载程序,而应用程序则刷新一次或多次。我认为共享库不是一个好主意。
-
是的,你完全有理由升级 board.a 强制升级引导加载程序(非正常工作)。我只是想优化空间。谢谢你:)
-
从理论上讲,我看不出有什么理由不这样做。但这取决于您的工具链(编译器/链接器),所以请edit您的问题并添加详细信息。
标签: c linker embedded cortex-m3