当前位置:网站首页>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 .
边栏推荐
- LeetCode刷题
- The result of innovation in professional courses such as robotics (Automation)
- Tencent security released the white paper on BOT Management | interpreting BOT attacks and exploring ways to protect
- 【测试面试题】页面很卡的原因分析及解决方案
- SQL knowledge summary 004: Postgres terminal command summary
- new和delete的底层原理以及模板
- 詹姆斯·格雷克《信息简史》读后感记录
- 3年经验,面试测试岗20K都拿不到了吗?这么坑?
- Trust orbtk development issues 2022
- [question de programmation] [scratch niveau 2] oiseaux volants en décembre 2019
猜你喜欢
CoinDesk评波场去中心化进程:让人们看到互联网的未来
[programming problem] [scratch Level 2] draw ten squares in December 2019
Trust orbtk development issues 2022
Anaconda+pycharm+pyqt5 configuration problem: pyuic5 cannot be found exe
3年经验,面试测试岗20K都拿不到了吗?这么坑?
DNS 系列(一):为什么更新了 DNS 记录不生效?
【obs】官方是配置USE_GPU_PRIORITY 效果为TRUE的
[question de programmation] [scratch niveau 2] oiseaux volants en décembre 2019
Cause analysis and solution of too laggy page of [test interview questions]
3 years of experience, can't you get 20K for the interview and test post? Such a hole?
随机推荐
Qt不同类之间建立信号槽,并传递参数
Common selectors are
Relevant methods of sorting arrays in JS (if you want to understand arrays, it's enough to read this article)
华为交换机S5735S-L24T4S-QA2无法telnet远程访问
手写一个模拟的ReentrantLock
C language 005: common examples
Introduction knowledge system of Web front-end engineers
华泰证券官方网站开户安全吗?
Solution to prompt configure: error: curses library not found when configuring and installing crosstool ng tool
redis你到底懂不懂之list
paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务
paddle入门-使用LeNet在MNIST实现图像分类方法一
35岁真就成了职业危机?不,我的技术在积累,我还越吃越香了
Stm32f1 and stm32cubeide programming example - rotary encoder drive
Database query - what is the highest data?
Sqlite数据库存储目录结构邻接表的实现2-目录树的构建
从Starfish OS持续对SFO的通缩消耗,长远看SFO的价值
DNS 系列(一):为什么更新了 DNS 记录不生效?
Fully automated processing of monthly card shortage data and output of card shortage personnel information
Trust orbtk development issues 2022