CubeMx和Atollic裸项目中的宏观可见性

时间:2018-06-11 14:24:23

标签: stm32 cubemx truestudio

我从零开始创建了一个简单的CubeMx项目,并在Atollic TrueStudio上打开它。当然,它的编译成功了。我一直在环顾项目的目录和文件,以便在构建新项目时更好地理解裸结构。

我目前使用的是配备CortexM4 CPU的STM32板,我使用GCC编译器在 C 中编程。在项目中,我找到了一个名为 core_cm4.h 的头文件,它是宏声明的扩展,即 #define 语句。这是奇怪的事情出现的地方:当我尝试在 main.c 文件(以及任何其他新文件)中使用这些宏时,它们都可用并被识别,但是以下的: / p>

#elif defined ( __GNUC__ )
   #define __ASM            __asm          /*!< asm keyword for GNU Compiler */
   #define __INLINE         inline         /*!< inline keyword for GNU Compiler */
   #define __STATIC_INLINE  static inline

定义了__GNUC__符号,编译器不报告任何警告或错误。但是,IDE不会在下拉菜单中提供这些宏,并将该字标记为语法错误

我试图在 core_cm4.h 文件中的其他位置移动声明失败。我是否忽略了相关的内容?

2 个答案:

答案 0 :(得分:0)

您说__GNU__符号已定义,但#elif正在检查__GNUC__,这不是一回事。这是你的错字吗?

答案 1 :(得分:0)

根据你的回答,该项目成功编译:

请尝试“刷新所有文件”,然后“重建”索引。

(您可以通过右键单击项目资源管理器中的项目名称来找到此命令) enter image description here