我想在不牺牲模拟器的情况下使用队列。
我知道如何使用带有 extern 关键字的队列,但它会禁用模拟器,因为 TouchGFX 看不到头文件和源文件。我已经编辑了 Makefile 以包含标题,但我还有两个问题。
第一个问题是包括 reent.h:
如果我不包含 FreeRTOS.h,我会收到此错误:
到目前为止,这是我在 Makefile 中修改的内容:
- project_path := $(call qs,$(abspath $(call sq,$(makefile_path)../../..)))
- ADDItiONAL_SOURCES :=
- ADDITIONAL_INCLUDE_PATHS := $(project_path)/Core/Inc
- $(project_path)/STM32CubeIDE/Application/User
- $(project_path)/Middlewares/Third_Party/FreeRTOS/Source/include
- $(project_path)/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F
- $(project_path)/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2
- ADDITIONAL_LIBRARY_PATHS :=
- ADDITIONAL_LIBRARIES :=
还包括 cmsis_os2.c 文件,该文件包含我在 ADDITIONAL_SOURCES 中使用的结构和函数的定义并没有帮助。
那么,简而言之,有没有办法在 TouchGFX 中使用队列来不禁用模拟器?如果从 CubeIDE 编译代码有效,但从 TouchGFX 编译不工作。如果可能的话,我想在 TouchGFX 中启用所有 FreeRTOS 功能,以免以后出现其他问题。
编辑:
这很懒惰,但既然我已经做了这个线程,我不妨问一下。
由于我在模拟器中不需要 FreeRTOS,我只需要队列将一些数据发送到其他任务,我希望模拟器能够轻松调试 GUI,是否有一些 TouchGFX
#define我可以用来从编译中排除 FreeRTOS 代码从 TouchGFX 编译时,但从 CubeIDE 编译时包含它?