我有一个产品,它使用生成“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 构建,如果它有什么不同的话......