当前位置:网站首页>物联网操作系统多任务基础
物联网操作系统多任务基础
2022-07-27 05:19:00 【an0420】
物联网操作系统多任务基础
周末休息回来继续学习!
一.多任务基础
1.多任务特性
任务调度机制
1.时间片调度机制
核心为时间片的轮询,同优先级只能通过时间片轮询的调度。
2.抢占调度机制
当任务优先级不一致,低优先级挂起,高优先级先执行,中断(isr)产生优先级最高。
3.任务特性
1.编程简单
2.任务数量没有限制。
3.支持抢占。
4.优先级排序。
5.独立的堆栈。任务切换时需要切换CPU的运行环境。(所以操作系统的特性)
4.任务的状态
任务一共有四种状态:
1.挂起态:任务在挂起状态时,将不会被调度器所调度。
2.就绪态:任务将运行时等待任务调度的状态。
3.阻塞态:osDelay,给任务一个延时,使他阻塞,然后等待调度器的调度。
4.运行态:
5.任务优先级

2.多任务实现
每个任务都是由3部分实现
(1)死循环
(2)任务实体
(3)任务退出:无返回值。
void freertosTask(void const * argument){
for(;;){
osDelay();
}
}
任务控制块
任务控制块是描述任务属性的结构体。
三、任务堆栈

二、任务创建
1.创建任务
(1)任务创建API
xTaskCreate();//动态创建任务 使用时 configSUPPORT_DYNAMIC_ALLOCATION必须置1
xTaskCreateStatic(); 使用时 ConfigSUPPORT_STATIC_ALLICATION置1.
(2)使用cubemax在任务中1s打印一次任务运行标志
复制上篇工程,使能串口配置为异步通信,打开FreeRTos在配置选项一栏选择内存配置,配置为动态静态混用。
配置完成之后创建串口任务,生成keil文件。
工程如下
(3)使用按键控制Led任务挂起和恢复
void vTaskSuspend( TaskHandle_t pxTaskToSuspend ); // 挂起
void vTaskResume( TaskHandle_t pxTaskToResume ); //恢复
源码:https://download.csdn.net/download/ay1204/86261003
注:源码注释下篇
边栏推荐
- 12.优化问题实战
- 【头歌】重生之我在py入门实训中(7): 函数调用
- Day 4.Social Data Sentiment Analysis: Detection of Adolescent Depression Signals
- Day14. 用可解释机器学习方法鉴别肠结核和克罗恩病
- 【头歌】重生之机器学习-线性回归
- 【头歌】重生之我在py入门实训中(6):函数的定义与应用
- Public opinion & spatio-temporal analysis of infectious diseases literature reading notes
- 古老的艺术-用好长尾关键词
- Emoji Emoji for text emotion analysis -improving sentimental analysis accuracy with Emoji embedding
- 李宏毅 2020 深度学习与人类语言处理 DLHLP-Conditional Generation by RNN and Attention-p22
猜你喜欢

西瓜书学习第五章---神经网络

Day 9. Graduate survey: A love–hurt relationship

Matlab 画图(超详细)

李宏毅 2020 深度学习与人类语言处理 DLHLP-Conditional Generation by RNN and Attention-p22
![[high concurrency] interviewer](/img/50/baa662cb4ce30cf2ef4cb5952960dd.jpg)
[high concurrency] interviewer

西瓜书第三章---线性模型学习笔记

图像超分辨率评价指标

15. GPU acceleration, Minist test practice and visdom visualization

4.张量数据类型和创建Tensor

西瓜书学习笔记---第四章 决策树
随机推荐
关于pytorch转onnx经常出现的问题
Gbase 8C - SQL reference 6 SQL syntax (1)
关于pytorch反向传播的思考
数字图像处理——第六章 彩色图像处理
15.GPU加速、minist测试实战和visdom可视化
【MVC架构】MVC模型
Digital image processing Chapter 2 fundamentals of digital image
Only one looper may be created per thread
pytorch模型
10. Gradient, activation function and loss
韦东山 数码相框 项目学习(三)freetype的移植
19.上下采样与BatchNorm
SoK: The Faults in our ASRs: An Overview of Attacks against Automatic Speech Recognition (题目过长)阅读笔记
Uboot supports LCD and HDMI to display different logo images
西瓜书学习笔记---第一、二章
18. Convolutional neural network
pytorch的多GPU训练的两种方式
Gbase 8C - SQL reference 6 SQL syntax (6)
【头歌】重生之我在py入门实训中(12):Matplotlib接口和常用图形
西瓜书学习笔记---第四章 决策树