【发布时间】:2015-01-29 21:42:12
【问题描述】:
我有一个不会更改的库堆栈,以及一个仅使用此堆栈的固件。固件将在此过程中发生很大变化。由于内存和资源有限的问题(这是一个嵌入式应用程序而不是桌面或服务器),我不想每次都发布整个图像(包括库堆栈)。 我只想发布应用程序映像并且自动能够使用库映像。我不知道该怎么做。例如,我知道在 Windows 中这是由 dll 处理的。但这是一个嵌入式应用程序,没有操作系统。二进制图像加载到内存和处理器将执行它。 有什么经验/建议吗?
工具链:IAR 8051
【问题讨论】:
-
我想这与让编译器知道在哪里可以找到应用程序将要调用的库函数的引用(内存位置)有关。你认为这是正确的方向吗?
-
为什么每次都觉得全图太大放不下?对于从闪存/ROM 执行的 MCU 来说,包含一个小型引导加载程序,该引导加载程序从一个或多个可能的应用程序映像中更新和选择,这是相当标准的做法,但是您所描述的并不是特别常见,除非在处理来自的专有固件“blob”时芯片供应商。
-
刚刚检查了您的帖子历史记录......这仍然适用于带有 IAR 工具链的 TMS470 吗?如果是这样,您可能想在您的问题中指定它。您最初问题的任何解决方案都将非常依赖于工具链(可能还有架构)。
-
我没有在 TMS 上发帖。我的工具链是 IAR8051。在正在处理的特殊应用中,这种分离会产生很大的不同。引导加载程序当然存在。
-
糟糕,TMS 在您回答的线程上,而不是您提出的问题。
标签: c linker embedded firmware iar