当前位置: 首页 > news >正文

基于尚硅谷FreeRTOS视频笔记——6—滴答时钟—上下文切换

FreeRTOS滴答

FreeRTOS需要有一个时钟参照,并且这个时钟不会被轻易打断,所以最好选择systick

为什么需要时间参照

就是在高优先级任务进入阻塞态后,也可以理解为进入delay()函数后,需要有一个时间参照,就是需要计时,看是否delay函数结束,这就是为什么需要systick。

上下文切换

上下文就是代码的执行状态(就是这段代码有没有执行过)

还有一些变量数据,比如a=1;这种变量。

任务的切换

当任务A需要切换时,就需要此刻保存任务A的上下文,就是数据,执行到哪一行等

那么,怎样进行保存任务的这些数据呢?

我们都知道,任务都是在CPU中运行,而CPU中有许多寄存器,而在任务A执行的情况中,CPU中所有的值都为任务A的,

而每个任务都有一个属于自己的任务栈。

所以,任务A在切换的途中,就会将自己所有在CPU中的数据都拷贝到任务栈中。

任务切换时,CPU中只保存任务的指针,而数据都拷贝在任务对应的栈中。

当任务被恢复时,CPU直接利用指针来查找相应的数据栈

后将数据恢复到CPU中。

http://www.dtcms.com/a/140869.html

相关文章:

  • OpenAI重返巅峰:o3与o4-mini引领AI推理新时代
  • Qt QThread 两种线程管理方法
  • 【 解决Cline插件无法激活及DeepSeek模型请求卡顿或者无法加载问题】
  • C++ `unique_ptr` 多线程使用
  • SpringAI+DeepSeek大模型应用开发——5 ChatPDF
  • 深入解析C++驱动开发实战:优化高效稳定的驱动应用
  • Spring_MVC 快速入门指南
  • 汽车免拆诊断案例 | 2011款雪铁龙世嘉车刮水器偶尔自动工作
  • wordpress 垂直越权(CVE=2021-21389)漏洞复现详细教程
  • 初识Redis · C++客户端string
  • 先导木工机床与养老领域的探索之旅
  • 仿腾讯会议项目实现——设置配置文件
  • 【特殊场景应对1】视觉设计:信息密度与美学的博弈——让简历在HR视网膜上蹦迪的科学指南
  • 6.7.图的深度优先遍历(英文缩写DFS)
  • EnlightenGAN:低照度图像增强
  • 【计算机网络 | 第一篇】计算机网络基础知识
  • 基于springBoot+vue的PC 端学习系统(源码+lw+部署文档+讲解),源码可白嫖!
  • L2-018 多项式A除以B
  • 电脑 BIOS 操作指南(Computer BIOS Operation Guide)
  • 累计达2.04亿户!中国联通首次公布5G网络用户数据
  • 使用MetaGPT 创建智能体(2)多智能体
  • 创维E900V20C-国科GK6323V100C-rtl8822cs-安卓9.0-短接强刷卡刷固件包
  • 遥感技术赋能电力设施监控:应用案例篇
  • 链表相关算法题
  • git clean password
  • Vue2+Vue3 130~180集学习笔记
  • OpenHarmony-Risc-V上运行openBLAS中的benchmark
  • C++ 迭代器失效详解:如何避免 vector 操作中的陷阱
  • SQL预编译——预编译真的能完美防御SQL注入吗
  • C#插件与可扩展性