Cortex-M0 +的预定义cpu目标宏

时间:2014-09-22 12:18:52

标签: c embedded arm cortex-m

我目前正在使用预定义的cpu目标宏来使软件在多个cpu目标上运行。

#ifdef __TARGET_CPU_CORTEX_M0
    [do something here]
#elif __TARGET_CPU_CORTEX_M3
    [do something here]
#else
    #error Unsupported compiler platform
#endif

示例:

这适用于Cortex-M0和Cortex-M3,但我无法弄清楚用于Cortex-M0 +的宏。有谁知道我可以使用哪个宏? 我使用armcc编译器。

1 个答案:

答案 0 :(得分:3)

这是documented,虽然相当倾斜。相关宏名称源自命令行选项,因此--cpu=Cortex-M0plus定义__TARGET_CPU_CORTEX_M0PLUS

令人讨厌的是,虽然它没有显示在--cpu=list输出中,但编译器(我试过armcc版本5.04)确实也识别出选项--cpu=Cortex-M0+,它定义了宏__TARGET_CPU_CORTEX_M0_

通常,调用armcc --cpu=xx --list_macros /dev/null将显示为cpu选项 xx 定义了哪些宏(如果不支持,则显示错误)。