μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。
μC/OS-Ⅱ是一种多任务实时源代码的公开操作系统,内核精简,移植性较强,非常适合用于一些小型控制和实验系统的开发。
软件定时器是常用于内核设计和应用程序设计的一项基础软件措施。本文对μC/OS-II V2.86中新增的用于管理软件定时器的定时器轮进行了重新规划,并对处理算法进行了重新设计,有效提高了软件定时器的到期命中率,验证表明,新改进的算法在同等负载下可降低CPU的负载率约9%左右。
如果用户任务运行在“用户级+PSP”状态下,而调用操作系统函数时运行在“特权级+MSP”状态下,再配合MPU的使用,可以使系统的安全性与稳定性得到很大的提高。
介绍了实时操作系统μC/OS-II的特点和内核结构,并首次实现了μC/OS-II在摩托罗拉处理器MPC555上的移植,介绍了移植后OS的应用方法。
针对目前RFID读写器无法随身携带,实现远程的IC卡读写操作的问题,采用GPRS无线网络作为数据传输的载体,实现了无线RFID读写器的开发。采用μC/OS-Ⅱ嵌入式实时操作系统作为读写器终端的软件平台,在ARM7系列微处理器LPC2148上实现了对IC卡的发行、加值、消费、操作记录查询与汇总、数据采集以及无线传输。采用动态密钥加密算法很好地保证了IC卡的数据安全。
为了使嵌入式操作系统μC/OS-Ⅱ更加适合数控系统的应用,对μC/OS-Ⅱ的任务分类和任务调度做了改进。将任务分为普通任务和抢占式任务。抢占式任务不通过调度器调度运行,而在中断处理中直接运行。抢占式任务对应数控系统中执行频率高,执行时间短的任务。实验证明,改进后的μC/OS-Ⅱ更适合数控系统任务的添加。
本文设计了实时系统加速RTA(Real-Time Acceleration)模块,对任务调度和系统时间管理进行硬件化,降低了任务中断时间,并对最终的测量数据进行对比,得出结论。
μc/Os-Ⅱ的就绪表设置、清除、查找算法,是高效的、跨平台的程序。它使用了两个查找数组OSMapTbl[8]和OSUnMapTbl[256],以提高查找就绪表的速度,尽快获取就绪任务的最高优先级。
多窗口显示屏控制采用μC/OS-II实时操作系统的多任务管理运行模式,各窗口视频数据由线程管理,Nios II 32位处理器作为显示屏控制器硬件系统的核心,软件系统控制多窗口任意显示。在1片FPGA上实现显示屏控制器的硬件系统,利用SOPC Builder软件定制系统所需的IP核,外扩存储设备实现视频数据的海量存储,解决了FPGA内部资源相对不足的问题。通过重构视频数据,合理组织数据的存储方式,解决视频数据的灰度控制问题,减少数据处理过程,降低了控制系统的复杂度。
本文的创新之处在于针对μC/OSII在内存管理可靠性不高、内存块分配不够灵活的特点,借鉴Buddy算法思想,对其进行改进,形成了一种基于Buddy算法思想、高可靠性的内存管理策略。实验表明,新方案一次创建内存区,即可满足内存块大小需求不均匀的场合,既提高内存分配的灵活性,避免了大量内碎片的产生,又增强了内存分配的可靠性。因此,新方案在可靠性要求高的嵌入式系统中可以得到更好的应用。
笔者将以μC/OS-II实时内核为例,通过对μC/OS-II的改进,向读者描述一种缩短实时操作系统中断关闭时间的方法。之所以选择μC/OS-II,一是因为读者容易获得相关代码,国内很多读者也对μC/OS-II有一定程度的了解;二是因为其自身结构简单,适合运用于低档嵌入式处理器,关中断时间的问题更加突出。低档嵌入式处理器的处理速度慢,在关中断时间里处理相同的软件代码,花费的时间更长,相对地延长了关中断时间,这时尽量从软件着手解决关中断时间的问题。
μC/OS-II实时操作系统是开放源代码且得到实际验证的软件平台,而S3C44BOx具有强大的32位RISC性能,基于此软件及硬件平台对GPRS模块进行设计,能大量减轻研发任务,提高研发速度,为在短时间内实现GPRS终端系统设计创造良好条件。
uCOS II移植跟OS_CUP_C.C、OS_CPU_A.S、OS_CPU.H 3个文件有关,中断处理的移植占据了很大一部分内容。作为移植的一个重点,本文以标准中断(IRQ)为例讨论了移植中的中断处理。
μC/OS是Jean J.Labrosse开发的实时多任务内核,最初是为Motorola 8位处理器68HC11写的。在后来的相关著作中,作者将代码移植到了PC上,以便于更多的读者学习。μC/OSII继承了μC/OS的算法,有执行效率高、占用空间小、实时性强和可扩展性好等特点,被移植到几乎所有类型的CPU上,成为在嵌入式领域非常有影响力的RTOS。然而,由于该实时内核是为8位CPU设计的,对于那些具有优先级算法硬件指令的CPU,仅做移植是很不够的。
多任务的时间片调度在嵌入式领域有实用价值。一方面是很多嵌入式软件系统升级有这种需求,旧的软件模块基于Endless Loop实现,升级到μC/OS-II后,若要最大限度地复用旧的软件模块,时间片调度算法是实现旧的设计模式到新架构之间最简单的桥梁。另一方面,对于控制领域,存在大量的耗时任务无法自动释放控制权,时间片调度降低了任务
多窗口显示屏控制采用μC/OSII实时操作系统的多任务管理运行模式,各窗口视频数据由线程管理,Nios II 32位处理器作为显示屏控制器硬件系统的核心,软件系统控制多窗口任意显示。在1片FPGA上实现显示屏控制器的硬件系统,利用SOPC Builder软件定制系统所需的IP核,外扩存储设备实现视频数据的海量存储,解决了FPGA内部资源相
凭借uC/OSⅡ灵活的任务间通信的能力,采用消息邮箱Mbox从数据生成任务中将打印数据传送给打印任务。在不同任务中,将暂时不需要工作的任务挂起,而将需要工作的任务恢复运行,圆满地实现了三维打印的快速、精确控制。
随着物联网技术的不断发展,嵌入式科技得到更为广泛的应用,其中FPGA和嵌入式操作系统的组合前景良好,它们的应用极大的改变了嵌入式开发的效率。为使得Nios II软核和RTEMS嵌入式系统相结合,首先介绍了Nios II的软件开发环境,然后详细阐述如何在Nios II平台下搭建RTEMS嵌入式开发环境。
本文介绍了抽油电机变频器变结构控制系统功能原理,如何利用uC/OS-II的多任务功能实现控制系统的算法结构变换,操作系统的移植、多任务的建立和SDK下的软件设计,最后总结了