littlebot
Published on 2025-04-14 / 0 Visits
0

【源码】基于Arduino和FreeRTOS的多任务管理系统

项目简介

本项目是Richard Barry的FreeRTOS的一个分支,专为Arduino AVR设备优化,目标是使Arduino环境能全面兼容并使用FreeRTOS的功能,且仅对必要的硬件部分做修改。

项目的主要特性和功能

  1. 配置灵活:FreeRTOS有丰富的配置选项,可在FreeRTOSConfig.h文件中指定,同时为保证与所有Arduino硬件选项通用,已设置合理默认值。
  2. 时间片管理:利用AVR看门狗定时器生成15ms - 500ms的时间片,任务提前完成会将执行权交回调度器,且不影响Arduino正常定时器功能。
  3. 内存管理:堆内存通过pvPortMalloc()封装的普通malloc()函数分配,也支持FreeRTOS的其他堆分配方案。
  4. 错误反馈:栈溢出时,LED以4秒周期慢闪;堆溢出时,LED以100毫秒周期快闪。
  5. 广泛兼容:兼容多种基于ATmega MCU的设备,如Arduino UNO、Leonardo、Mega等。

安装使用步骤

  1. 确保已下载本项目的源码文件。
  2. 保证Arduino_FreeRTOS.h文件在所有引用中总是第一个被#include,它会引用其他配置文件并在必要时设置默认值。
  3. 根据需求在FreeRTOSConfig.h中调整FreeRTOS的配置选项,如时间片、栈大小等。
  4. FreeRTOSVariant.h中对AVR特定配置进行修改。
  5. 若需更改堆分配方案,可调整heap_3.c或根据具体MCU选择进行额外配置。
  6. 编译并上传代码到兼容的Arduino设备。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】