欢迎来到天天文库
浏览记录
ID:5301556
大小:250.60 KB
页数:2页
时间:2017-12-07
《实时操作系统μc/os-ⅱ在arm微处理器s3c44box上的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信息技术ChinaNewTechnologie—sLUanIdU—PrPo(dUu.cItIs■嵋囵誓J团图篮墨工阉啦一实时操作系统txC/OS—II在ARM微处理器S3C44BOX上的实现耿升荣(烟台汽车工程职业学院,山东烟台265500)摘要:本文主要阐述了把实时操作系统p.C/OS-II移植到ARM微处理器S3C44BOX上的主要过程及主要代码的编写方法,并通过建立两个简单任务进行测试实验。关键词:~C/OS-II;ARM;实时操作系统;移植1引言要实现对~C/OS-II的移植,其主要工作就voida*pdata
2、,voidptosINT16Uopt)随着嵌入式系统的发展,它的复杂程度和人是对与处理器相关的~L+3C件进行修改,使之与{unsignedintstk;们对它的处理能力的要求也在不断的提高,在所使用的处理器相匹配。Stk=(unsignedint*)ptos;CPU上开发程序的复杂度使得以前针对嵌入式OS_CPU.H中需要针对具体处理器的字长*--stk=(unsignedint)task;/*pc*/系统的简单控制流程已不适合系统的要求,这就重新定义一系列数据类型;设置—个常量来标识*--stk=(unsigned
3、int~ask;/*lr*/迫使用户要使用实时操作系统(RT0s)。堆栈增长方向;声明几个用于开关中断和任务切tk=产rl-r12
4、由于ARM微处理器具有处理速度快、超低换的宏;OS_ceu_~.c需要用c语言编写6个简功耗、价格低廉、应用前景广泛等优点,而单函数;osCPU—AASM需要改写4个汇编语言tk=l卑r0
5、OS-II又具有高度的稳定性和可靠性、并且源代的函数;修改主头文件INCLUDEM,将上面的三牝—s/*eps
6、码公开,可读性强,移值方便等诸多优点,所以将个文件和其他自己的头文件加入。Retum((O
7、S_STKtk);~C/OS-II移值到ARM处理器上可以充分结合两4.1修改OSCPU.H文件,该文件主要是与}者的优势,提高系统的性能。处理器相关的数据类型、常量和宏。voidOSTaskCreateHook02~C/OS-II简介4.1.1定义ARM中的数据类型voidOSTaskDelHook0I~C/OS-II是基于优先级的抢占式实时多任#definennsignedcharBOOLEAN;voidOSTaskSwHook0务操作系统,可支持56个用户任务。操作系统功#defineunsignedchar1N
8、T8U;产8位无符voidOSTaskStatHook0能包括实时内核、任务管理、时钟管理、任务间通号整数voidOSTimeTickHook0信同步信号量、邮箱、消息队列);}Ⅱ内存管理。#definesignedchar1NT8S;8位有符4.3修改OS_CPU_^SM文件,该文件中包OS-II公开源代码,源代码中与硬件相关部分用号整数丰/含4个简单汇编语言函数:OSStartHighRdy0,OS—汇编语言编写,其余大部分源代码用ANSIC语#defineunsignedint1NTI6U;产16位无CtxSw0
9、,OSlntCtxSw0~OSTieklSR0.言编写,可移横f生强。∞s_Ⅱ可以移植到大多符号整数4:3.1OSStartHighRdy0函数由OSStart0函数数8位、16位、32位,甚至64位微处理器、微控#d幽nesignedint1NT16S;产16位有调用,功能是动行优先级最高的就绪态任务。代制器以及数据信号处理器(DsPLE。由于~C/OS-II符号整数码为:的稳定性,以及源码公开所带来的经济性,使其#defineunsignedlong1NT32U;32位无LDRr4,addr_OSTCBCu~,得到
10、当成为众多嵌入式开发人员和科研人员的首选嵌符号整数前任务的TCB地址人式RTOS。#definesignedlongINT32S;/*32位有LDRr5;addr_OSTCBHighRdy;得到高3∞S-II移植的相关问题符号整数优先级任务的TCB地址3.1移植的任务和目的#definefloatFP32;单精度LDRr5.产得到所谓移植,就是使—个实时内核能在某个微数堆栈指针处理器或微控制器上运行,也就是编写与处理器#definedoubleFP64;双精度LDRsp,切换相关的那部分代码。移植主要任务包括编译常量浮
11、点数到新的堆栈的设置、数据类型的定义、宏定义,以及与操作系typedefunsignedintOSSTK;堆栈人_STRr5,产设置统调度相关的函数的编写.这些工作大部分是使口宽度为16位的当前任务的TCB地址用汇编语言实现的。另外,通过对一些宏的定义4.12设置栈增长方向LDMFDsp!,l;从栈(实质是靠条件编译实现),可以对
此文档下载收益归作者所有