嵌入式操作系统uc_os-ⅱ在adsp-21535上的移植

嵌入式操作系统uc_os-ⅱ在adsp-21535上的移植

ID:34090920

大小:180.35 KB

页数:3页

时间:2019-03-03

嵌入式操作系统uc_os-ⅱ在adsp-21535上的移植_第1页
嵌入式操作系统uc_os-ⅱ在adsp-21535上的移植_第2页
嵌入式操作系统uc_os-ⅱ在adsp-21535上的移植_第3页
资源描述:

《嵌入式操作系统uc_os-ⅱ在adsp-21535上的移植》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据第8卷2008在第11期11月中国水运ChirlaWaterTransportVoI.8No.11November2008嵌入式操作系统uc/os—II在ADSP一21535上的移植李涛(华中光电技术研究所,湖北武汉430074)摘要:本文概述了ADSP一21535数字信号处理器和嵌入式实时多任务操作系统—uc/08一Ⅱ的特点,主要阐明了UC/OS一Ⅱ在ADSP一21535上的移植。关键词:嵌入式操作系统;UC/OS一Ⅱ;ADSP一21535;移植中图分类号:TP316文献标识码:A文章编号:1006-7973(2008)11-0111_02引言近年来,越来越多的DSP设备开始与

2、嵌入式系统相结合,来实时地完成某一些特定的任务。随着处理器性能的不断提51‘和嵌入式系统功能的日益复杂,为了方便快速的开发复杂的DSP程序,必须要有一个嵌入式实时多任务操作系统对复杂的嵌入式系统软件进行管理和控制。本文则主要讨论了如何将嵌入式实时多任务操作系统UC/OS一Ⅱ移植到AD公司的多媒体信号处理芯片ADSP一21535上。一、ADSP一21535的结构特点ADSP一21535是AD公司BtackfinTM系列的16位定点DSP,支持改进的哈佛结构、分级存储器结构和8级流水线操作。其内核包含2个16一bit的乘累加器(MAC)、2个40一bit的算术逻辑单元(ALU)、2个40一b

3、it的累加器A0和A1、4个8一bit的视频ALu和一个40一bit的移位寄存器;支持正交的类似精简指令集(RISC),并将单指令多数据(SIMD)和多媒体操作引入单指令集结构。ADSP.21535支持3种工作模式:用户模式、管理模式、仿真模式。通过软件可以改变处理器的工作模式,外部中断或异常处理也可以改变处理器的工作模式。大多数应用程序在用户模式下执行,此时不能访问系统的某些被保护的资源,包括一部分的处理器寄存器、所有的MMRs和一部分指令(RTI、RTX、RTN、CLI、STI、RAISE、IDLE、RTE等)。在处理所有的中断、非屏蔽中断和异常事件时,处理器处于管理模式,可以访问系

4、统的任何资源。ADSP一21535内核支持事件控制器来处理中断或异常。在同一时刻允许出现多个中断/异常,并且支持中断的嵌套和优先级。ADSP一21535内核采用2级中断/事件控制机制:系统中断控制器(SIC)和内核事件控制器(CEC)’来控制所有系统中断。SIC提供了外设中断源和内核优化的通用中断之问的映射,并且这种映射是可编程的;CEC支持9种通用中断(IVG7~IVGl5)、专用中断和异常事件。二、嵌入式操作系统UC/OS—ULIC/OS一Ⅱ能够在多个微处理器和微控制器上移植和固化,是一种占先式的实时多任务操作系统,可以管理64个任务(应用程序可以有56个)。其内核主要功能模块包括任

5、务创建模块、任务调度模块、任务通信模块等。任务由它所要执行的程序代码、数据集以及任务控制块(TCB)组成。程序代码和数据集组成了该任务的地址空间,而任务控制块记录该任务的运行状态,是系统对任务进行管理和控制的依据。任务创建模块OSTaskCreate()的主要功能就是给任务分配一定的任务栈空间(函数OSTaskStklnit()完成该功能)、初始化任务控制块(函数OSTCBInit()完成改功能)。由于每个任务都是一个无限循环,不能由某个任务占用全部CPU资源,必须通过任务调度模块OSSched()实现任务与任务之间的切换,挂起当前正在执行的任务并调用就绪队列中优先级最高的任务。任务通信

6、模块的主要功能是完成任务之间的通信。通过消息控制块,将消息发送给等待该消息的任务队列中优先级最高的任务。三、UC/OS--II在ADSP-21535上的移植操作系统移植采用的硬件平台是ADSP-21535EZ-KITLite,软件实现工作主要包括:在OS—CPU.H中设置常量、申明数据类型、申明宏;在OS—CPU_C.C中编写C函数;在OS—CPU_A.ASM中编写汇编函数。在OS—CPU.H文件中需要规定堆栈的增长方向,ADsP一21535支持向下生长的堆栈(即高地址是栈底,低地址是栈顶),应将变量OS—STKGROWTH设置为1。OS—CPU.H中还需要设置用C语言打开和关闭全局中断

7、。文件OS—CPU.H文件的主要代码如下:#defineOS—STK.J3RoWTH1;#defineOSENTE】LCRITICALASM(。enabler0;”);#defineOSEXITCRITICALASM(“disablerO;”);在OSCPU_C.C文件中需要编写堆栈初始化函数OSTaskStldnit()。编写该函数,首先就是要设计任务栈结构。任务栈结构可以通过模仿ADSP一21535芯片在发生中断后,保存CPU内

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。