FreeRTOS学习资料:
安富莱论坛FreeRTOS教程
第1章 为什么选用FreeRTOS
1.1 FreeRTOS优势
FreeRTOS优势 最大的优势就是开源免费,商业使用的话不需要用户公开源代码,也不存在任何版权问题,是当前小型嵌入式操作系统市场使用率最高的。 去年的全球嵌入式市场分析报告中,FreeRTOS 占据了 20%。
1.2 移植的难易程度
FreeRTOS 的移植比较简单,只需要用户添加需要的源码文件,不需要做任何的底层工作,再添加三
个宏定义即可,详情可以看第 5 章 FreeRTOS 操作系统移植。
1.3 上手难易程度
作为开源免费的 RTOS,官方配套的手册在 RTOS 的基础知识说明、API 函数说明及其举例方面做的
都非常好,用户上手比较容易。随着后面章节的学习,大家会体会到这一点。
第2章 嵌入式实时操作系统介绍
2.1 嵌入式系统定义
一般定义
以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求
的专用计算机系统。
2.2 实时和分时操作系统区别
按对外部事件的响应能力来分类,嵌入式操作系统有分时操作系统和实时操作系统。
- 如果操作系统能使计算机系统及时的响应外部事件请求,并能控制所有实时设备和实时任务协调运行,且能在一个规定的时间内完成对事件的处理,那么这种系统就称为实时操作系统(RTOS)。
- 按时间的正确程度来分,实时操作系统又分为硬件的实时操作系统和软件的实时操作系统。系统必须在极其严格的时间内完成的任务叫做硬件的实时操作系统,如果不是很严格的话就是软件的实时操作系统。
- 分时操作系统就是按时间片轮转完成各个任务。
第7章 FreeRTOSConfig 配置文件详解
- 7.2.7 configMINIMAL_STACK_SIZE
此参数用于定义空闲任务的栈空间大小,单位字,即 4 字节。 - 7.2.8 configTOTAL_HEAP_SIZE
定义堆大小,FreeRTOS 内核,用户动态内存申请,任务栈,任务创建,信号量创建,消息队列创建等都需要用这个空间。
第10章 FreeRTOS 任务管理
10.1 单任务系统
学习多任务系统之前,我们先来回顾下单任务系统的编程框架,即裸机时的编程框架。裸机编程主要是采用超级循环(super-loops)系统,又称前后台系统。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看做后台行为;中断服务程序处理异步事件,这部分可以看做是前台行为。后台也可以叫做任务级,前台也叫作中断级。
对于前后台系统的编程思路主要有以下两种方式:
10.1.1 查询方式
10.1.2 中断方式
对于查询方式无法有效执行紧急任务的情况,采用中断方式就有效地解决了这个问题,下面是中断方式简单的流程图
采用中断和查询结合的方式可以解决大部分裸机应用,但随着工程的复杂,裸机方式的缺点就暴露出来了:
1)必须在中断(ISR)内处理时间关键运算:
- ISR 函数变得非常复杂,并且需要很长执行时间。
- ISR 嵌套可能产生不可预测的执行时间和堆栈需求。
2)超级循环和 ISR 之间的数据交换是通过全局共享变量进行的:
- 应用程序的程序员必须确保数据一致性。
3)超级循环可以与系统计时器轻松同步