您的位置 首页 测评

uC/OS-Ⅱ简介

在嵌入式应用系统的设计中,实时操作系统的应用越来越受到重视。目前市场上可以选择的实时操作系统很多,一些商用系统为用户提供了非常丰富的

在嵌入式运用体系的规划中,实时操作体系的运用越来越受到重视。现在市场上能够挑选的实时操作体系许多,一些商用体系为用户供给了十分丰富的功用,不只包含实时内核,一起还包含输入输出办理、文件体系、网络、调试软件等。可是关于中小型的嵌入式运用体系来说,商用实时操作体系的本钱太高,所以选用免费软件是最好的挑选。uC/OS-Ⅱ是一个免费的源代码揭露的实时嵌入式内核,它供给了实时体系所需的基本功用。其包含悉数功用的中心部分代码只占用8.3K字节,并且因为uC/OS-Ⅱ是可裁剪的,所以用户体系中实践的代码最少可达2.7K字节,可谓言简意赅。uC/OS-Ⅱ不只运用户得到廉价的处理方案,并且因为uC/OS-Ⅱ的开源特性,用户还能够针对自己的硬件优化代码,以取得更好的功用。,bRM6z

uC/OS-Ⅱ实践上是一个实时操作体系内核,只包含了使命调度、使命办理、时刻办理、内存办理和使命间的通讯与同步等基本功用。没有供给输入输出办理、文件体系、网络之类的额定服务。可是因为uC/OS-Ⅱ的可移植性和开源性,用户能够自己增加所需的各种服务。现在,现已呈现了第三方为uC/OS-Ⅱ开发的文件体系、TCP/IP协议栈、用户显现接口等。;C`wO

uC/OS-Ⅱ的使命调度是按抢占式多使命体系规划的,即它总是履行处于安排妥当条件下优先级最高的使命。为了简化体系的规划,uC/OS-Ⅱ规则一切使命的优先级有必要不同,使命的优先级一起也仅有地标识了该使命。即便两个使命的重要性是相同的,它们也有必要有优先级上的差异,这也就意味着高优先级的使命在处理完成后有必要进入等候或挂起状况,不然低优先级的使命永久也不或许履行。体系经过两种办法进行使命调度:一是时钟节拍或其它硬件中止到来后,体系会调用函数OSIntCtxSw()履行切换功用;二是使命主动进入挂起或等候状况,这时体系经过发软中止指令或依托处理器履行圈套指令来完成使命切换,中止服务例程或圈套处理程序的向量地址有必要指向函数OSCtxSw()。;3yL

uC/OS-Ⅱ最多能够办理64个使命,这些使命一般都是一个无限循环的函数。在现在的版别中,作者保留了优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO的使命,所以用户能够一起具有56个使命。uC/OS-Ⅱ供给了使命办理的各种函数调用,包含创立使命、删去使命、改动使命的优先级、挂起和康复使命等。体系初始化时会主动产生两个使命:一是闲暇使命OSTaskIdle(),它的优先级最低为OS_LOWEST_PRIO,该使命仅仅不停地给一个32位的整型变量加一;另一个是核算使命OSTaskStat(),它的优先级为OS_LOWEST_PRIO-1,该使命每秒运转一次,担任核算当时CPU的利用率。XfIj

uC/OS-Ⅱ要求用户供给一个称为时钟节拍的守时中止,该中止每秒产生10至100次,时钟节拍的实践频率是由用户操控的。使命请求延时或超时操控的计时基准便是该时钟节拍。该时钟节拍一起仍是使命调度的时刻基准。uC/OS-Ⅱ供给了与时钟节拍相关的体系服务,答应使命延时必定数量的时钟节拍或准时、分、秒、毫秒进行延时。)fT

关于一个多使命操作体系来说,使命间的通讯与同步是必不可少的。uC/OS-Ⅱ供给了四种同步目标,分别是信号量、邮箱、音讯行列和事情。经过邮箱和音讯行列还能够进行使命间的通讯。一切的同步目标都有相应的创立、等候、发送的函数。但这些目标一旦创立就不能删去,所以要防止创立过多的同步目标以节省体系资源。QLc6,]

为了消除屡次动态分配与开释内存所引起的内存碎片,uC/OS-Ⅱ把接连的大块内存按分区来办理。每个分区中都包含整数个巨细相同的内存块,但不同分区之间内存块的巨细能够不同。用户需求动态分配内存时,挑选一个恰当的分区,按块来分配内存。开释内存时将该块放回它以前所属的分区。这样,就能有用处理内存碎片的问题。Qq.

uC/OS-Ⅱ的大部分代码是用ANSI C写成的,只需与处理器硬件相关的一部分代码用汇编语言编写。所以uC/OS-Ⅱ的移植性很强,能够在绝大多数8位、16位、32位微处理器、数字信号处理器上运转。uC/OS-Ⅱ的移植并不杂乱,只需编写4个汇编语言的函数、6个C函数再界说3个宏和1个常量,这些宏和函数都十分简略,其间的5个C函数乃至只需声明不用包含代码。用户能够根据需求自己编写移植代码。uC/OS-Ⅱ的网站上(www.uCOS-II.com)有针对不同微处理器的移植代码可供下载。现在网站上供给的移植实例包含Intel公司的80×86、8051、80196等,Motorola公司的PowerPC、68K、CPU32等,TI公司的TMS320系列,Zilog公司的z-80、z-180,还包含Analog Device公司、ARM公司、日立公司、三菱公司、飞利浦公司和西门子公司的各种微处理器。aWFu

uC/OS-Ⅱ是在PC机上开发的,C编译器运用的是Borland C/C++ 3.1版,并且PC机是咱们最了解的开发环境,所以在PC机上学习和运用uC/OS-Ⅱ是十分便利的。uC/OS-Ⅱ的网站上也供给了在PC机上运转uC/OS-Ⅱ的源代码。可是因为C/C++运转库和DOS本身的约束,在PC上运转uC/OS-Ⅱ时需求留意两个问题。3y=k1@

榜首,因为DOS下的C编译器供给的运转库没有考虑多线程运用的问题,运转库中的全局变量和部分函数只适用于单线程。这些变量和函数包含:errno、_doserrno、strtok、strerror、tmpnam、tmpfile、asctime、gmtime、ecvt、fcvt等。在uC/OS-Ⅱ中运用这些函数时要当心,要防止两个使命一起调用这些函数,或许用信号量同步对这些函数的调用。+i

第二,DOS是不能重入的,便是说正在调用DOS服务期间,是不能再次调用DOS的,假如又进行了DOS调用,那么必定会引起体系溃散。uC/OS-Ⅱ发动多使命后,假如两个以上的使命进行了DOS调用或许调用了需求DOS的C/C++运转库(如:printf、scanf等等),就有或许引起DOS重入。所以在uC/OS-Ⅱ中,能够调用BIOS或直接操作硬件,但要尽量削减DOS调用。假如有必要要用DOS,最好只需一个调用DOS的使命,或许用信号量进行同步。.

uC/OS-Ⅱ作为一个源代码揭露的实时嵌入式内核,对咱们学习和运用实时操作体系供给了极大的协助。而uC/OS-Ⅱ本身也因而取得了快速的开展,许多开发者现已成功地把uC/OS-Ⅱ运用于自己的体系之中。跟着uC/OS-Ⅱ的不断完善,它必将会有愈加宽广的运用空间。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/298392.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部