FreeRTOS的学习(一)——实时操作系统和多任务的介绍

目录

 

1、初识FreeRTOS

2、FreeRTOS 任务的状态

3、FreeRTOS 的任务

任务的创建和删除

1、xTaskCreate():使用静态的方法创建一个任务。

2、xTaskCreateStatic():使用静态的方法创建一个任务。

4、vTaskDelete():删除一个任务。

任务挂起和恢复

1、vTaskSuspend():挂起一个任务。

2、vTaskResume():恢复一个任务的运行。

3、xTaskResumeFromISR():中断服务函数中恢复一个任务的运行

4、FreeRTOS 任务切换

 5、任务优先级

6、多任务的实验


1、初识FreeRTOS

        我们看一下 FreeRTOS 的名字,可以分为两部分:Free 和 RTOS, Free 就是免费的、 自由的、不受约束的意思, RTOS 全称是 Real Time Operating System, 中文名就是实时操作系统。可以看出 FreeROTS 就是一个免费的 RTOS 类系统。这里要注意, RTOS 不是指某一个确定的系统, 而是指一类系统。 比如 UCOS, FreeRTOS, RTX, RT-Thread 等这些都是 RTOS 类操作系统。

        实时操作系统允许多个任务同时运行, 这个叫做多任务, 实际上, 一个处理器核心在某一时刻只能运行一个任务。 操作系统中任务调度器的责任就是决定在某一时刻究竟运行哪个任务, 任
务调度在各个任务之间的切换非常快!这就给人们造成了同一时刻有多个任务同时运行的错觉。

        操作系统的分类方式可以由任务调度器的工作方式决定, 比如有的操作系统给每个任务分
配同样的运行时间,时间到了就轮到下一个任务, Unix 操作系统就是这样的。 RTOS 的任务调
度器被设计为可预测的, 而这正是嵌入式实时操作系统所需要的, 实时环境中要求操作系统必
须对某一个事件做出实时的响应,因此系统任务调度器的行为必须是可预测的。 像 FreeRTOS 这
种传统的 RTOS 类操作系统是由用户给每个任务分配一个任务优先级, 任务调度器就可以根据
此优先级来决定下一刻应该运行哪个任务。

2、FreeRTOS 任务的状态

        ● 运行态

        当一个任务正在运行时, 那么就说这个任务处于运行态, 处于运行态的任务就是当前正在
使用处理器的任务。 如果使用的是单核处理器的话那么不管在任何时刻永远都只有一个任务处
于运行态。

        ● 就绪态

        处于就绪态的任务是那些已经准备就绪(这些任务没有被阻塞或者挂起), 可以运行的任务,
但是处于就绪态的任务还没有运行,因为有一个同优先级或者更高优先级的任务正在运行!

        ● 阻塞态

        如果一个任务当前正在等待某个外部事件的话就说它处于阻塞态, 比如说如果某个任务调
用了函数 vTaskDelay()的话就会进入阻塞态, 直到延时周期完成。任务在等待队列、信号量、事
件组、通知或互斥信号量的时候也会进入阻塞态。任务进入阻塞态会有一个超时时间,当超过
这个超时时间任务就会退出阻塞态,即使所等待的事件还没有来临!

        ● 挂起态

        像阻塞态一样,任务进入挂起态以后也不能被调度器调用进入运行态, 但是进入挂起态的
任务没有超时时间。任务进入和退出挂起态通过调用函数 vTaskSuspend()和 xTaskResume()。

 FreeRTOS利用这些状态使任务更加灵活的运行,更加节约CPU资源,实时性更强。这些状态都可以由相对应的API函数来控制任务变成哪种状态!!!!!

3、FreeRTOS 的任务

        FreeRTOS 最基本的功能就是任务管理,而任务管理最基本的操作就是创建和删除任务,官方都给我们提供的相对应的API函数来创建和删除任务。

任务的创建和删除

函数 描述
xTaskCreate() 使用动态的方法创建一个任务。
xTaskCreateStatic() 使用静态的方法创建一个任务。
xTaskCreateRestricted() 创建一个使用 MPU 进行限制的任务,相关内存使用动态内存分配。
vTaskDelete() 删除一个任务。

1、xTaskCreate():使用静态的方法创建一个任务。

函数原型

参数:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的猫咪死了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值