【FreeRTOS】学习笔记(十二)

任务切换

任务切换的本质:就是CPU寄存器的切换
假设当由任务A切换到任务B时,主要分为两步:
第一步:需暂停任务的执行,并将此时任务A的寄存器保存到任务堆栈,这个过程叫做保存现场
第二步:将任务B的各个寄存器值(被存于任务堆栈中)恢复到CPU寄存器中,这个过程叫做恢复现场
对任务A保存现场,对任务B恢复现场,这个整体的过程称之为:上下文切换
在这里插入图片描述

注意:任务切换的过程在PendSV中断服务函数里边完成

PendSV中断是如何触发的?

  1. 滴答定时器中断调用
  2. 执行FreeRTOS提供的相关API函数:portYIELD()

本质:通过向中断控制和状态寄存器ICSR的bit28写入1挂起PendSV来启动PendSV中断


时间片调度

同等优先级人物轮流地享有相同的CPU时间(可设置),叫时间片,在FreeRTOS中,一个时间片就等于SysTick中断周期

  1. 同等优先级任务,轮流执行;时间片流转
  2. 一个时间片大小,取决于抵达定时器中断频率
  3. 注意没有用完的时间片不会再使用。
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值