iar温热链接到gcc eabi构建库

iar温热链接到gcc eabi构建库,gcc,linker,arm,calling-convention,iar,Gcc,Linker,Arm,Calling Convention,Iar,我已经能够在IAR EWARM 7.40中为ST STM32F407IG ARM Cortex-m4构建代码,它通过gcc 4.9.3链接到Ubuntu下构建的库。这主要是可行的,但IAR或gcc一侧或两者的一些构建环境调整仍然存在。如果你能给我指点什么,我将不胜感激 没有明显的构建错误,但EWARM和arm none eabi gcc对传递到gcc构建库的参数位置存在分歧。EWARM调试器和EWARM生成的代码彼此一致,但根据到目前为止的调查,gcc生成的代码预期的位置与EWARM预期的位置偏

我已经能够在IAR EWARM 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的编译器标志包括:-aeabi和-guard_调用,请参见EWARM帮助部分中的:aeabi合规性部分。 arm none eabi gcc编译器标志包括:-gdwarf-3-mabi=aapcs-march=armv7e-m-mthumb

我相信这会告诉EWARM和gcc与ARM AAPCS标准过程调用和dwarf v3格式配合得很好

EWARM似乎对-gdwarf-2或-gdwarf-3很满意,但对-4不满意。此选择似乎不会影响上述问题


还需要什么?

还需要什么的答案?似乎什么都没有。请确保ifdef语句计算的所有宏在环境中都匹配,这样您就不会在两个不同的环境中得到大小不同的数据结构!ifdef代码是头文件,应仔细评估