1、uC/OSII简介
u C / O S 是一种免费揭露源代码、结构细巧、具有可掠夺实时内核的实时操作体系。
μC/OS-II 的前身是μC/OS,最早出自于1992 年美国嵌入式体系专家Jean J.Labrosse 在《嵌入式体系编程》杂志的5 月和6 月刊上刊登的文章连载,并把μC/OS 的源码发布在该杂志的B B S 上。
μC/OS 和μC/OS-II 是专门为计算机的嵌入式运用规划的, 绝大部分代码是用C言语编写的。CPU 硬件相关部分是用汇编言语编写的、总量约200行的汇编言语部分被压缩到最低极限,为的是便于移植到任何一种其它的CPU 上。用户只需有规范的ANSI 的C穿插编译器,有汇编器、连接器等软件东西,就能够将μC/OS-II嵌人到开发的产品中。μC/OS-II 具有履行效率高、占用空间小、实时功用优秀和可扩展性强等特色, 最小内核可编译至 2KB 。μC/OS-II 现已移植到了简直一切闻名的CPU 上。
严格地说uC/OS-II只是一个实时操作体系内核,它只是包括了使命调度,使命办理,时刻办理,内存办理和使命间的通讯和同步等基本功用。没有供给输入输出办理,文件体系,网络等额定的服务。但由于uC/OS-II杰出的可扩展性和源码敞开,这些非有必要的功用彻底能够由用户自己依据需求别离完结。
uC/OS-II方针是完结一个依据优先级调度的抢占式的实时内核,并在这个内核之上供给最基本的体系服务,如信号量,邮箱,音讯行列,内存办理,中止办理等。
1.1使命办理
uC/OS-II 中最多能够支撑64 个使命,别离对应优先级0~63,其间0 为最高优先级。63为最初级,体系保留了4个最高优先级的使命和4个最低优先级的使命,一切用户能够运用的使命数有56个。
uC/OS-II供给了使命办理的各种函数调用,包括创立使命,删去使命,改动使命的优先级,使命挂起和康复等。
体系初始化时会主动产生两个使命:一个是闲暇使命,它的优先级最低,该使命仅给一个整形变量做累加运算;另一个是体系使命,它的优先级为次低,该使命担任计算当时cpu的利用率。
1.2 时刻办理
uC/OS-II的时刻办理是经过守时中止来完结的,该守时中止一般为10毫秒或100毫秒产生一次,时刻频率取决于用户对硬件体系的守时器编程来完结。中止产生的时刻距离是固定不变的,该中止也成为一个时钟节拍。
uC/OS-II要求用户在守时中止的服务程序中,调用体系供给的与时钟节拍相关的体系函数,例如中止级的使命切换函数,体系时刻函数。
1.3 内存办理
在ANSI C中是运用malloc和free两个函数来动态分配和开释内存。但在嵌入式实时体系中,屡次这样的操作会导致内存碎片,且由于内存办理算法的原因,malloc和free的履行时刻也是不确定。
uC/OS-II中把接连的大块内存按分区办理。每个分区中包括整数个巨细相同的内存块,但不同分区之间的内存快巨细能够不同。用户需求动态分配内存时,体系挑选一个恰当的分区,按块来分配内存。开释内存时将该块放回它以前所属的分区,这样能有用处理碎片问题,一起履行时刻也是固定的。
1.4 使命间通讯与同步
对一个多使命的操作体系来说,使命间的通讯和同步是必不可少的。uC/OS-II中供给了4中同步目标,别离是信号量,邮箱,音讯行列和事情。一切这些同步目标都有创立,等候,发送,查询的接口用于完结进程间的通讯和同步。
1.5 使命调度
uC/OS-II 选用的是可掠夺型实时多使命内核。可掠夺型的实时内核在任何时候都运转安排妥当了的最高优先级的使命。
uC/os-II的使命调度是彻底依据使命优先级的抢占式调度,也便是最高优先级的使命一旦处于安排妥当状况,则当即抢占正在运转的低优先级使命的处理器资源。为了简化体系规划,uC/OS-II规则一切使命的优先级不同,由于使命的优先级也一起仅有标志了该使命自身。
uC/OS-II具体用法可参阅相关材料。
2、FPGA下的uC/OS-II
下面就介绍怎样在以黑金开发板EP2C208上进行uC/OSII试验。
第一步:增加一个用于体系时钟节拍的守时器timer_ucos,守时时刻为100ms(依据使命定)。
第二步:在Nios下设置相关选项。请看下面操作过程。
翻开Quart II工程,以黑金开发板EP2C208的工程为例,进入SOPC Builder界面下如图:
在左边的“System Contents”下单击Peripherais的左边“
”;在弹出的菜单下单击Microcotroller Peripherais的左边“
”;如下图。
找到 “Interval Timer”并双击,弹出如下图并按下图进行相关设置,单击完结。
命名为timer_ucos;如下图。
时钟节拍守时器到此已增加完结,单击Generate按钮生成SOPC体系。
接下来对Quart II工程进行编译并把 “.pof”经过AS接口下接到EPCS中。至此Quart II工程作业结束.。