为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于TMS320C5509的UC_OS_移植研究

2017-11-21 8页 doc 46KB 7阅读

用户头像

is_281650

暂无简介

举报
基于TMS320C5509的UC_OS_移植研究基于TMS320C5509的UC_OS_移植研究 河 南 科 学第 29 卷 第 11 期 No.11 Vol.29 2011 年 11 月 Nov. 2011 HENAN SCIENCE 文章编号:1004-391(82011)11-1343-03 基于 TMS320C5509的 UC/OS-II 移植研究 翟丽杰 (渭南师范学院 物理与电气工程学院, 陕西 渭南 71400)0 摘 要:在深入了解 UC/OS 内核架构的基础上~对嵌入式实时操作系统U C/OS 移植到 TI 公司 TMS3205509C -I...
基于TMS320C5509的UC_OS_移植研究
基于TMS320C5509的UC_OS_移植研究 河 南 科 学第 29 卷 第 11 期 No.11 Vol.29 2011 年 11 月 Nov. 2011 HENAN SCIENCE 文章编号:1004-391(82011)11-1343-03 基于 TMS320C5509的 UC/OS-II 移植研究 翟丽杰 (渭南师范学院 物理与电气工程学院, 陕西 渭南 71400)0 摘 要:在深入了解 UC/OS 内核架构的基础上~对嵌入式实时操作系统U C/OS 移植到 TI 公司 TMS3205509C -II-II 上进行了研究~并以此形成基于DSP 的嵌入式实时系统平 台. 主要讨论了移植的可行性~流程和移植过程中的一些 关键问题~如堆栈~任务切换~编写中断函数等. 最后对移植后系统进行测试~测试结果表明移植成功~对解决此类 问题有普遍性~可进一步扩展. 关键词:UC/OS-II, TMS3205509C, 移植 中图分类号:TP 316 文献标识码:A [1]自 20 世纪 70 年代末诞生了首个数字信号处理器以来D,SP 不断向高性能,低功耗方向发展,随着 DSP [2] 性能的提高,其所能处理的事务越来越复杂,应用的领域越来越宽广,编制的软件规模越来越. 大 在某些 领域如自动控制和雷达探测,其特殊的工作环境要求系统的实时性比较高,如何保证实时性是一个很关键的 问题,引进实时操作系统是解决这个问题较好的,这里采用的是嵌入式实时操作系统UC /OS-II . 本文将嵌入式操作系统 UC/OSII 成功地移植到 DSP芯 片 TMS320C5509上运 行 . UC/OSII 是基于优 --先级的可剥夺型实时多任务内核,切换速度快,最多可以处理和调度64 个任务,任务间通信与同步使用信号 [3] 量邮箱和消息队列. 这样可以使各个任务独立工作,互不干涉,很容易实现准时无误执行,使应用程序 、、 的设计和扩展变得容易 . 大部分内核源码是用 ANSIC编写的 ,一小部分与硬件相关的内容由汇编写成的, [4] 具有可裁剪,移植性高等特点. 1 系统移植的可行性分析 为了使 UC/OS顺利工作 ,处理器需满足一定的条件,下面逐一简短介绍?:处理器的 C 编译器能产生可 [5] 重入代码 . 可重入代码指的是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数. 据本次系统移植是在 DSP开发环 境 CCS中进行 ,其自带的 C 编译器可以产生可重入代码 . ?处理器支持中 断,在程序中可以打开或者关闭中断 . TMS320C55X都有硬件 定时器,能够产生定时中断,其中断可以被硬 [6] 件或软件触发,可以利用芯片支持函数I RQ_globaEnablel()和 IRQ,globalDisabl(e)开关中断. UC/OS-II 是 通过处理器产生的定时器中断来实现多任务之间的调度的,这点TM S320C5509完全 符合. ?处理器有支持 能够容纳一定数量数据的硬件堆栈,有将堆栈指针和其他C PU 寄存器存储和读出到堆栈(或者内存)的指令. [7] C55X DSP提供了 3 种可能的堆栈配置,且具有P SH POP 等压栈和出栈命令. 、 因此综上所述TM,S320C5509完全具备移植的条 件. 下面将着重介绍移植的流程和一些细节. 2 基于操作系统内核架构的移植步骤 2.1 UC/OS 内核架构 -II UC/OS-II 实时操作系统内核分为几部分:与处理器无关U C/OS-II 内核代码,与应用有关的U C/OS-II配 [8] 置代码,与处理器有关的 UC/OS-II 移植代码. 其中与处理器无关代码的这部分系统源码可以在相关网站 上进行下载;与处理器有关的U C/OS-II 移植代码需要根据不同的处理器进行修改和编写,以应用在不同处 理器上;与应用有关的 UC/OS-II配置代码是移植成功后实现某些任务和应用程序时进行修改和编写 的. 2. 2 移植具体步骤 与处理器相关代码是移植过程中最关键的部分,内核将应用系统和底层硬件有机的结合成一个实时系 收稿日期:2011-06-05 作者简介:翟丽杰(1984),女,山东聊城人,助教,硕士,研究方向高速实时信号处理,基于 DSP数据采集存 储. - 的代码,处理器不同,这部分代码也不同. 在 UC/OS-II 中,这部分代码分成 3 个文件:OS_CP.UH,OS_CP_A.U ASM,OS_CPU.C 1)OS,CP,HU 包括用 ,define定义的与处理器相关的常 量、宏和类型定义 , 依 据 TMS320C5509所支 持 的数据类型定义相关常量,定义栈增长的方向为1 即从高地址往低地址递减生长,开关中断这里采用的是定 义的函数 OS,CPU,SaveSR()和 OS,CPU,RestoreSR(),定义用系统的软中断进行任务切换, 2)OS,CPUA,,ASM 这部分需要对处理器的寄存器进行操作,所以必须由汇编语言来编写,主要编写4个 函数 OSStartHighRdy(),OSCtxSw(),OSIntCtxS(w),OSTickISR(), OSStartHighRd(y)功能:通过设置系统运行标志位OSRunnin g,TRUE,将就绪表中最高优先级任务的栈 指针装载到 SP 中,并强制中断返回, OSCtxSw()功能:通过先前在OS ,CPU,中定义的软中断指令进行任务级切H 换 , 中断服务子程序 陷、 阱、异常处理的向量地址必须指向 OSCtxSw() OSIntCtxS(w)功能:实现中断级任务切换, 与 OSCtxSw()函数类似,只是少了一些保存某些寄存器的工作, OSTickISR()是系统时钟节拍中断服务函数, 这是一个周期性中断,为内核提供时钟节拍,频率越高,负 担越重, 必须是在调用 OSSta(tr )之后启动时钟节拍中断, 3)OS,CPU,这部分定义C 了 6 个函数 , 其中最重要 的是 OSTaskStkIni(t ),它是用户建立任务时系统内 部自己调用的,对用户任务的堆栈进行初始化,使建立好的进入就绪态任务的堆栈与系统发生中断并且与环境变量保存完毕时的堆栈结构一致 . 其余函数必须声明,但可以不包含任何代码,这些函数可以作为内核 函数的补充. 为了使程序执行效率高,在本次移植中OSTaskStkIn (t )i是用汇编编写的. 3 移植过程中的细节问题 因为本次移植采用开发软件 CCS2.2,它对中断的调用不是把当前任务全部寄存器压入堆栈,而是由 开发软件把中断服务程序要用到的寄存器压入堆栈 . 这个本来是开发软件为了缩短中断反应时间而做出的 优化,但是这个特点给移植带来了不便. 因为 UC/OS-II 要求所有任务堆栈中 CPU寄存器部分是统一的 ,而 用 C 语言加 interrupt关键字的方式实现中断函数就会出现问 题 . 因此笔者移植的时候在中断服务程序中 没有定义任何变量,只写一条调用函数语句,由这个被调用的函数完成所有的功能. 4 测试移植代码 TMS320C5509 芯片引导加载 完成将 UC/OS 移植到处理器上后,下一步工作就是验证移植 -II 后操作系统是否正常工作,这也是移植中较复杂的一步 . 本次测试 MAIN 函数 芯片初 是将程序下载到明伟电子生产的 TMS320C5509开发板上 ,打开CCS 验证是否移植成功 . 测试分为 2 种情况:首先是内核本身运行的测 始化 试,在没有用户任务的前提下进行测试;其次是建立基于信号量进行 通信的几个任务,在此基础上验证内核的多任务调度是否正确,从而 内核初始化 创验证系统移植成功与否. 其硬件测试流程图如图 1 所示. 首先测试内核自身的运行状况,即先不加任何应用代码进行测 建 TaskStart函数 试. 测试代码为: void main(void) //设置 5509 时钟频率为 120 MHz , pll,in(t 120);i启动多任务 print(f ,,n,nDemonstration of uC/OS,IIrunning 0 tasks\,n\n,); print(f ,Initializingu C/OS,II,,,);n观察测试结果 // //操作系统初始化 OSIni(t ); 图 1 系统硬件测试流程图 print(f ,StartinguC /OS,II,,,);n Fig,1 Flow chart of system hardwarete st //开始多任务 OSSta(tr ); , 2011 年 11 月 翟丽杰:基于 TMS320C5509的 UC/OS-II 移植研究 1345 -- 测试结果如图 2 所示, 从图 2 中可以看出,内核运行正常,调试结束时,系 统停止在系统空闲任务中 ,这是优先级最低的一个任务, 它总是处于就绪态, 然后在此基础上创建几个任务,用消息通信,进行任 务切换,观察结果,验证任务切换是否正确,从而验证关 键函数是否正确,最后验证系统移植成功, 测试的 示意 代码为: Void main() 图 2 内核测试运行图 , pll,ini(t 120); //设置 5509 时钟频率为 120 MHz Fig,2 Performing diagram of essencet est //操作系统初始化 OSIni(t ); 建立信号量; 创建任务; OSSta(tr ); //多任务开始 , 测试结果如图 3 所示. 从图 3 中分析可以看出任务 2 和 3 通过消息(传递 英文字母)进行通信和任务切换,从而可以验证多任务 切换正确,系统可以进行任务调度,系统移植成功. 图 3 多任务运行测试图 Fig,3 Multi,task running test chrat 5 结语 本文成功地将嵌入式操作系统 UC/OS-II 移植到了 TMSTMS320C5509上, 并且实现了整个平台稳定可 靠的运行 . 在此平台上可以实现数据处理、液晶显示等功能,可进一步引入到 DSP产品 中 . 嵌入式操作系 统的成功移植提高了系统的可靠性和实时性,缩短了开发周期,有利于产品功能的进一步扩展. 参考文献: ,1,彭启琮,李玉柏,管 庆, DSP 技术的发展与应用,M,, 北京:高等教育出版社,2002:340,345. 薛 雷,张金艺,彭之威, DSPs原理及 应用,M,, 北京:清华大学出版社2007,:3,.7 ,2, JeanJ ,Labrosse, 嵌入式实时操作系统 μCOS,?,M,, 邵贝贝,译. 2 版, 北京:北京航空航天大学出版社,2003:72,115. ,3, 曲延滨,苏键勇,冯立国,等, 实时操作系统 UC/OS,I I在 DSP 上的移植,J,, 微处理机,2005(3):43,45. ,4, 徐志永,朱凤新, UC/OS,I I针对 DSP 的改进和移植,J,, 电脑开发与应用,2007(6):46,49. ,5, 张 勇,周好斌,陈 滨, TMS320C5000 系列 DSP 汇编语言程序设计,M,, 西安:西安电子科技大学出版社2004,:58,60. ,6, 陈宝基, 嵌入式实时操作系统 μC/OS, I应用开发研究,D,, 济南:山东大学,2005:60,65. I,7, 韩明峰,李晓滨,郑永志, μC/OS,I I内核超时等待的分析与改进,J,, 计算机工程,2009(7):45,49. ,8, The Transplanting Researchof UC/OS-II Basedon TMS320C5509 Zhai Lijie (Department of Physics and Electronic Engineering,Weinan TeachersU niversity,Weinan 714000,ShaanxiC hina) Abstrac:tBased onin -depth understandingof UC/ OS -II core architectur,how eto port the embedded operation systemU C/OS-II to TMS320C5509is introduce d. The method of transplanting and some ,keyjust problems asstac k, taskswitch and interrupt function ,writinis mainlyg discusseAtd .last the systemis tested,test results show thatthe transplanting succeeds. This work canwildly be used and further extended to thisproblem type , Key words:UC/OS,II; TMS320C5509; transplanting
/
本文档为【基于TMS320C5509的UC_OS_移植研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索