
ucos-II
文章平均质量分 80
root_robot
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[UC/OS-II原理及应用]在ARM7上移植μC/OS-Ⅱ
第九章 在ARM7上移植μC/OS-Ⅱ9.1 移植规划9.1.1 编译器的选择适用于ARM处理器核的C编译器有很多种,例如:ADS、SDT、IAR、TASKING和GCC,其中使用比较多的是SDT、ADS和GCC。9.1.2 ARM7工作模式的选择ARM7处理器核具有用户、系统、管理、中止、未定义、中断和快中断7种模式。为了实现工作模式的切换,在移植转载 2016-10-10 18:00:17 · 1315 阅读 · 0 评论 -
uCOS-II内核之时钟节拍
uCOS-II内核之时钟节拍在uCOS-II里,时钟节拍就好比是人的心脏一样重要。它对于CPU能顺利在各任务间切换有着至关重要的作用。uCOS-II需要用户提供时钟源。使用时钟源有一个特别需要注意的地方:用户必须在多任务系统启动以后再开启时钟节拍器,也就是在调用OSStart()之后。Ucos II中的时钟节拍服务是通过在定时器中断服务子程序中调用OSTimeTick()实现的。O转载 2016-12-15 21:34:53 · 1042 阅读 · 0 评论 -
uCOS-II内核学习之任务调度
实现任务切换,需要调用函数OSSched()。OSSched()程序代码如下所示:[cpp] view plain copy void OSSched (void) { INT8U y; OS_ENTER_CRITICAL(); if ((OSLockNesting | OSIntNest转载 2016-12-13 21:08:11 · 585 阅读 · 0 评论 -
uCOS-II内核之任务控制块
uCOS-II内核之任务控制块前面的学习已经了解过任务控制块。知道任务在创建的时候,任务控制块会被初始化。任务控制块是一个数据结构,当任务的CPU使用权被剥夺时,ucos II用它来保存该任务的状态。当任务重新得到CPU使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。OS_TCBs全部驻留在RAM中。 任务控制块的定义程序如下所示:[cpp转载 2016-12-13 21:06:59 · 530 阅读 · 0 评论 -
uCOS-II任务延时函数
uCOS-II任务延时函数编写过单片机程序的都知道,延时函数是经常被用到的。在uCOS-II里,系统也提供了这样的延时函数。一个是大众版的OSTimeDly(),一个是精致版的OSTimeDlyHMSM()。 萝卜青菜,各有所爱,随你怎么选。这两者的区别是,OSTimeDly()的延时时间是以节拍数来衡量的,OSTimeDlyHMSM()的延时时间则是以具体时间大小来衡量的。这两个转载 2016-12-14 22:27:40 · 779 阅读 · 0 评论 -
uCOS-II任务间通信之事件控制块
uCOS-II任务间通信之事件控制块信号、邮箱、消息队列都是需要先创建才能使用的,创建以上三者需要用到事件控制块这一东西。那什么是事件控制块呢?可以这样理解,前面学习我们已经知道,创建一个任务需要给这个任务分配一个任务控制块,这个任务控制块存储着关于这个任务的重要信息。那么,事件控制块就好比任务里的任务控制块。它存储着这个事件的重要信息,我们说创建一个事件(信号,邮箱,消息队列),其本转载 2016-12-03 20:20:27 · 594 阅读 · 0 评论 -
uCOS-II任务管理之改变任务的优先级
uCOS-II任务管理之改变任务的优先级在uCOS-II 里,任务的优先级也是是可以修改的。优先级翻转问题是可以通过改变任务优先级解决。那什么是优先级翻转问题呢?所谓优先级翻转问题(priority inversion)即当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时可能又被其它一些中等优先级任务抢先,因此造成高优先级转载 2016-12-01 21:46:01 · 2333 阅读 · 0 评论 -
uCOS-II任务间通信之邮箱
uCOS-II任务间通信之邮箱学过信号量之后再来看邮箱,发现它们是非常相似的,甚至有时候邮箱可以当做信号量来使用,邮箱相对信号量而言,只是多传递了一个指针变量。和信号量很相似,ucos II提供了5个对邮箱进行操作的函数。它们是:1. 建立一个邮箱 -- OSMboxCreate()2. 等待一个邮箱中的消息 -- OSMboxPend()3. 发送一个消息到邮箱中 -- OS转载 2016-12-11 21:57:03 · 934 阅读 · 0 评论 -
uCOS-II任务间通信之信号量
uCOS-II任务间通信之信号量信号量是什么?信号量有什么用?信号量是可以用来表示一个或多个事件的发生,还可以用来对共享资源的访问。uCOS-II提供了5个对信号量进行操作的函数。如下所示:1. 建立一个信号量 -- OSSemCreate()2. 等待一个信号量 -- OSSemPend()3. 发送一个信号量 -- OSSemPost()4. 无等待地请求一个信号量转载 2016-12-10 21:03:05 · 874 阅读 · 0 评论 -
[uC/OS-II原理及应用]信号量集
第六章 信号量集6.1 信号量集的结构6.1.1 基本概念信号量集:信号量集实质上就是一个多输入、多输出的组合逻辑,输入为其他任务发出的多个信号,输出为这多个输入逻辑运算的结果。6.1.2 信号量集的结构 信号量集由一个标志组和多个等待任务控制块组成信号量集的功能:标志组、等待任务链表标志组:信号量集的所有信号转载 2016-10-06 21:03:11 · 592 阅读 · 0 评论 -
[UC/OS-II原理及应用]在51单片机上移植μC/OS-Ⅱ
第八章 在51单片机上移植μC/OS-Ⅱ8.1 μC/OS-Ⅱ移植的一般性问题8.1.1 可重入函数能允许同时被多个任务所调用,而不会通过函数中变量的耦合引起任务之间的相互干扰的函数叫做可重入函数。一个可重入函数只使用局部变量,因为函数的局部变量存储在任务的堆栈中,所以可保证不同的任务在调用同一个函数时不会发生冲突。如果函数一定要使用全局变量,则需要对使用的全局变量转载 2016-10-05 21:22:07 · 1182 阅读 · 0 评论 -
[UC/OS-II原理及应用]动态内存管理
第七章 动态内存管理7.1 内存控制块 μC/OS-Ⅱ对内存进行两级管理,即把一个连续的内存空间分为若干各分区,每个分区分为若干个大小相等的内存块。操作系统以分区为单位来管理动态内存,而任务以内存块为单位来获取和释放动态内存。7.1.1 可动态分配内存划分1. 内存块 μC/OS-Ⅱ以内存块为单位向应用程序提供动态内存。内存块的大小由用户定制。转载 2016-10-04 21:17:24 · 976 阅读 · 0 评论 -
ucos-II(五)
1 任务间的同步 制约关系: 直接制约关系 间接制约关系 直接制约关系源于任务间的合作间接制约关系源于资源的共享 在多任务合作工作的过程中,操作系统应该解决两个问题:一是各任务间应该具一种互斥关系,即对于某个共享资源,如果一个任务正在使用,则其他任务只能等待,等到该任务释放该资源后,等待的任务之一才能使用它;二是相关的任务在执行上要有先后次序,一个任务要等其伙伴原创 2016-10-03 19:10:23 · 504 阅读 · 0 评论 -
ucos-II(四)
1 uC/OS-II的中断过程uC/OS-II系统响应中断的过程是:系统接收到中断请求后,如果这是CPU处于中断允许状态(即中断时开放的),系统就会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统会根据情况返回到被中止的任务去继续运行,或者转向运行另一个具有更高优先级别的就绪任务。函数OSIntEnter()的作用就是把全局变量OSI原创 2016-10-02 20:23:56 · 379 阅读 · 0 评论 -
ucos-II(三)
一、 任务控制块的初始化初始化任务控制块函数OSTCBInit() :INT8U OSTCBInit( INT8U prio, //任务的优先级别,保存在OSTCBPrio中 OS_STK * ptos, //任务堆栈栈顶指针,保存在OSTCBStkPtr中 OS_STK * pbos, //任务堆栈栈原创 2016-10-01 13:42:28 · 376 阅读 · 0 评论 -
ucos-II(二)
2.1任务的基本概念2.1.1任务及其内存结构 在设计一个较为复杂的程序时,通常把一个大型任务分解为多个小任务,然后在计算机中通过运行小任务,最终达到完成大人物的目的。这种方法可以使系统并发运行多个任务,从而提高处理器的利用率,加快程序的执行速度,因此现代操作系统几乎都是多任务操作系统。 在uC/OS-II中,与上述小任务对应的程序实体叫“任务”,而uC/OS-II就是一个能对这些小任务的运行原创 2016-09-30 13:03:57 · 479 阅读 · 0 评论 -
ucos-II(一)
一、计算机操作系统1、什么是计算机操作系统? ①计算机是一种功能强大的数字运算装置,由中央微处理器(CPU),存储器,接口及外 部设备等物理装置构成,物理装置即硬件系统。 ②裸机的概念:只由硬件构成的计算机叫裸机。 ③软件是通过计算机操作系统来使计算机硬件工作。 ④一个完整的计算机系统是由硬件(下层)和软件(上层)两部分组成的。 下层是原创 2016-09-29 21:29:38 · 416 阅读 · 0 评论 -
uCOS-II内核之初始化及启动
uCOS-II内核之初始化及启动现在解释下程序编写的依据和实现过程。在uCOS-II里,在创建一个任务(或者调用其它系统服务之前),是需要先初始化系统,初始化uCOS-II需要调用函数OSInit()。调用函数OSInit()的作用是什么?主要实现以下几个功能:1、建立空闲任务及统计任务。2、初始化uCOS-II变量及数据结构。其中包括信号量,邮箱,消息队列等初始化转载 2016-12-16 21:38:36 · 535 阅读 · 0 评论