当前位置:网站首页>1293_ Implementation analysis of xtask resumeall() interface in FreeRTOS
1293_ Implementation analysis of xtask resumeall() interface in FreeRTOS
2022-07-08 00:22:00 【grey_ csdn】
All learning summary : GreyZhang/g_FreeRTOS: learning notes about FreeRTOS. (github.com)
This analysis is xTaskResumeAll() The interface is actually a little complicated , But the related concepts are clear and easy to understand .

The premise of recovery operation is that the scheduler cannot suspend .

First , Doing a reverse operation with the suspended work , It mainly deals with a symbolic counter .
Then check the current OS Number of tasks in , If the number of tasks is greater than 0 It's meaningful to continue to deal with it . Next , Conduct “ Suspend the emptying of the task list ”. That is, take out one node after another , Remove from the pending list and the status list , Add to the ready task list . If a high priority task is found, it is ready , Note that task scheduling is required later .

If you find a pending task , Then reset the next blocking release time . According to the scheduler “ backward ” Scheduling times , Dispatch tick Callback function to schedule the addition . In this process, we only deal with the task list , No actual scheduling occurs . If it is found that scheduling is needed , Then you also need to mark the next task scheduling switch .

According to the previous judgment information , If it is found that task switching is required, then perform switching .
such , This interface is basically analyzed . however , There are still some concepts that need to be straightened out later , Or the whole OS I can't see clearly . The first is the function of each linked list and the transfer relationship during state switching ; The other is the operation logic of blocking and contact blocking . these , Later, it will be combed as special notes .
边栏推荐
- A brief history of information by James Gleick
- 测试流程不完善,又遇到不积极的开发怎么办?
- 浪潮云溪分布式数据库 Tracing(二)—— 源码解析
- QT creator add custom new file / Project Template Wizard
- 如果在构造函数中抛出异常,最好的做法是防止内存泄漏?
- [programming problem] [scratch Level 2] draw ten squares in December 2019
- How to add automatic sorting titles in typora software?
- If an exception is thrown in the constructor, the best way is to prevent memory leakage?
- 某马旅游网站开发(登录注册退出功能的实现)
- 数据库查询——第几高的数据?
猜你喜欢

Fully automated processing of monthly card shortage data and output of card shortage personnel information

paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务

STM32F1與STM32CubeIDE編程實例-旋轉編碼器驅動

RPA cloud computer, let RPA out of the box with unlimited computing power?

CoinDesk评波场去中心化进程:让人们看到互联网的未来

The underlying principles and templates of new and delete

【编程题】【Scratch二级】2019.09 绘制雪花图案

51与蓝牙模块通讯,51驱动蓝牙APP点灯

快速上手使用本地测试工具postman

Development of a horse tourism website (optimization of servlet)
随机推荐
Daily question brushing record (16)
paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务
关于组织2021-2022全国青少年电子信息智能创新大赛西南赛区(四川)复赛的通知
redis你到底懂不懂之list
Development of a horse tourism website (realization of login, registration and exit function)
从Starfish OS持续对SFO的通缩消耗,长远看SFO的价值
哪个券商公司开户佣金低又安全,又靠谱
Sqlite数据库存储目录结构邻接表的实现2-目录树的构建
Coindesk comments on the decentralization process of the wave field: let people see the future of the Internet
大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?
52岁的周鸿祎,还年轻吗?
玩转Sonar
在网页中打开展示pdf文件
Opengl3.3 mouse picking up objects
【编程题】【Scratch二级】2019.12 绘制十个正方形
单机高并发模型设计
QT creator add JSON based Wizard
How to insert highlighted code blocks in WPS and word
Su embedded training - Day3
80% of the people answered incorrectly. Does the leaf on the apple logo face left or right?