基于NET+50 ARM7的DeltaOS操作系统内核移植.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于NET+50 ARM7的DeltaOS操作系统内核移植.pdf》由会员分享,可在线阅读,更多相关《基于NET+50 ARM7的DeltaOS操作系统内核移植.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、A R M 开发与应用中文核心期刊微计算机信息(嵌入式与S O C)2 0 0 6 年第2 2 卷第9-2 期文章编号:1 0 0 8 0 5 7 0(2 0 0 6)0 9 20 1 1 60 3基于NE T+5 0A RM7 的D el t aOS 操作系统内核移植D e l t a O SO p e r a t i n gS y s t e mK e r n e lP o r t i n go nN E T+5 0A R M 7B a s e dP|a t|o r m(北京理工大学)王磊陈朔鹰朱明远W a n g,L e iC h e n,S h u o y i n gZ h u,M i
2、 n g y u a n摘要:嵌入式实时操作系统内核的移植是嵌入式系统开发的瓶颈之一。本文以D e l t a O S 操作系统为例,讨论如何对嵌入式实时操作系统的内核进行移植,同时分析了操作系统的可移植性,并总结了一些内核移植的规律。本文还特别对开发过程中遇到的一些具体问题专门进行了分析,并提出一些解决问题的方法。关键词:内核移植;操作系统;嵌入式系统;实时中图分类号:T P 3 1 6 2文献标识码:AA b s t r a c t:W i t ht h ed e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y,e
3、m b e d d e ds y s t e mh a sb e e nu t i l i z e di nv a r i o u sa r e a s,a n dt h em a r k e tf o re m b e d d e dr e a lt i m eo p e r a t i n gs y s t e mh a sc o n t i n u o u s l yi n c r e a s e d T h ek e r n e lp o r t i n go fr e a l-t i m eo p e r a t i n gs y s t e mi sj u s to n eo ft
4、 h eb o t t l e n e c k sd u r i n ge m b e d d e ds y s t e md e v e l o p m e n t S of a r,t h es p e e do fk e r n e lp o r t i n gi Sal i t t l eb i ts l o wa n dc o u l dn o tm e e tt h er e a ln e e d s T a k i n gD e l t a O So p e r a t i n gs y s t e ma sa ne x a m p l e,t h ep a p e rm a i
5、 n l yd i s c u s s e dh o wt op o r tt h ek e r n e lo fa ne m b e d d e dr e a lt i m eo p e r a t i n gs y s t e m,a n da n a l y z e dt h ep o r t a b i l i t yo fo p e r a t i n gs y s t e ma n ds u m m a r i z e dt h er e g u l a t i o no fk e r n e lp o r t i n gt og u i d el a t e rw o r ka
6、n di m p r o v ep e r f o r m a n c e T b et h e s i se s p e c i a l l ya n a l y z e dt h ep r o b l e mm e ti nt h ed e v e l o p m e n ta n dp r o p o s e ds e v e r a ls o l u t i o n s K e yw o r d:K e r n e lP o r t i n g,O p e r a t i n gS y s t e m,E m b e d d e dS y s t e m,R e a l t i m e
7、1 引言一个优秀,成熟的嵌入式实时操作系统的诞生需要耗费大量的人力,物力和财力,因此对优秀的嵌入式实时操作系统进行移植,让其在更广泛的领域发挥作用是十分必要的。但是,目前操作系统内核移植的速度比较缓慢,不能够满足实际的需要。这就要求我们寻找出一些操作系统内核移植的规律,提高移植的效率。2 内核移植的分析2 1 内核移植简介一般来说,嵌入式实时操作系统自下而上包含三个部分:硬件环境,嵌入式操作系统和嵌入式实时应用程序。为了使嵌入式操作系统在各种不同的硬件环境下都能较好的工作,就需要将嵌入式操作系统中与硬件相关的部分相对独立出来,形成一个单独的层次。通过特定的上层接口与操作系统内核进行交互,向操作
8、系统提供底层的硬件信息,并根据操作系统的要求完成对硬件的直接操作。这一层次的独立性也就决定了该嵌入式操作系统的可移植性。由于这一层次屏蔽了底层硬件的多样性,操作系统内核不再直接面对具体的硬件环境,而是面向由这个中间层次所代表的逻王磊:硕士研究生辑硬件环境,因此通常把这一层次叫做硬件抽象层H A L(H a r d w a r eA b s t r a c t i o nL a y e r),在嵌入式领域中通常也叫做板级支持包B S P(B o a r dS u p p o r tP a c k a g e)。硬件抽象层的引人大大推动了嵌入式实时操作系统的通用化,从而为嵌入式系统的广泛应用提供了
9、可能,所以操作系统内核移植工作中最主要的内容就是改写B S P。B S P 由于在系统中的特殊位置而具有硬件相关性和操作系统相关性。在实现上,B S P 包括了系统中大部分与硬件相关的软件模块。在功能上包含两部分:系统初始化及与硬件相关的设备驱动。系统初始化完成的基本功能有:对M P U 进行低级初始化,对目标机的硬件进行初始化,加载操作系统。2 2 设备驱动程序设备驱动程序是设备提供给操作系统和应用软件的一套接口,主要负责对硬件寄存器的读写操作和设备的逻辑控制。它把操作系统和应用软件与设备隔离开来,屏蔽了硬件的细节,方便了用户对设备的读写和控制。同时它也使得一种硬件设备只要配备不同的驱动程序
10、,就可以在不同的系统上使用;一种操作系统只要配备不同的驱动程序,就可以使用不同设备。设备驱动程序是内核的一部分,它完成以下的功能:(1)对设备初始化和释放;(2)把数据从内核传送到硬件和从硬件读取数据;1 1 6 3 6 0 元,年邮局订阅号:8 2-9 4 6 万方数据A R M 开发与应用f 3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据;f 4 1 检测和处理设备出现的错误。2 3 移植的可行性作为一个优秀的嵌入式实时操作系统的内核,D e l t a C O R E 具有以下一些特点。f 1)结构简捷,灵活。在设计上,D e l t a C O R E 采用三层软件体系结
11、构,从下至上为硬件抽象层,内核层和应用层。硬件抽象层向上对内核层提供抽象的硬件操作,向下操作具体的目标硬件;内核层为应用程序提供任务管理,同步,通信与互斥机制,中断及内存管理等各种服务;在应用层,开发人员通过系统调用接口使用内核层的服务。(2)可配置性。利用北京某公司提供的L a m b d a 开发工具,开发人员可根据应用程序的需求,对D e l t a C O R E 提供的各种参数进行配置。(3 1 代码支持。D e l t a C O R E 9 0 以上的代码用C 语言编写,只有在启动代码以及一些对速度,实时性要求较高的地方采用了汇编语言。由于在设计D e l t a C O R E
12、 的时候已经考虑了可移植性的问题,所以其函数都具有可重入性。以上二的这些特点都表明D e h a C O R E 具有良好的可移植性。2 4 移植环境软件环境:北京某公司的嵌入式实时操作系统内核D e h a C O R E硬件环境:N e t S i l i c o n 公司的3 2 位A R M 片上系统(S y s t e mO n C h i p)N E T+5 0开发环境:北京某公司的L a m b d a T o o l s(包括L a m b d a l D E,L a m b d a G C C和L a m b d a G D B)以及B D l 2 0 0 0 J T A G
13、 调试器3 内核移植的实现嵌入式实时操作系统内核D e l t a C O R E 的移植工作主要分为两个阶段:调试代理L a m b d a T R A 的修改阶段和B S P 的修改阶段。3 1L a m b d a T R A 的修改与调试L a m b d a T R Af L a m b d aT a r g e tR O MA g e n t),即L a m b d a 目标监控器。目标监控器是调试器对目标机上运行的应用程序进行控制的代理程序,事先被固化在目标机的F l a s hM e m o r y,硬盘或启动软盘中在目标机上电后自动启动目标机。并等待宿主机方调试器发来的命令,
14、配合调试器完成应用程序的下载,运行和基本的调试功能。f 1)B O O T 启动B O O T 启动程序的基本功能包括对M P U 的低级初始化,对目标机的硬件进行初始化,加载操作系统。B O O T 启动程序的编写是操作系统内核移植的第一步也是最重要的一步。如果B O O T 启动程序不能够使目标机的硬件正常工作起来,那么内核移植就没有办法进行下去。硬件系统上电时,硬件特别是内存没有初始化,C函数库没有装入内存,系统此时不支持c 语言程序,只支持它自己的3 2 位汇编指令,所以B O O T 启动程序只能用汇编指令来初始化硬件。在成功初始化存储器和建立堆栈之后,就可以调用c 语言函数了。(2
15、)存储器初始化存储器的初始化是整个B O O T 启动程序中最重要,也是最难以调试的部分。之所以说其重要,是因为所有的程序都需要在装载在存储器中,并且一直在存储器中执行;而只所以说其难以调试,是因为其表现只有工作正常和工作异常这两种,而且导致工作异常的因素是非常多的。这就要求我们不但要对存储器硬件的型号和特性有足够的了解,而且要对其硬件文档中描述的初始化序列十分清楚,同时还要注意某些目标机为纠正错误而要求的特定的初始化序列。(3)建立堆栈由于A R M 体系结构具有7 种处理器模式,所以必须为每一种模式建立各自独立的堆栈空间,这就涉及到处理器模式的切换问题。堆栈模式的切换主要涉及到C P S
16、R 和S P S R 两个程序状态寄存器。状态寄存器的低8 位为控制位,只能由软件来进行修改。其中,M 4 0 1 为M P U 工作模式的编码。T 用于指示是否工作在T h u m b 指令模式下,I和F 用于屏蔽中断。程序状态寄存器的高4 位为条件标志位,分别为N(N e g a t i v e),Z(Z e r o),V(o V e r f l o w)和C(C a r r y)。模式切换完之后把相应的堆栈地址赋给堆栈指针寄存器S P 就完成了相应模式堆栈的建立。(4)存储器映射出于安全性和可维护性的考虑整个存储器空间被划分为若干个段。段在整个空间的定位可以是动态的,也可以是静态的。在本
17、项目中,由于程序要被固化到F L A S H 中,所以采用静态定位的方式。在存储器映射文件中指定R A M 中断向量区、R A M 代码区、R O M中断向量区和R O M 代码区的地址,每个区域再细分为若干个段。(5)改写M A K E F I L E在本项目中,需要向原来的m a k e f i l e 文件中添加本目标机的编译选项和各个文件之间的依赖关系。在调试过程中,编译的时候要加上一g 这个编译选项,这样就能在生成的c o f f 文件中添加一些调试信息,从而方便调试。调试成功之后要去掉一g 这个编译选项,使生成的文件小巧一些。上面的这些工作完成之后,分别生成L a m b d a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于NET+50 ARM7的DeltaOS操作系统内核移植 基于 NET 50 ARM7 DeltaOS 操作系统 内核 移植
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内