我已经能够在IAR (7.40)中构建代码(用于ST STM32F407IG ARM Cortex-m4),它通过gcc (4.9.3)链接到Ubuntu下构建的库。这主要是可行的,但在IAR或gcc方面,一些建筑环境的调整仍然存在。如果你能帮我找到什么我会很感激。
没有明显的构建错误,但EWARM和arm-none-eabi-gcc在传递给gcc构建的库的参数位置上存在分歧。EWARM调试器和EWARM生成的代码彼此一致,但(目前看来已经进行了调查) gcc生成的代码所期望的位置将与EWARM预期的位置相抵8个字节。我只调查过一个电话,所以这可能不是固定的.
IAR的编译器标志包括arm-none-eabi-gcc编译器旗子包括:-g侏儒-3 -mabi=aapcs --mthumb=armv7e-m -mthumb.
我相信这告诉EWARM和gcc与ARM AAPCS标准程序调用和矮小v3格式一起玩得很好。
EWARM似乎对g侏儒-2或-g侏儒-3(但不是-4)都很满意.这一选择似乎不影响上文讨论的问题。
还需要什么?
发布于 2015-04-14 23:08:23
答案是“还需要什么?”似乎什么都不是。只需确保由#ifdef语句计算的所有宏在环境中都匹配,这样您就不会在两个不同的环境中得到不同大小的数据结构!#ifdef代码是头文件,应该仔细评估.
https://stackoverflow.com/questions/29616348
复制相似问题