侵权投诉
订阅
纠错
加入自媒体

详解UCOS-II操作系统在ZEVIO1020上的移植

2013-10-25 10:45
月城清浅
关注

  1、引言

  近年来,随着嵌入式技术的不断发展,各种电子产品层出不穷,对于那些具有众多功能,但按键数目无法满足要求的设备来说,选择一个好的操作系统和设计一套合理的消息处理机制,已经成为研发人员研究的一个课题。本文以此为背景,研究了UCOS-II操作系统在数码相框中的应用,详细描述了UCOS-II操作系统在ZEVIO1020双核处理器上的移植,并且根据数码相框多任务的特点,设计了一套完整的消息处理机制。实践证明,采取本文所设计的系统可以灵活的完成任务间的调度和切换。

  2、系统概述

  数码相框的主要特色是图片显示清晰,图片显示效果多种多样,同时还具有视频播放、音频播放、JPEG图片解码等附加功能。在本系统实现过程中主要分为六个模块:总控模块、GUI界面模块、图片显示模块、视频模块、音频模块、JPEG解码模块。总控模块实现对其它模块的管理与控制。图片显示模块通过ZEVIO1020双核处理器的3D图像内核处理,实现多种三维的动态显示效果,通过对定时器设置的改变,实现图片播放速率的调整。视频模块和JPEG解码模块因为对速度的要求较高,使用高速数据传输通道DMA来实现ARM和DSP之间的双核解码。音频模块可以解码MP3,WMA等多种音频格式。UCOS-II操作系统的任务就是在不同状态下,根据不同的键盘输入消息实现各个模块间的灵活调度。

  3、基于ZEVIO1020的系统硬件平台

  ZEVIO1020多媒体应用处理器是美国LSILogic公司发布的第一款基于ZEVIO架构的标准芯片。具备低功耗、更高级图像和数字音/视频处理功能。ZEVIO1020处理器高度集成,包括通用处理的ARM9内核,多媒体处理的ZSP400内核,此外还包括了一个3D图像内核和一个2D/3DMIDI声音核,它也集成了一个视频DAC(数字到模拟转换器)用于直接输出到电视和一个SDIO(安全数字输入/输出)卡槽用于数据存储或者额外的周边扩展。

  ZEVIO1020处理器的开发平台如图1所示,它的通用处理内核ARM926EJ-S的工作主频为150MHz,作为系统主处理器,可以完成控制和数据处理工作;ZSP400DSP处理器为视频解码和JPEG解码工作提供了高效运行平台,工作主频为150MHz。除此之外,ZSP400具有双MAC、双算法逻辑单元(ALU)DSP核,每周期4指令,正交的载入/存储指令集的特点。同时在ZEVIO1020的存储结构中,DMA提供了高速数据转移,能够完成ARM处理器和DSP处理器双核之间的高速数据传输。

详解UCOS-II操作系统在ZEVIO1020上的移植

图1  ZEVIO1020平台体系架构

  4、UCOS-II在ZEVIO1020上的移植

  UCOS-II操作系统是完全可剥夺型的实时内核,可以同时管理64个任务,函数的调用和服务时间具有确定性。其内核提供的任务调度与管理,时间管理,任务间同步与通信,内存管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。最小内核编译可以达到2KB。UCOS-II的移植主要是编写和处理器有关的代码,以及根据处理器设置中断向量表,提供给操作系统一个时钟作为系统时钟。

  OS_CPU_A.ASM是需要用户根据不同处理器的体系结构编写的汇编文件。该文件包括了四个函数:

  OSStartHighRdy()、OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR()。OSStartHighRdy()的作用是运行就绪态任务优先级最高的任务。OSCtxSw()是实现CPU在正常运行时任务间的切换,即对当前任务堆栈的保存和对高优先级任务堆栈的弹出,使最高优先级任务获取CPU的控制权。OSIntCtxSw()是在中断服务程序中执行切换功能的函数。OSTickISR()是系统时钟的中断服务程序。该程序执行的频率为100HZ,主要功能是检查是否有由于延时而被挂起的任务成为就绪任务,如果有就调用OSIntCtxSw()进行任务切换,从而运行高优先级的任务。OS_CPU.C中主要编写任务堆栈初始化函数OSTaskStkInit()。

  中断向量表是系统产生中断处理的索引表,系统会根据不同的中断类型引导它们进入不同的中断处理函数。ZEVIO1020双核处理器提供了多种不同类型的中断处理,主要分为两类:IRQ中断和FIQ中断。FIQ中断是快速中断处理函数,执行速度快,优先级高,一般用于重要和对实时性要求较高的中断处理。IRQ中断是普通的中断处理函数,一般的中断处理都归属于这种类型的中断。在各种中断同时触发的情况下,中断程序会根据各种中断优先级的设定来进行比较,执行优先级最高的中断处理程序。对于UCOS-II的操作系统来说,需要一个系统时钟作为操作系统的时钟节拍,供操作系统调用时间函数使用。ZEVIO1020有4个Timer可供选择,在这里选用Timer1作为系统时钟,设置系统时钟频率为100HZ且为FIQ中断。中断处理程序的实现过程如图2所示。

详解UCOS-II操作系统在ZEVIO1020上的移植

图2中断处理流程图

1  2  3  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号