MPLAB无Harmony环境下PIC32MX795F512L的FreeRTOS编译报错求助
PIC32MX795F512L 集成FreeRTOS编译报错解决建议
问题描述
我正在MPLAB中对PIC32MX795F512L进行编程,集成FreeRTOS库时遇到编译错误。已从官方网站下载FreeRTOS库并添加到项目主文件夹,在GCC预处理设置中指定了源目录,项目中包含以下头文件:
#include "FreeRTOS/Source/include/FreeRTOS.h" #include "FreeRTOS/Source/portable/MPLAB/PIC32MX/portmacro.h"
编译时仍报错,错误信息翻译如下:
截图1错误:无法找到头文件'portmacro.h'
截图2错误:'configMAX_PRIORITIES'未定义,出现在FreeRTOS.h中
解决建议
调整头文件包含方式
不要手动包含portmacro.h,FreeRTOS.h会根据端口配置自动引入对应端口的portmacro.h文件,删除第二行#include,仅保留:#include "FreeRTOS/Source/include/FreeRTOS.h"修正包含路径配置
在MPLAB项目属性 → XC32编译器 → 预处理 → 包含路径中,添加FreeRTOS库的根目录(即包含Source文件夹的上级目录)。例如若FreeRTOS库放在项目下的./FreeRTOS文件夹,就把${PROJECT_DIR}/FreeRTOS添加到包含路径。添加FreeRTOS核心源文件到项目
仅添加头文件无法完成编译,必须加入以下核心源文件:Source目录下的tasks.c、queue.c、list.c(若用到定时器需加timers.c)Source/portable/MPLAB/PIC32MX目录下的port.cSource/portable/MemMang目录下的内存管理文件(推荐选heap_4.c)
添加必要编译宏
在预处理宏定义中添加适配硬件的关键宏(数值根据实际配置调整):configCPU_CLOCK_HZ=80000000 configMAX_PRIORITIES=5 configUSE_PREEMPTION=1验证端口文件完整性
确认下载的FreeRTOS库中portable/MPLAB/PIC32MX目录下存在port.c、portmacro.h、portasm.S文件,缺失则重新下载适配PIC32MX系列的FreeRTOS版本。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

