正点原子 FreeRTOS 开发教程
1
FreeRTOS 开发指南
FreeRTOS 开发指南
V1.10
本教程适用于正点原子所有 STM32 开发板
正点原子 FreeRTOS 开发教程
2
FreeRTOS 开发指南
修订历史:
版本
日期
修改内容
V1.0
2022/06/18
第一次发布
V1.1
2022/06/30
修改第五章中对任务栈大小描述的错误
V1.2
2022/07/13
完善对 EXC_RETURN 的描述,及其在 FreeRTOS 中的
应用
V1.3
2022/09/13
编写“队列集模拟事件标志位实验”
V1.4
2023/01/05
修改部分错别字
V1.5
2023/04/15
添加对阿波罗系列开发板的支持
V1.6
2023/08/06
添加对 G4 开发板的移植支持
V1.7
2023/08/07
添加对北极星系列开发板的支持
V1.8
2023/10/09
添加对 ATK-DNH562 开发板的支持
V1.9
2023/12/19
修改部分错别字
V1.10
2023/01/08
针对代码问题修复的修改
正点原子 FreeRTOS 开发教程
3
FreeRTOS 开发指南
正点原子公司名称 :广州市星翼电子科技有限公司
原子哥在线教学平台 :www.yuanzige.com
开源电子网 / 论坛 :www.openedv.com
正点原子官方网站 :www.alientek.com
正点原子淘宝店铺 :https://openedv.taobao.com
正点原子 B 站视频 :https://space.bilibili.com/394620890
电话:020-38271790 传真:020-36773971
请下载原子哥 APP,数千讲视频免费学习,更快更流畅。
请关注正点原子公众号,资料发布更新我们会通知。
正点原子 FreeRTOS 开发教程
4
FreeRTOS 开发指南
第一章 FreeRTOS 简介 ................................................................................................................ 16
1.1 初识 FreeRTOS .................................................................................................. 16
1.1.1 什么是 FreeRTOS? ................................................................................... 16
1.1.2 为什么选择 FreeRTOS? ........................................................................ 16
1.1.3 FreeRTOS 的特点 ..................................................................................... 17
1.1.4 商业许可 .................................................................................................. 17
1.2 磨刀不误砍柴工 ................................................................................................ 18
1.2.1 查找资料 .................................................................................................. 18
1.2.2 FreeRTOS 官方文档 ................................................................................. 20
1.2.3 Cortex-M 架构资料 ................................................................................... 22
1.3 FreeRTOS 源码初探 ........................................................................................... 22
1.3.1 FreeRTOS 源码下载 ................................................................................. 22
1.3.2 FreeRTOS 文件预览 ................................................................................. 24
第二章 FreeRTOS 移植 ............................................................................................................... 28
2.1 FreeRTOS 移植 ................................................................................................... 28
2.1.1 移植前准备 .............................................................................................. 28
2.1.2 添加 FreeRTOS 文件 ............................................................................... 28
2.1.3 修改 SYSTEM 文件 ................................................................................. 32
2.1.4 修改中断相关文件 .................................................................................. 40
2.1.5 可选步骤(建议完成) .......................................................................... 42
2.1.6 添加应用程序 .......................................................................................... 43
2.1.7 使用 AC6 编译工程(扩展) ................................................................. 52
2.2 FreeRTOS 移植实验 ........................................................................................... 53
2.2.1 功能设计 .................................................................................................. 53
2.2.2 软件设计 .................................................................................................. 53
2.2.3 下载验证 .................................................................................................. 55
第三章 FreeRTOS 系统配置 ....................................................................................................... 57
3.1 FreeRTOSConfig.h 文件 ..................................................................................... 57
3.2 “config”配置项 ................................................................................................... 57
3.2.1 基础配置项 .............................................................................................. 57
3.2.2 内存分配相关定义 .................................................................................. 60
正点原子 FreeRTOS 开发教程
5
FreeRTOS 开发指南
3.2.3 钩子函数相关定义 .................................................................................. 61
3.2.4 运行时间和任务状态统计相关定义 ...................................................... 61
3.2.5 协程相关定义 .......................................................................................... 62
3.2.6 软件定时器相关定义 .............................................................................. 62
3.2.7 中断嵌套行为配置 .................................................................................. 63
3.2.8 断言 .......................................................................................................... 63
3.2.9 FreeRTOS MPU 特殊定义 ........................................................................ 64
3.3 “INCLUDE”配置项 ............................................................................................ 64
3.4 其他配置项 ........................................................................................................ 65
第四章 FreeRTOS 中断管理 ....................................................................................................... 66
4.1 ARM Cortex-M 中断 .......................................................................................... 66
4.1.1 ARM Cortex-M 中断简介 ......................................................................... 66
4.1.2 中断优先级管理 ...................................................................................... 66
4.1.3 三个系统中断优先级配置寄存器 .......................................................... 68
4.1.4 三个中断屏蔽寄存器 .............................................................................. 68
4.1.5 中断控制状态寄存器 .............................................................................. 70
4.2 FreeRTOS 中断配置项 ....................................................................................... 70
4.3 FreeRTOS 中断管理详解 ................................................................................... 72
4.3.1 PendSV 和 SysTick 中断优先级 .............................................................. 72
4.3.2 FreeRTOS 开关中断 ................................................................................. 72
4.3.3 FreeRTOS 进出临界区 ............................................................................. 74
4.4 FreeRTOS 中断测试实验 ................................................................................... 76
4.4.1 功能设计 .................................................................................................. 76
4.4.2 软件设计 .................................................................................................. 76
4.4.3 下载验证 .................................................................................................. 79
第五章 FreeRTOS 任务基础知识 ............................................................................................... 82
5.1 单任务和多任务系统 ........................................................................................ 82
5.1.1 单任务系统 .............................................................................................. 82
5.1.2 多任务系统 .............................................................................................. 83
5.2 FreeRTOS 任务状态 ........................................................................................... 83
5.3 FreeRTOS 任务优先级 ....................................................................................... 84
5.4 Free RTOS 任务调度方式 .................................................................................. 85