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

STM32——UCOSIII挂起恢复与时间轮转

目录

任务挂起

OSTaskSuspend()函数

任务恢复

OSTaskResume()函数

任务时间轮转

OSSchedRoundRobinCfg()函数  


任务挂起

OSTaskSuspend()函数

作用:因某些原因暂停运行,但以后还要运行,用此函数挂起

位置:os_task.c

调用:

void OSTaskSuspend(OS_TCB    *p_tcb,//挂起指定控制块,可通过NULL挂起自身OS_ERR    *p_err //保存该函数的错误码)

挂起指定任务块

OSTaskSuspend((OS_TCB*)&Task2_TaskTCB,&err);

挂起自身

OSTaskSuspend((OS_TCB*)0,&err);

任务恢复

OSTaskResume()函数

作用:把挂起的任务恢复

位置:os_task.c

调用:

void OSTaskResume(OS_TCB    *p_tcb,//恢复指定控制块,可通过NULL恢复自身OS_ERR    *p_err //保存该函数的错误码)

恢复指定任务块:

OSTaskResume((OS_TCB*)&Task2_TaskTCB,&err);

恢复自身:

OSTaskResume((OS_TCB*)0,&err);

任务时间轮转

OSSchedRoundRobinCfg()函数  

前提:OS_CFG_SCHED_ROUND_ROBIN_EN 置1 才可使用时间轮转

作用:设置时间片长度

位置:os_core.c

调用:

void  OSSchedRoundRobinCfg (CPU_BOOLEAN   en,//DEF_ENABLED 打开 关闭DEF_DISENABLEDOS_TICK       dflt_time_quanta,//设置时间片长度 n*5 msOS_ERR       *p_err //返回的错误码)

使用实例:

	OSSchedRoundRobinCfg(DEF_ENABLED,1,&err); 

注:还需在创建任务函数中写入几个时间片,才会实现某个函数执行有效时间

http://www.lryc.cn/news/570782.html

相关文章:

  • log4j2远程代码执行漏洞复现
  • 手机qq java版 2008,手机qq2008
  • 由一张图开始
  • [附源码]java毕业设计大学城二手书交易网站
  • 详解jar包的启动命令
  • Java中的CAS与ABA
  • 20年架构师视角:SpringAI如何重塑Java技术栈?
  • 【矩阵运算c++实现】矩阵封装实现Matrix类
  • 基于SVD的推荐系统:详尽的原理与实践解析
  • Google colabo使用说明
  • JAVA高校校园学校网站系统设计与实现(Springboot框架)
  • JavaSE: 数组详解
  • 按键精灵 获取网页flash游戏 句柄 以360浏览器为例
  • QQ空间 免费代码大全
  • 启动应用程序出现SensApi.dll找不到问题解决
  • 【八股消消乐】构建微服务架构体系—链路超时控制
  • 给大家推荐一些好用的国内外免费图床(可外链的免费相册)
  • 用SVN下载sourceforge上的源代码
  • va_list、va_start和va_end的用法
  • LAN_IM: 在局域网内实现高效即时通讯的开源解决方案
  • 计算机在线给手机杀毒,怎么用电脑给手机杀毒(如果手机中病毒了怎么办)
  • 如何写一个简单的python类class
  • STM32学习笔记:读写内部Flash(介绍+附代码)
  • 电磁场与电磁波篇---电荷电流
  • 蛋白分析工具和数据库
  • Javascript中void介绍
  • 局域网内共享加密狗_一行Python代码实现同一局域网内的文件共享
  • java.net.SocketException: Broken pipe
  • 科氏质量流量计的工作原理及维护
  • vue前端实现随机验证码(数字、字母混合)功能