项目简介
本项目是Richard Barry的FreeRTOS的一个分支,专为Arduino AVR设备优化,目标是使Arduino环境能全面兼容并使用FreeRTOS的功能,且仅对必要的硬件部分做修改。
项目的主要特性和功能
- 配置灵活:FreeRTOS有丰富的配置选项,可在FreeRTOSConfig.h文件中指定,同时为保证与所有Arduino硬件选项通用,已设置合理默认值。
- 时间片管理:利用AVR看门狗定时器生成15ms - 500ms的时间片,任务提前完成会将执行权交回调度器,且不影响Arduino正常定时器功能。
- 内存管理:堆内存通过pvPortMalloc()封装的普通malloc()函数分配,也支持FreeRTOS的其他堆分配方案。
- 错误反馈:栈溢出时,LED以4秒周期慢闪;堆溢出时,LED以100毫秒周期快闪。
- 广泛兼容:兼容多种基于ATmega MCU的设备,如Arduino UNO、Leonardo、Mega等。
安装使用步骤
- 确保已下载本项目的源码文件。
- 保证
Arduino_FreeRTOS.h
文件在所有引用中总是第一个被#include
,它会引用其他配置文件并在必要时设置默认值。 - 根据需求在
FreeRTOSConfig.h
中调整FreeRTOS的配置选项,如时间片、栈大小等。 - 在
FreeRTOSVariant.h
中对AVR特定配置进行修改。 - 若需更改堆分配方案,可调整
heap_3.c
或根据具体MCU选择进行额外配置。 - 编译并上传代码到兼容的Arduino设备。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】