将 FreeRTOS 与 XC8 编译器一起使用

Posted

技术标签:

【中文标题】将 FreeRTOS 与 XC8 编译器一起使用【英文标题】:Using FreeRTOS with XC8 compiler 【发布时间】:2014-09-19 00:08:42 【问题描述】:

我正在尝试使用 XC8 编译器设置 FreeRTOS,但没有成功。我在互联网上搜索过,但没有太多关于它的信息。我使用的是 PIC18F46K80,所以我不能使用 C18,因为它不受支持。

我正在尝试编译这个最小程序:

#include <p18f46k80.h>
#include <stdlib.h>

#include <FreeRTOS.h>

int main(int argc, char** argv) 

    return (EXIT_SUCCESS);

我已经包含了编译器的相应路径:

我得到的错误是:

FreeRTOS/Source/include\timers.h:71: 错误: (103) #error: "include FreeRTOS.h 必须在包含 timers.h 之前出现在源文件中”

FreeRTOS/Source/include\task.h:71: 错误: (103) #error: "include FreeRTOS.h 必须在包含 task.h 之前出现在源文件中”

你可以清楚地看到我包括FreeRTOS.h。例如,我尝试在timers.h 中手动添加#define

#ifndef INC_FREERTOS_H
    #error "include FreeRTOS.h must appear in source files before include timers.h"
#endif

错误消失了,但我得到了很多新错误。不能将 FreeRTOS 与 XC8 一起使用吗?还有其他适用于 XC8 的免费 RTOS 吗?

【问题讨论】:

【参考方案1】:

我尝试使用 C18,但最新版本的 FreeRTOS 不再编译。由于 PIC18 上的零散架构 FreeRTOS 不再支持它们,社区也不支持,所以如果您想更好地使用 RTOS,请尝试使用 PIC24 或更高版本,或者尝试一些仅为 PIC18 设计的更简单的 RTOS!

【讨论】:

以上是关于将 FreeRTOS 与 XC8 编译器一起使用的主要内容,如果未能解决你的问题,请参考以下文章

在MPLAB 8.92 安装 XC8

请教mplab x ide v3.05 xc8编译 pic17f887 pickit3调试问题

将 OpenMP 与 clang 一起使用

通过 PIC16 UART 发送转换后的 DS1820 温度

如何将 Java 源代码交叉编译为 JavaScript?

使用 GCC (ARM) 配置 FreeRTOS