首页 > 解决方案 > CMSIS_OS2.c 无法编译

问题描述

我正在使用 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 选项。

任何想法都值得赞赏。

杰罗姆

标签: cfreertoscmsis

解决方案


推荐阅读