1.当设置OS_CFG.H中的OS_CFG_ISR_POST_DEFERRED_EN为1时, uC/OS-III就会创建一个任务,它的作用是尽快完成ISR中对post函数的调用, 将信号量、消息等对象先存在媒介中, 退出中断后,由中断处理任务完成将这些对象提交给任务。
2.正如“ 临界段” 所介绍的, uC/OS-III通过开启/关闭中断、锁/开锁调度器管理临界段。如果选择后一种方法, ISR调用的post函数不允许直接访问就绪列表、挂起队列等。
3.当ISR调用uC/OS-III提供的post函数时,ISR要提交的数据会被复制,该数据复制的目的地会被放到一个特殊的队列—”holding”队列。当所有的嵌套中断结束时, uC/OS-III切换到中断处理任务,它会将放置在”holding”队列中的信息重新提交到适当的任务。这个额外步骤的目的是减小关中断时间。

OS_IntQTak()被uC/OS-III创建,它的优先级通常被设为0(最高优先级)。如果OS_CFG_ISR_POST_DEFERRED_EN被设置为1,使能了这个任务,其它的任务的优先级就不能设置为0。
总结:任务是一段简单的程序。 在单CPU系统中, 任何时间只能有一个任务被CPU运行。 uC/OS-III支持多任务并对任务数没有限制( 仅限制于CPU的存储空间,包括代码空间和数据空间)。uC/OS-III创建五个内部任务: 空闲任务, 时基任务, 中断处理任务, 统计任务, 定时器任务。 空闲任务、 时基任务是必须的, 统计任务、定时器任务、中断处理任务是可选择的。

10.8-uC/OS-III内部任务(中断处理任务 OS_IntQTask())的更多相关文章

  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. 关于uC/OS的简单学习(转)

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

  5. 【原创】uC/OS II 任务切换原理

    今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...

  6. 基于μC/OS—III的CC1120驱动程序设计

    基于μC/OS—III的CC1120驱动程序设计 时间:2014-01-21 来源:电子设计工程 作者:张绍游,张贻雄,石江宏 关键字:CC1120   嵌入式操作系统   STM32F103ZE   ...

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

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

  8. 在STM32F401上移植uC/OS的一个小问题 [原创]

    STM32F401xx是意法半导体新推出的Cortex-M4内核的MCU,相较于已经非常流行的STM32F407xx和STM32F427xx等相同内核的MCU而言,其特点是功耗仅为128uA/MHz, ...

  9. uc/os 任务删除

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

  10. uc/os任务创建

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

随机推荐

  1. Cisco VTP中继协议配置

    VTP协议: VLAN中继协议,VTP,VLAN TRUNKING PROTOCOL,是CISCO专用协议,大多数交换机都支持该协议.VTP负责在VTP域内同步VLAN信息, 这样就不必在每个交换上配 ...

  2. Tensorflow学习笔记——安装和运行

    参考的资料: 1.官网 2.tensorflow官方文档中文版 安装的是Python 2.7; CPU support (no GPU support),版本是1.1 pip install tens ...

  3. js 异步请求

    <p id="check"> <label>验证码:</label> <input class="vid" id=&q ...

  4. Orchard CMS -Migration文件更新后数据库不更新的问题 new properties not updating after migrationData migration is not working?

    Orchard CMS - new properties not updating after migrationData migration is not working? If your mapp ...

  5. js 六种数据类型的区别及bool 转换判断

    一.bool型转换判断: 1.true 和 1 比较是相同,false 和 0 比较是相同(是 “==” 比较),因为内部会实现数据类型的 转化,将true 转换成1,将false 转换成0, js ...

  6. C# Post HTTP Request

    using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Secu ...

  7. window的cmd使用

    有时候安装软件也需要使用cmd,如果要进入目前所在盘符的其他路径用cd命令可进入,但如果从c盘进入d盘等,是不用cd命令的. 如目前在c盘的任意目录,需要切换到d盘的根目录,用:“d:”命令(不含引号 ...

  8. 学习mongoDB的网站

  9. Linux环境变量与文件查找

    作业: 找出/etc目录下所有以.list结尾的文件 代码:locate /etc/\*.list sudo find /etc/ -name \*.list

  10. 跳石头|河中跳房子|NOIP2015提高组T4|二分法

    喵 提交地址:http://codevs.cn/problem/4768/ 题目: 题意:自己看 思路: 1.读入各个石头数据 2.直接二分答案: 枚举一个石头i和一个石头j,要求i和j之间的距离为m ...