首页 > 嵌入式软件 > Uc/os II

随着科技的进步,嵌入式系统的功能逐渐由简单向复杂发展,开发难度也随之提高。嵌入式操作系统的使用,屏蔽了部分硬件信息,提供给开发者统一的平台,降低了开发难度,提高了代码的重复利用率。在一些特殊的领域(医疗、汽车、航空航天),对嵌入式系统的实时性要求非常高。在这些场合,任务必须在给定的时间内响应并正确完成。而实时操作系统RTOS(Real Time OperatiON System)本身的运行,必然会引起性能的下降,在任务数量增加时,这种下降更加明显。例如,使用uC/OS-II实时操作系统在PowerPC处理器上运行,在TimeTick(时钟节拍)周期为10 ?滋s、运行64个任务的情况下,TimeTick中断函数占用的CPU时间已达到42%[1]。

目前,RTOS软件层面的研究已经很成熟,可有效提高RTOS性能的方法有以下几种:

(1)提高处理器的运行频率[2]。这对功耗相当敏感的嵌入式系统并不是好方法。同时高频时钟所引起的电磁干扰对电路板布线的要求也更高;

(2)设计专用于RTOS系统服务的硬件。硬件对相同的操作可并行处理。如果设计一种硬件,在任务数量或TimeTick频率增加的情况下,系统也能在固定的时钟周期内完成所有任务域的更新,从而降低RTOS运行所占的CPU时间。

本文设计了实时系统加速RTA(Real-Time Acceleration)模块,对任务调度和系统时间管理进行硬件化,降低了任务中断时间,并对最终的测量数据进行对比,得出结论。

1 RTA的硬件设计

本文的硬件平台使用OR1200[3] CPU,它是一款由OpenCores网站维护的开放源代码CPU,内部结构可见可修改,且没有版权问题。RTA模块作为从设备连接到Wishbone总线[4]上。在RTA模块中,由硬件实现任务管理和时间管理。RTA中的寄存器全部映射到内存空间上,软件通过对寄存器的访问来控制RTA模块的运行。
该专用硬件可分成如下两部分:

(1)任务管理和时间管理部分。RTA模块支持64个任务,使用基于优先级的调度策略,每个任务有唯一的优先级。RTA只在需要任务切换时才中断CPU。时间延时的最小单位是TimeTick(时钟节拍),最长时间延时可达65 535个TimeTick;

(2)用于产生TimeTick信号的Timer(计时器)。RTA必须有独立的Timer为其产生TimeTick信号。在本文中,利用OR1200自带的Timer完成此工作。

本文使用的系统是在μC/OS-II实时操作系统基础上改进实现的。该RTOS由Micrium网站维护,已经应用于商业产品[5]。整个软硬件的实现在FPGA开发板DE2-70上完成,系统时钟频率为25 MHz。

1.1 任务管理和时间管理

任务管理和时间管理的设计框图如图1所示。

每个任务都有4个域:TaskValid、OSTCBStat、OSTCBDly和OSTCBStatPend。每个任务都有一个任务就绪标志TaskReady,RTA通过PrioBitmapToBinary模块找到最高的优先级并送给HighestPrio。在CPU响应外部中断或者给调度器上锁时,可以通过OSIntNesting和OSLockNesting寄存器关闭RTA的中断。

本文引用地址: http://embed.21ic.com/software/ucos/201806/62974.html

μC/OS-II实时系统内核中,任务调度基于TimeTick完成,由于程序只能顺序执行,任务的timedly域更新也是顺序执行的,从而使得调度函数的执行时间与运行的任务数量有关。在RTA模块中,基于TimeTick的调度机制并没有改变,只是原型中顺序执行的timedly更新,在硬件中可以同时执行。在使用RTA模块的系统中,移去了软件中的用于任务调度的数据结构,相应地在硬件中予以实现。

当有更高优先级的任务进入就绪态时,就会产生RTA中断。硬件实现上,当进入就绪态的上个时钟周期的最高优先级和本时刻的最高优先级不同时,便产生中断信号。在μC/OS-II中,每个TimeTick时刻都会发生中断,这就需要更频繁地保存CPU寄存器,相比本文提出的方法,浪费了更多的CPU时间。

1.2 TimeTick信号的产生

RTA的运行需要一个可配置的Timer来为其产生TimeTick信号。在本文中,通过对OR1200进行改造,利用其内部的Timer产生中断信号作为RTA任务调度的标准时钟节拍,而将RTA的中断信号连接到原来Timer在CPU的接口处。这样,CPU通过Wishbone总线可对Timer进行读写,且RTA产生的中断不会占用可编程中断控制器PIC(Programmable Interrupt Controller)。改造后的框图如图2所示。


1.3 软件实现

因为任务数据结构的改变,源码中所有涉及到任务数据结构的函数都要进行修改。由于任务调度和时间处理由RTA模块执行,原先执行TimeTick的中断函数要作相应修改,在中断时,只需读取RTA中HighestPrio寄存器,然后做上下文切换,运行该优先级的任务即可。

2 实验结果

本实验使用的CPU为OR1200,CPU和所有的外设都通过Wishbone总线连接,系统时钟为25 MHz。在Altera的Cyclone II FPGA平台上,使用Quartus8.1工具对RTA进行布局布线,其共占用4 197个逻辑单元LE(Logic Element)。

任务响应时间是RTOS性能的一个重要指标,其定义为:从任务中断产生的时刻起,到恢复任务执行之间的时间。试验中,利用自定义的Timer作为测量标尺,在2个测试点各读取一次,相减后的数值再乘以此Timer的周期,便得到该段测试时间。图3是有硬件加速和无硬件加速的任务响应时间的测试结果,单位是系统时钟周期。

从图中3可以看出,在无硬件支持的RTOS中,随着任务数的增加,任务响应时间也随之呈线性增加。其原因是,程序顺序执行,在无硬件加速的情况下,RTOS内核在每个TimeTick中断都要对任务的延时域进行顺序更新。随着任务的增加,延时域的处理时间也增长。有硬件加速支持时,任务响应时间缩短,而且与正在运行的任务数量没有关系。这是因为所有任务的延时域都同时更新,在一个时钟周期内即可全部完成。所以使用RTA模块后,降低了系统本身占用CPU的时间,提高了系统的可预测性。可见,在添加RTA模块后RTOS的性能得到了提高。

本文将μC/OS-II系统中调用频繁的任务调度和时间管理采用硬件实现,达到了降低系统负载、稳定任务响应时间、提高系统可预测性的目的。实验结果表明,使用本硬件,任务中断响应时间可降低85.8%。

换一批

延伸阅读

[猎聘集] 分享德鲁克时间管理技巧

分享德鲁克时间管理技巧

德鲁克认为,只有检查自己的时间用到哪里去了,才能清楚的认识自己在时间安排与分配上的不足。很多时间,用在哪里,并不如自己想象的那样,用到正事上去了。一、始终坚持记录自己的时间耗用情况德鲁克认为,只有检查......

关键字:时间管理

[猎聘集] 做好时间管理,做好自己

做好时间管理,做好自己

导语:做好时间管理,做好自己。所谓的时间管理,是让我们在应对各种不确定性的过程中,有更好的准备。 有人好奇我工作的同时,怎么三下五除二,注会的进度居然比一些在校学生还快,我说:我无非就是把别人用来泡妞的......

关键字:时间管理

[真心话] 读研到工作,复旦技术大牛的8年“模电”奋斗之路

读研到工作,复旦技术大牛的8年“模电”奋斗之路

复旦攻读微电子专业模拟芯片设计方向研究生开始到现在五年工作经验,已经整整八年了,其间聆听过很多国内外专家的指点。 最近,应朋友之邀,写一点心得体会和大家共享。......

关键字:模拟电路

[疯狂史] 如何快速和你的程序员朋友“友尽”?把这些脚本塞进他的电脑里

如何快速和你的程序员朋友“友尽”?把这些脚本塞进他的电脑里

这是一个 bash shell 脚本,其中有若干可以整蛊(结仇)你的同事的小技巧——或者说恶作剧。看完之后,感觉不寒而栗,要是谁敢这样整我,我一定和他绝交!......

关键字:程序员 脚本

[新鲜事] 卷积神经网络之父:机器人索菲亚是一场彻头彻尾的骗局!

卷积神经网络之父:机器人索菲亚是一场彻头彻尾的骗局!

AI“大神” YannLeCun 给了在这次人工智能浪潮中到处制造话题的索菲亚团队一记暴击。YannLeCun 终于还是没忍住,站了出来,怒喷机器人索菲亚是一场彻头彻尾的骗局。......

关键字:人工智能 索菲亚

[真心话] 如何完成从一个“电子爱好者”到电子工程师的蜕变?

如何完成从一个“电子爱好者”到电子工程师的蜕变?

毕竟兴趣是最好的老师,许多优秀的电子工程师都是从小作为电子爱好者的。爱好不仅要体现在行动中更要深入内心甚至深入骨髓。......

关键字:电子工程师

[新鲜事] 星巴克灵魂人物辞职!竟然要去做这件大事....

星巴克灵魂人物辞职!竟然要去做这件大事....

这是他在2017年卸任星巴克CEO后又一重大人事变革举措。数月前还在上海星巴克臻选烘焙工坊搂着阿里巴巴创始人马云合影、接受记者专访的星巴克咖啡公司董事会执行主席霍华德·舒尔茨(Howard Schultz,下称&l......

关键字:星巴克

[趣科技] 世界上最坚韧的电子元件!在金星的极限环境下生存521小时

世界上最坚韧的电子元件!在金星的极限环境下生存521小时

就拿金星来说,最高温度可达到735开尔文(约462°C),没有光照的一面星球表面温度接近绝对零度,约为零下270°C。这样恶劣的环境对飞行器和其内部的各种电子元件都是巨大的考验。......

关键字:金星 电子元件
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14