UCOS-II实时 *** 作系统在数码相框中的应用

UCOS-II实时 *** 作系统在数码相框中的应用,第1张

  1、引言

  本文研究了UCOS-II *** 作系统在数码相框中的应用,详细描述了UCOS-II *** 作系统在ZEVIO1020双核处理器上的移植,并且根据数码相框多任务的特点,设计了一套完整的消息处理机制。实践证明,采取本文所设计的系统可以灵活的完成任务间的调度和切换。

  2、系统概述

  数码相框的主要特色是图片显示清晰,图片显示效果多种多样,同时还具有视频播放、音频播放、JPEG图片解码等附加功能。在本系统实现过程中主要分为六个模块:总控模块、GUI界面模块、图片显示模块、视频模块、音频模块、JPEG解码模块。总控模块实现对其它模块的管理与控制。图片显示模块通过ZEVIO1020双核处理器的3D图像内核处理,实现多种三维的动态显示效果,通过对定时器设置的改变,实现图片播放速率的调整。视频模块和JPEG解码模块因为对速度的要求较高,使用高速数据传输通道DMA来实现ARMDSP之间的双核解码。音频模块可以解码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平台体系架构,第2张

 

  图1 ZEVIO1020平台体系架构

  4、UCOS-II在ZEVIO1020上的移植

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

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

  OSStartHighRdy()、OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、 OSTIckISR()。OSStartHighRdy()的作用是运行就绪态任务优先级最高的任务。OSCtxSw()是实现CPU在正常运行时任务间的切换,即对当前任务堆栈的保存和对高优先级任务堆栈的d出,使最高优先级任务获取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实时 *** 作系统在数码相框中的应用,中断处理流程图,第3张

 

  图2中断处理流程图

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2713068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存