当前位置: 首页 > 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.xdnf.cn/news/9937.html

相关文章:

  • ubuntu 22.04 使用ssh-keygen创建ssh互信账户
  • OpenGauss 数据库介绍
  • AI 编程工具—如何在 Cursor 中集成使用 MCP工具
  • 基于大模型的直肠息肉诊疗全流程风险预测与方案优化研究报告
  • 深入 MySQL 高级查询:JOIN、子查询与窗口函数的实用指南
  • ARM寄存器组织
  • 51c嵌入式~单片机~合集5~DMA
  • 数据可视化笔记:柱状图
  • 【Java报错】数据库查询报错this is incompatible with sql_mode=only_full_group_by
  • MAC-如果是分页查询,怎么分批次in;基于多线程的分页查询工具类
  • 492Q 型气缸盖双端面铣削组合铣床总体设计
  • Jenkins 多分支流水线: 如何创建用于 Jenkins 状态检查的 GitHub 应用
  • vue3学习笔记之条件渲染
  • 「数据可视化 D3系列」入门第八章:动画效果详解(让图表动起来)
  • 「GitHub热榜」AIGC系统源码:AI问答+绘画+PPT+音乐生成一站式
  • 第12篇:Linux程序访问控制FPGA端Switch<一>
  • Yocto项目实战教程 · 第4章:4.2小节-菜谱
  • AWS Elastic Beanstalk的部署Python Flask后端服务(Hello,World)
  • JavaScript 性能优化实战
  • 决战浏览器渲染:减少重绘(Repaint)与重排(Reflow)的性能优化策略
  • 基于springBoot+vue的PC 端学习系统(源码+lw+部署文档+讲解),源码可白嫖!
  • C++ AVL树
  • HAL库通过FATFS和SDIO+DMA写入SD卡数据错误
  • 2025MathorcupD题 短途运输货量预测及车辆调度问题 保姆级教程讲解|模型讲解
  • L2-006 树的遍历
  • DHTMLX宣布推出支持 Redux、TypeScript 和 MUI 的 React Gantt甘特图控件
  • redis利用备忘录
  • Jsp技术入门指南【五】详细讲解jsp结构页面
  • 【含文档+PPT+源码】基于Python爬虫二手房价格预测与可视化系统的设计与实现
  • 论文阅读:2024 arxiv AI Safety in Generative AI Large Language Models: A Survey