ROM映像(GNU ld脚本)想要将程序拆分为app + lib

时间:2019-02-16 19:36:42

标签: image arm gnu toolchain rom

不确定这是否可以实现,但是这里...

我在嵌入式系统领域工作,例如使用Cortex-M3处理器。 1MB的flash / rom,例如64K ram,以及MCU内置的外围设备(uart,i2c总线)。我使用GNU arm-none-eabi-gcc工具链。我对ld脚本以及ResetHandler如何在重置时将ROM中的.data节从ROM加载到RAM很熟悉。本身没有“操作系统”,我们由重置负责。

如果我有应用程序A,它将包括我的逻辑,对与硬件接口的库的调用(在本例中为emlib,我们使用EnergyMicro MCU)以及对C库的调用。 App B具有其逻辑,但是A和B的很大一部分很常见。

是否有可能从A的.bin文件中提取“ I / O + C lib”并将其本身闪存到目标板上?然后,A和B可以分别放置在不同的ROM位置,并且某种形式的引导程序可以在它们之间进行选择?我猜这是一个固定的问题:首先加载A和B的交集,然后加载A和B中不重叠的部分(补码?)。

对我来说,这将是一个真正的胜利,因为我们的目标是“现场”更新代码,即在系统部署之后。我们属于海洋工业,只有铱星卫星通信到该设备。如果A是200K,其中80K是'lib',而B是210K,那么最好为B发送130K,而不是全部发送。我很欣赏在工厂烧成闪存的“ lib”必须包含P可以使用的所有例程,但是我可以接受。

那里有GNU ld大师吗?”

欢呼

0 个答案:

没有答案