【发布时间】:2012-05-13 08:50:14
【问题描述】:
我有一个产品,它使用生成“arm-elf”的编译器 (gnuarm GCC 4.1.1) 编译引导加载程序和应用程序。
引导加载程序和应用程序在链接描述文件中被隔离在不同的 FLASH 内存区域中。
该应用程序具有一个功能,使其能够调用引导加载程序(作为具有 2 个参数的简单 c 函数)。
我需要能够升级世界各地的现有产品,而且我可以使用始终使用相同的编译器安全地做到这一点。
现在我希望能够使用输出 arm-eabi 的新 GCC 版本来编译这个产品应用程序。
对于新产品来说一切都很好,其中应用程序和引导加载程序都是使用相同的工具链编译的,但是现有产品会发生什么? 如果我刷写一个使用 GCC 4.6.x 和 arm-none-eabi 编译的新应用程序,我的应用程序是否仍然能够从旧的 arm-elf 引导加载程序调用引导加载程序函数?
另外,和上面的问题没有直接关系,我可以把用arm-elf编译的目标文件混合成用arm-eabi编译的二进制文件吗?
编辑:
我想明确表示我正在为裸机 ARM7 构建,如果它有什么不同的话......
【问题讨论】: