1.OSTaskCreate ()
要使用 uC/OS 的任务必须先声明任务控制块和创建任务,调用 OSTaskCreate () 函数可以创建一个任务。
2.OSTaskSuspend ()
OSTaskSuspend () 函数用于挂起一个任务,令任务暂停运行。 任务可以多次调用
OSTaskSuspend() 对任务进行挂起操作,即一个任务被挂起是可以嵌套的,但是想要将任务脱离挂起状态需要调用相应次数的 OSTaskResume() 函数。除空闲任务和延迟提交任务之外,任务可以挂起任何任务。
3.OSTaskResume ()
与 OSTaskSuspend () 函数相对应, 被挂起的任务如果要恢复被挂起前的任务状态,就必须调用 OSTaskResume () 函数解嵌该任务。 如果解嵌后任务挂起前套数为 0, 就可以恢复被挂起前的任务状态。
4.OSTaskChangePrio ()
在创建任务的时候,可以通过设置参数 prio 来设置任务的优先级。在创建完任务后,还可以通过OSTaskChangePrio()函数调整任务的优先级。要使用 OSTaskChangePrio() 函数,还得事先使能 OS_CFG_TASK_CHANGE_PRIO_EN(位于“os_cfg.h”)。
5.OSTaskDel ()
当任务不再使用时,可以调用 OSTaskDel() 函数删除任务。要使用 OSTaskDel() 函数,还得事先使能 OS_CFG_TASK_SEM_PEND_ABORT_EN(位于“os_cfg.h”)。
6.OSSchedRoundRobinCfg ()
当有任务使用相同的优先级的时候,一般需要使用时间片轮转调度。当具有相同优先级的多个任务就绪时,系统会根据分配给它们的时间片轮流调度各个任务运行。要使用时间片轮转调度功能,除了要先使能OS_CFG_SCHED_ROUND_ROBIN_EN位于“os_cfg.h”)外,还需调用 OSSchedRoundRobinCfg() 函数使能时间片轮转调度和配置相关指标。
7.OSSchedRoundRobinYield ()
一个任务也可以主动放弃时间片,当一个任务已经完成要执行的事情后,也可以主动放弃时间片,提前退出运行,让就绪列表(处于就绪状态的同一优先级任务)的下一个任务提前运行。但是,如果就绪列表中只有一个任务,该任务无法放弃时间片。
8.OSTaskTimeQuantaSet ()
在创建任务的时候,可以通过设置参数 time_quanta 来设置任务的时间片。在创建完任务后,还可以通过 OSTaskTimeQuantaSet () 函数调整任务的时间片。
9.OSTaskRegSet ()
UC/OS-III 允许任务拥有给用户自己使用的任务寄存器。所谓任务寄存器,其实就是在任务的任务控制块里增加一个无符号 32 位整型的数组,用来给用户存放一些任务相关的数据。在创建任务时, 会将任务寄存器全部置 0。 要使用任务寄存器, 还得事先通过OS_CFG_TASK_REG_TBL_SIZE(位于“os_cfg.h”)定义任务的任务寄存器数目。
10.OSTaskRegGet ()
UC/OS-III 允许任务拥有给用户自己使用的任务寄存器。所谓任务寄存器,其实就是在任务的任务控制块里增加一个无符号 32 位整型的数组,用来给用户存放一些任务相关的数据。要使用任务寄存器,还得事先通过OS_CFG_TASK_REG_TBL_SIZE(位于“os_cfg.h”)定义任务的任务寄存器数目。

10.9-uC/OS-III任务管理的更多相关文章

  1. uc/os iii移植到STM32F4---IAR开发环境

    也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...

  2. uC/OS - III 移植 IAR平台

    关于移植uC/OS-III 网上已经有很多教程了此处只是做个记录 首先下载源码然后解压得到下面的文件: 然后在模版工程里新建各种文件夹: 最后全部都添加进工程: OK了,编译一下,惊呆了,竟然 0错误 ...

  3. uC/OS II原理分析及源码阅读(一)

    uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...

  4. 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II

    SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...

  5. uc/os 任务删除

    问题描述:     uc/os 任务删除 问题解决: uc/os任务删除流程图 具体代码 注:     如上是关中断,以及取消优先级对应的就绪标志 关中断代码为: 取消就绪标志,实际上是将就绪表中指定 ...

  6. uc/os任务创建

    问题描述:      uc/os中任务创建 问题解决: 创建一个任务,任务从无到有.任务创建函数分两种, 一种是基本的创建函数OSTaskCreate, 另一种是扩展的任务创建函数OSTaskCrea ...

  7. uC/OS 的任务调度解析 (转)

    uC/OS 的任务调度解析 1.任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务.uC/OS ...

  8. 关于uC/OS的简单学习(转)

    1.微内核 与Linux的首要区别是,它是一个微内核,内核所实现的功能非常简单,主要包括: 一些通用函数,如TaskCreate(),OSMutexPend(),OSQPost()等. 中断处理函数, ...

  9. STM32F40G-EVAL_UC/OS III

    micrum官网下载uc/os程序包: 包含文件cotex_M4.h:

  10. 【原创】uC/OS 中LES BX,DWORD PTR DS:_OSTCBCur的作用及原理

    LES BX, DWORD PTR DS:_OSTCBCur ;OSTCBCur->OSTCBStkPtr = SS:SP!!! ], SS ;将当前SS(栈的基地址)寄存器值存放至当前任务控制 ...

随机推荐

  1. 微信小程序--data的赋值与取值

    通过小程序官方文档可知:Page() 函数用来注册一个页面.接受一个 object 参数,其指定页面的初始数据.生命周期函数.事件处理函数等.其中的参数data用来设置初始数据,WXML 中的动态数据 ...

  2. SQL Server 2016新特性:Live Query Statistics

    SSMS可以提供可以查看正在执行的计划.live query plan可以查看一个查询的执行过程,从一个查询计划操作到另外一个查询计划操作.live query plan提供了整体的查询运行进度和操作 ...

  3. CPU与GPU性能的比较报告

    运行时间分析 不同的模型在cpu和gpu下的时间差异较大,一般来说gpu会比cpu快5-20倍.我们选用了最常用的inception v3的分类模型,输入图片尺寸为:3x299x299. GPU 在一 ...

  4. mac中安装lua5.1.5

    lua有一个工具lua-releng( https://github.com/openresty/openresty-devel-utils/blob/master/lua-releng) 用来检测代 ...

  5. Java多线程:多线程基础知识

    一.线程安全性 定义:多个线程之间的操作无论采用何种执行时序或交替方式,都要保证不变性条件不被破坏     “共享”:变量可以由多个线程同时访问:     “可变”:变量的值在其生命周期内可以发生改变 ...

  6. [mvc] 简单的forms认证

    1.在web.config的system.web节点增加authentication节点,定义如下: <system.web> <compilation debug="tr ...

  7. 使用 pt-online-schema-change 实现在线DDL

    问题背景 平时进行修改表的结构,更改字段,新增字段,更改字段名称一般都是通过ALTER TABLE  语法进行修改的.对于小表或者并发访问不是很大的情况是OK.但是如果是在线大表,那就很麻烦.由于表数 ...

  8. 机器人学 —— 机器人感知(Location)

    终于完成了Robotic SLAM 所有的内容了.说实话,课程的内容比较一般,但是作业还是挺有挑战性的.最后一章的内容是 Location. Location 是 Mapping 的逆过程.在给定ma ...

  9. Hibernate HQL一对多 在一方的查询

    首先说一句:是版本的问题! 在多对多或者多对一,从一中查找多中查询某些语句时容易出现 我写的hql为: from Department as d where d.employees.name='Tom ...

  10. nw.js---创建一个hello word的方法

    一.如果用nw.js 来开发桌面应用 首先到Nw.js中文网下载软件: https://nwjs.org.cn/download.html 下载下来进行解压就可以了,绿色的免安装的,整个目录结果是这样 ...