Я создал простой проект CubeMx с нуля и открыл его в Atollic TrueStudio. Конечно, его компиляция удачно выходит. Я искал каталоги и файлы проекта, чтобы лучше понять голую структуру при создании новых проектов.
В настоящее время я использую плату STM32, оснащенную процессором CortexM4, и я программирую на C с помощью компилятора GCC. В проекте я нашел файл заголовка с именем core_cm4.h, который предназначен для объявления макросов, то есть операторов #define. Вот где возникает странность: когда я пытаюсь использовать эти макросы в файле main.c (и в любом другом новом файле), все они доступны и распознаются, кроме следующих:
#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. Я упускаю из виду что-то важное?