FreeRtos任务管理

目录

一.什么是多任务系统

二.任务状态

三.常用函数详解

四.任务管理实验


一.什么是多任务系统

        不同于我们之前学习的51,32等单片机裸机(未使用操作系统),我们一般编写代码主要在main函数中,将封装好的函数放置main函数的一个主循环中,代码按照先后顺序来执行,中断服务函数触发可打断主函数的执行,来执行中断服务函数,这个就是单任务系统。FreeRtos是一个抢占式的实时多任务系统,其任务调度器也是抢占式的,它通过给任务分配优先级,优先级别高的先执行,高优先级的任务执行完而后将CPU的使用权交给低优先级的任务。

二.任务状态

1.就绪态:该任务处于就绪列表当中,已经具备执行的能力,等待任务调度器进行调度,新创建的任务初始化为就绪态。

2.运行态:任务处于运行状态中,此时该任务正在占用CPU。

3.阻塞态:如果任务当前正在等待某个时序或外部中断,我们就说这个任 务处于阻塞状态,该任务不在就绪列表中。包含任务被挂起、任务被延时、任务 正在等待信号量、读写队列或者等待读写事件等。

4.挂起态:当任务被挂起时,对于任务调度器来说是不可见的,该任务不会被任务调度器所调度。让任务处于挂起态仅能通过调用 vTaskSuspend()函数,而将处于挂起态任务的恢复的途径是调用 vTaskResume() 或 vTaskResumeFromISR()函 数(带ISR指仅可在中断中使用),调用这两个函数便可将处于挂起态的任务重新恢复成正常任务,能够重新别任务调度器所识别,进行正常的任务调度。

三.常用函数详解

1.任务挂起函数

void vTaskSuspend(TaskHandle_t xTaskToSuspend)

xTaskToSuspend:该参数为要挂起的任务句柄,如果使用函数xTaskCreate()创建任务的话那么函数的参数pxCreatedTask 就是此任务的任务句柄,如果使用函数xTaskCreateStatic()创建任务的话那么函数的返回值就

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值