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. Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理

    Atitit 管理的模式扁平化管理  金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理 1.1. 矩阵管理 1 1.2. 相关信息 矩阵的历史 1 1.3. 基于“ ...

  2. ffmpeg安装步骤

    首先要安装各种解码器 1.lame lame-3.99.5.tar.gz Url:http://sourceforge.net/project/showfiles.php?group_id=290&a ...

  3. input 呼起数字键盘

    1. Android,定义 type="number" 2. iOS,定义 style="ime-mode: disabled;" 注,呼起数字键盘后,用户输入 ...

  4. JS保留两位小数的几种方法

    四舍五入 以下处理结果会四舍五入: var num =2.446242342; num = num.toFixed(2); // 输出结果为 2.45 不四舍五入 以下处理结果不会四舍五入: 第一种, ...

  5. HTTP 04 web 服务器

    用单台虚拟主机实现多个域名 HTTP/1.1 允许一台 HTTP 服务器搭建多个 web 站点, 例如提供 web 托管服务的供应商, 可以用一台服务器为多位客户服务, 也可以以每位客户持有的域名运行 ...

  6. C# 正则表达式判断是否是数字、是否含有中文、是否是数字字母组合

    //判断输入是否包含中文 不管你有没有输入英文,只要包含中文,就返回 true public static bool HasChinese(string content) { //判断是不是中文 st ...

  7. C_C++变量命名规则

    变量命名规则是为了增强代码的可读性和容易维护性.以下为C++必须遵守的变量命名规则: 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成. 第一个字母必须是字母或者下划线开头. 不 ...

  8. error MSB3073: 命令“copy /y

    编译VC程序时候报错:error MSB3073: 命令“copy /y 查看: 项目的属性->配置属性->生成事件->后期生成事件->命令行: copy /y "$ ...

  9. macOS Sierra(10.12.6), odoo(11.0), Python(3.5.4)配置

    欣闻odoo11支持python3环境了,赶紧在mac平台尝试一下: 前期设置,参考另篇文章:macOS Sierra 10.12.6 odoo 10.0 开发环境配置 因为odoo11尚未正式发布, ...

  10. npm install 错误 安装 chromedriver 失败的解决办法

    npm 安装 chromedriver 失败的解决办法npm 安装 chromedriver 时,偶尔会出错,错误提示类似于:npm ERR! chromedriver@2.35.0 install: ...