电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>嵌入式开发>μC/OS-II的实时系统加速模块设计实现

μC/OS-II的实时系统加速模块设计实现

2017-10-26 | rar | 0.4 MB | 次下载 | 1积分

资料介绍

 随着科技的进步,嵌入式系统的功能逐渐由简单向复杂发展,开发难度也随之提高。嵌入式操作系统的使用,屏蔽了部分硬件信息,提供给开发者统一的平台,降低了开发难度,提高了代码的重复利用率。在一些特殊的领域(医疗、汽车、航空航天),对嵌入式系统的实时性要求非常高。在这些场合,任务必须在给定的时间内响应并正确完成。而实时操作系统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所示。
  μC/OS-II的实时系统加速模块设计实现
  每个任务都有4个域:TaskValid、OSTCBStat、OSTCBDly和OSTCBStatPend。每个任务都有一个任务就绪标志TaskReady,RTA通过PrioBitmapToBinary模块找到最高的优先级并送给HighestPrio。在CPU响应外部中断或者给调度器上锁时,可以通过OSIntNesting和OSLockNesting寄存器关闭RTA的中断。
  μC/OS-II实时系统内核中,任务调度基于TimeTick完成,由于程序只能顺序执行,任务的timedly域更新也是顺序执行的,从而使得调度函数的执行时间与运行的任务数量有关。在RTA模块中,基于TimeTick的调度机制并没有改变,只是原型中顺序执行的timedly更新,在硬件中可以同时执行。在使用RTA模块的系统中,移去了软件中的用于任务调度的数据结构,相应地在硬件中予以实现。
  当有更高优先级的任务进入就绪态时,就会产生RTA中断。硬件实现上,当进入就绪态的上个时钟周期的最高优先级和本时刻的最高优先级不同时,便产生中断信号。在μC/OS-II中,每个TimeTick时刻都会发生中断,这就需要更频繁地保存CPU寄存器,相比本文提出的方法,浪费了更多的CPU时间。
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1TC358743XBG评估板参考手册
  2. 1.36 MB  |  330次下载  |  免费
  3. 2开关电源基础知识
  4. 5.73 MB  |  6次下载  |  免费
  5. 3100W短波放大电路图
  6. 0.05 MB  |  4次下载  |  3 积分
  7. 4嵌入式linux-聊天程序设计
  8. 0.60 MB  |  3次下载  |  免费
  9. 5基于FPGA的光纤通信系统的设计与实现
  10. 0.61 MB  |  2次下载  |  免费
  11. 6基于FPGA的C8051F单片机开发板设计
  12. 0.70 MB  |  2次下载  |  免费
  13. 751单片机窗帘控制器仿真程序
  14. 1.93 MB  |  2次下载  |  免费
  15. 8基于51单片机的RGB调色灯程序仿真
  16. 0.86 MB  |  2次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33564次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21548次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6653次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537796次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191185次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183278次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费