我正在使用 FreeRTOS 开发一个 C 项目,但我想使用抽象层 CMSIS_OS2 对其进行更新。问题是我的 FreeRTOS 配置文件,我没有启用所有选项,所以例如我只使用
#define configSUPPORT_STATIC_ALLOCATION ( 1u )
#define configSUPPORT_DYNAMIC_ALLOCATION ( 0u )
所以不会编译所有 NONE dynamique 函数(例如:xTaskCreate)。
但在 cmsis_os2.c 中,所有函数都必须存在才能编译
if (mem == 1) {
hTask = xTaskCreateStatic ((TaskFunction_t)func, name, stack, argument, prio, (StackType_t *)attr->stack_mem,
(StaticTask_t *)attr->cb_mem);
}
else {
if (mem == 0) {
if (xTaskCreate ((TaskFunction_t)func, name, (uint16_t)stack, argument, prio, &hTask) != pdPASS) {
hTask = NULL;
}
}
}
所以我不知道如何管理这个问题,因为我不想启用所有 FreeRTOSConfig.h 选项。
任何想法都值得赞赏。
杰罗姆