《基于PXA255的ARM Linux操作系统移植.pdf》由会员分享,可在线阅读,更多相关《基于PXA255的ARM Linux操作系统移植.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式操作系统应用中文核心期刊微计算机信息(嵌入式与S O C)2 0 0 7 年第2 3 卷第3-2 期文章编号:1 0 1 1 8-0 5 7 0(2 1 1 0 7)0 3-2 伽1 6 2 _ 0 3基于P X A 25 5 的A RML inu x 操作系统移植P o r t i n go fA R ML i n u xo p e r a t i o ns y s t e mb a s e do nP X A 2 5 5d B 京工业大学嵌入式软件与系统研究所)王治强黄樟钦侯义斌方林波W A N GZ H I Q I A N GH U A N GZ H A N G Q I NH O
2、UY I B I NF A N GL I N B O摘要:L i n u x 在嵌入式领域中应用越来越广泛,已成为最有潜力的嵌入式操作系统。操作系统的移植是进行嵌入式应用开发的前提和基础。A R ML i n u x 是一种针对A R M 体系结构的L i n t L x 操作系统。本文以新一代高端嵌入式处理器P X A 2 5 5 为例,进行A R ML i n u)【的移植。阐述了移植中需要解决的关键技术,包括:内核的定制、文件系统的创建、设备驱动的移植等。最后,在移植成功的平台上实现了无线接入点。关键字:A R ML i n u x;移植;P X A 2 5 5;C S B 2 2 6;
3、驱动程序中图分类号:T 鸭1 1 5 4文献标识码:AA b s t r a c t:L i n t=h a sb e c o m et h em o s tp o t e n t i a le m b e d d e do p e r a t i n gs y s t e ma sb e i n gu s e di n c r e a s i n g l yp o p u l a ri nt h ee m b e d d e df i e l d O p e r a t i n gs y s t e mp o r t i n gi st h ep r e m i s ea n db a s
4、eo fe m b e d d e da p p l i c a t i o nd e v e l o p m e n t A R ML i n u xi sak i n do fL i n u xw h i c hn l n so nA R Ma r c h i t e c t u r e T a k i n gt h el a t e s tg e n e r a t i o na d v a n c e de m b e d d e dp r o c e s s o rP X A 2 5 5a sa ne x a m p l e t l i sa r t i c l ep r e s e
5、 n t st h ek e yt e c h n i q u eo ft h ep o r t i n gA R ML i n u x,i n c l u d i n g:c u s t o m i z i n gk e r n e l,m a k i n gf i l es y s t e m,p o r t i n ge q u i p m e n td r i v e r sa n dS Oo n F i n a l l y,aw i r e l e s sA c c e s sP o i n ti si m p l e m e n t e do nt h ed e v e l o p
6、 m e n tb o a r d K e yw o r d s:A R ML i n u x,P o r t i n g,P X A 2 5 5,C S B 2 2 6,D r i v e r 1 引言A R M 处理器是当今应用最为广泛的处理器芯片,它功耗小、成本低、性能优越,在消费电子类产品中占据主导地位。L i n u x 操作系统近年来在嵌入式领域中发展很快,由于其强大的性能和开源免费的特点,越来越受到嵌入式系统开发商的青睐,信息家电、网络设备、手持终端等都是嵌入式L i n u x 应用的广大市场。在嵌入式开发中,把操作系统移植到开发板是进行嵌入式应用开发的前提和基础。A R ML
7、 i n u x 是针对A R M 体系结构的嵌入式L i n u x 操作系统。本文主要阐述了将A R ML i n u x 系统移植到基于P X A 2 5 5 处理器的开发板C S B 2 2 6 上的方法和关键技术。2 软硬件平台环境2 1 硬件平台f 1)P X A 2 5 5 处理器I n t e lP X A 2 5 5 是基于X S c a l e 微架构的一款嵌入式应用处理器,它在X S c a l e 结构的基础上集成了众多的外设接口,如:P C M C I A 控制器、L C D 控制器、多媒体通信1 2 I 等,是专为高性能、低功耗的便携式手持设备而开发的。C S B
8、2 2 6 是基于P X A 2 5 5处理器而设计的一款开发板本文的移植工作就是在此开发板上进行的。C S B 2 2 6 还配置有许多外设。包括:6 4 M BS D R A M 内存、3 2 M BF l a s h、C S 8 9 0 0 A 以太网控制器、C F 接口等。C S B 2 2 6 开发板系统结构框图如图1 所示。王治强:硕士基金项目:国家自然科学基金(9 0 4 0 7 0 1 7),北京市教育委员会科技发展计划重点项目(K Z 2 0 0 5 1 0 0 0 5 0 0 6)。北京工业大学博士科研启动基金(0 0 0 8 8)(2)硬件环境搭建嵌入式开发通常采用宿主机
9、一目标机的主从开发模式。宿主机指开发主机,由一台通用P C 机或工作站构成;目标机即指嵌入式设备在本文中是C S B 2 2 6 开发板。硬件的连线图如图2所示开发板和宿主机之间通过串口、以太网或J T A G 口等进行通信,采用“交叉”开发方式。本文采用硬件仿真工具B D l 2 0 0 0进行软件的调试。仿真器一端通过J T A G 口与目标机相连,另一端用网线与宿主机相连。图1C S B 2 2 6 开发板系统结构框图图2 主机和目标机的连线图一6 2 3 6 0 元,牟邮局订阅号:8 2 9 4 6 万方数据嵌入式操作系统应用2 2 软件环境设备节点,只需要根据当前平台对外设的支持情况
10、逐个地添加本文开发主机采用R e d H a t 9 0 操作系统。首先需要对开发即可。e t c 目录是系统配置文件和子目录,比如启动配置、网络主机和目标机做一些设置,然后搭建交叉编译和调试环境,具配置等,需要针对特定应用启动相应的服务和进程。体步骤如下:(2)文件系统的挂载在开发主机上需要做以下设置:(1)启动N F S 服务,为目标创建好文件系统的目录结构后,还需要将目录制作成某种机使用N F S 文件系统做准备;(2)安装唧服务器,为目标机格式的文件系统,挂载到L i n u x 内核下使用。常用的挂载方式有从主机上下载文件提供服务;(3 煽动T e l n e t 服务;(4)安装M
11、 i n i R a m d i s k、J F F S 2、N F S,其中N F S(N e t w o r kF i l eS y s t e m)是网络文件c o r n 工具,它是L i n u x 环境下的超级终端工具,用它与目标机进系统,它的优点是可以从主机上直接修改文件系统,方便开发。行串口通信。另外,目标机上需要设置I P 地址,与开发主机设本文使用N F S 的挂载方式,将根文件系统是放在开发主机上,置在同一网段。开发主机提供网络共享服务,目标机在启动时通过N F S 方式挂对于交叉编译环境,使用最广泛的A R ML i n u x 交叉工具链载根文件系统。为a n n-l
12、 i n u x t o o l c h a i n,由b i n、i n c l u d e、l i b 三部分组成。调试环3 3 设备驱动移植境的搭建使用G N U G D B 调试工具,安装后生成A R M 平台的交将L i n u x 内核移植到C S B 2 2 6 开发板上后,还需要移植常叉调试工具a r m-l i n u x-g d b。用外设的驱动程序,如:L C D 液晶屏、鼠标、键盘、C F 卡等。下面3 基于P X A 2 5 5 的A l U 讧L i n u x 移植重点阐述L C D 液晶屏和c F 卡的移植过程。关键3 壤森制2:嚣髫黧嚣冲驱动分为三层,中间层及
13、上1 内核定制u n u x 中州r o 枷e b u n o o l!E l 壤T 中抛列万列二层,中I 叫J 云及上K n u x 内核和文件系统是嵌入式L i n u x 的两个核心部分。首层是设备无关的软件层,底层是与硬件相关的帧缓冲驱动,因先进行内核的编译。在开发主机上配置编译A R ML i n u x 内核,此,L C D 驱动移植主要是驱动帧缓冲硬件设备,在本文中对应生成一个针对C S B 2 2 6 平台的L i n l l】【内核映像z I m a g e。于C S B 2 2 6 平台上的L C D 控制器和其外接的T F TL C D 显示器。本文使用2 4 1 9 版
14、本的标准内核,编译内核的步骤如下:基于P X A 2 5 5 微处理器的不同平台的差异主要在于外接(1)准备L i n I l】【内核源代码l i n u x 一2 4 1 9 t a r 和平台相关的系列补的L C D 显示屏硬件的差异,因此对于不同平台的帧缓冲驱动程丁!D a t c h 一2 4 1 9 一r m k 7 g z,d i f f 一2 4 1 9 一r m k 7 一p x a 2 g z,l i n I l】【一序的差别主要是在L C D 控制寄存器中显示屏规格参数的设置2 4-1 i 9-r i l l k 7-p x a 2-p t x l 4 d i f f。(2
15、)解压源码包并按顺序打上几个上有不同。L C D 寄存器中的初始规格参数是在头文件d r i v e r s 补丁。再对内核源码的配置文件作适当的修改。然后用m a k eV i d e o p x a f b h 的宏定义中设置的,因此对于不同的硬件平台只d e p,m a k e:I m a g e 命令进行编译。如果编译成功会在L i n u x 源码要更改硬件的规格参数即可。这些参数是在初始化函数p x a r c h,a 邶佑o o t 目录下生成内核映像文件z I m a g e。a i l)_ i J l j t 0 中进行配置的。在内核成功编译之前关键是对内核源码做适当的修改,
16、(2)C F 卡的驱动移植以适应特定的开发平台。本文中对源码的修改有如下几点:(1)C F(C o m p a c tn a s h)接口是一种标准的扩展接口,主要用于将M a k e f i l e 文件中的编译器改为交叉编译器a r m-l i n u x g c c,体扩展芽储空间,如本文使用的1 2 8 Mc F 存储卡,也可以外接其系结构改为A R M。(2)本文中使用N F S 方式挂载文件系统,因他设备,如C F 接口的m o d e m、无线网卡等。此,需要在C S B 2 2 6 的默认配制文件l i n u x a r c h a r m d e f-c o n f i g
17、 s 在L i n u x 系统下,由于C F 卡与P C M C I A 设备控制器兼容,c s b 2 2 6 中设置配置命令行的属性:C O N F I G _ C M D L I N E:t m o t _ 通常把C F 卡当作P CC a r d 设备进行驱动和管理。P C M C I A 的插d e v n f s 刑n f s m o t:1 0 0 0 1:h o m e b u s y b o xi p=1 0 0 0 2m e m:6 4 M槽驱动和P C 卡驱动与硬件直接相关,是驱动移植中需要重新c o n s o l e=t t y 0c o n s o l e=t t
18、 y S O。3 8 4 0 0 ,其中 r o o t=d e v n f s,指定设备实现的部分。C F 存储卡的驱动可以直接使用标准的A T A I D E文件。“1 0 0 0 1:h o m e b u s y b o x”是文件系统所在开发主机的I P设备驱动i d e c s 模块,因此在C S B 2 2 6 平台上驱动C F 存储卡,地址和目录位置。1 0 0 0 2 是目标机的I P 地址。主机端和目标只需要编写P C M C I A 控制器的驱动。机的串口通信波特率要一致,本项目中是3 8 4 0 0。(3)在源码P X A 2 2 5 片上的P C M C I A 控制
19、器驱动的初始化函数为p x l i n u】【a r c M 砌t o o l s 目录下的瑚c h t y p e s 文件中添舸C S B 2 2 6a _ p c m c i a _ d r i v e r _ i n i t 0,它调用底层P C M C I A 接口函数初始化具的宏定义和机器号C S B 2 2 6 的机器每曩2 1 6。这个整数是唯一体平台上的插槽接口设备。这些底层函数是板级驱动与插槽驱的,在启动初始化的时候会把它赋给微处理器的R 1 寄存器。(4)动之间的标准接口,定义在结构体s t m c t p c m c i a _ l o w _ l e v e l 中。
20、C F用m a k em e n u c o n f i g 命令对默认配置做一些调整,比如添加外卡驱动移植的主要工作就是实现p c m c i a _ _ l o w _ l e v e l 结构体中底设、网络协议和文本格式等选项。层平台相关的5 个接口函数。p c m c i 丑-l o w j e v e l 数据结构如下:成功生成映像文件:I m a g e 后,就可以下载到目标机运行s t r u c tp c m c i al o wl e v e l 了,但只有这个内核还无法与系统交互,还需要一个文件系统。i n t(*i n i t)(s t r u c tp c m c i
21、a _ _ i n i t 木);3 2 文件系统i n t(*s h u t d o w n)(v o i d);(1)嵌入式文件系统制作本文采用B u s y b o x 工具包组建嵌入式文件系统。直接配置编译B u s y b o x 就可以创建b i n、&b i n、u s r 等目录,其中包含了大部分常用的命令,但B u s y b o x 并不提供与登录相关的命令如:l a g i n、g e t t y、p a s s w d 等,这需要用T i n y l a g i n 软件包生成。l i b 目录的动态库文件可以用G l i b c 生成。d e v 目录下是系统所用的i
22、 n tp s o c k e t _ s t a t e)(s t r u c tp c m c i a _ s t a t ea r r a y+);i n t(木g e t _ i r q _ i n f o)(s t r u c tp c m e i a _ i r q _ i n f o+);i n tP c o n f i g u r es o c k e 0(u n s i g n e di n t,s o c k e t _ s t a t e _ t8);*i n i t 函数。主要完成-+-1-_ 作:执行平台相关的初始化任务;设置所需要中断信号的方向和边缘触发方式;注册设
23、备发 黜罔邮局订8 2-舛63 6 0,L 年一6 3 万方数据嵌入式操作系统应用中文核J m 期刊微计算机信息(嵌入式与S O C)2 0 0 7 年第2 3 卷第3-2 期现中断与对应的中断处理函数。o 留,B e i j l r 喀1 0 0 0 2 2,C h i n a)W a n gZ h i q m n g+s h u t d o w n 函数,在卸载驱动时使用,用来释放所申请的资通讯地址:(1 伽0 2 2 北京工业大学计算机学院4 2 9 信箱)王治强源。肆s o c k e t _ s t a t e 函数,设置插槽的初始化状态信息,完成对输人参数所包含的数据结构s t r
24、 u c tp c m c i a _ s t a t e 赋值,需要根据实际插槽的状态信息正确设置此数据结构。g e t _ i r q _ i n f o 函数,用来获得每个插槽接口设备上的R e a d y 中断信号。c o n f i g u r e _ s o c k e t 函数,由上层驱动调用,用来动态改变插槽的状态,比如工作电压V C C、可编程电压V P P 等。将P C M C I A 驱动程序成功编译进内核后。还需要使用卡管理工具c a r d m g r 监测c F 卡设备,当c F 存储卡插入到C S B 2 2 6 开发板的插槽时。c a r d m g r 会发现
25、该设备并完成设备的加载。4 应用实例在C S B 2 2 6 开发板上成功移植了A R ML i n u x 后,可以进行多种应用开发,如:电子地图查询系统,娱乐游戏机等。本文在C S B 2 2 6 开发板上插入一块基于P r i s m 2 芯片组的C F 接口的无线网卡,由于已经成功驱动了C F 接口,所以只需要将无线接人点程序H o s tA P 编译到A R ML i n u x 内核中,再使用网桥工具将C S B 2 2 6 开发板自身的1 0 M B i t 以太网和无线网络桥接起来,这个开发板就可以作为一台无线接入点工作了。5 结论L i n u x 操作系统在嵌入式设备中应用
26、越来越广泛。本文针对基于P X A 2 5 5 处理器的开发板进行了系统移植。阐述了移植中的关键技术,如:内核的修改、文件系统建立、设备驱动的移植,最后在开发板上实现了无线接入点。本文的移植过程对于其他类型微处理器上L i n u x 的移植也具有参考价值。本文作者创新点:基于C S B 2 2 6 开发板进行了A R ML i n u x操作系统的移植,对L C D 和C F 卡设备驱动的乎台相关部分进行了重写。最后在开发板上实现了无线接入点的应用。参考文献 1】毛德操,胡希明嵌入式系统采用公开源代码和S t r o n g A R M X S c a l e 处理器 M 杭州:浙江大学出版
27、社,2 0 0 3 P 6 1 6 3 2】C S B 2 2 6B l o c kD i a g r a m h t t p:w w w c o g c o m p c o m d a t a s h e e t s V i s i o-C S B 2 2 6 _ d i s t i p d f,2 0 0 4 3】许先斌,熊慧君,李渊,杨芬基于A R M 9 的嵌入式L i n u x 开发流程的研究叨微计算机信息2 0 0 6,11:8 7 9 0 4 J o n a t h a n C o r b e t,G r e g K r o a h-H a r t m a n,A l e s
28、s a n d r o R u b i n i L i n u xD e v i c eD r i v e r M 第三版0 R e i n yM e d i a I n c 2 0 0 5 作者简介:王治强(1 9 8 2 一),男,辽宁大连人,北京工业大学硕士生,主要研究领域为嵌入式系统。黄樟钦(1 9 6 5-),男,博士,教授,主要研究领域为嵌入式系统软硬件协同设计。计算机网络。侯义斌(1 9 5 2-),男,教授,博士生导师,主要研究领域为嵌入式系统的软硬件协同设计,新型人机交互。方林波(1 9 7 3 一),男,博士生,主要研究领域为嵌入式系统软硬件协同设计,计算机网络。B i o
29、 g r a p h y:W a n gZ h i q i a n g,1 9 8 2 一,M a l e,b o r ni nL i a o n i n gP r o v i n c e,M a s t e ro fB e i j i n gU n i v e r s i t yo fT e c h n o l o g y,R e s e a r c hA r e a:E m b e d d e dS y s t e m(1 0 0 0 2 2 北京北京工业大学计算机学院)王治强(C o l l e g eo fC o m p u t e rS c i e n c e,B e i j i n
30、 gU n i v e r s i t yo fT e c h n o l-(收稿日期:2 0 0 7 1 2 3)修稿日期:2 0 0 7 2 2 5)(E 接第5 8 页)本文作者创新点:从硬件和软件方面对C o m p a e t P C I 热插拔技术进行?了详细分析,详细介绍C o m p a c t P C I 板卡模块的连接过程,并提出相关的硬件解决方案,即利用电源管理芯片L T C l 6 4 4 和P C I 9 0 5 4 实现C o m p a c t P C I 板卡的热插拔。参考文献:1 C o m p a c t P C IS p e c i f i c a t i
31、 o n 2 C o m p a c t P C IH o tS w a pS p e c i f i c a t i o n 3 L T C l 6 4 4D a t a B o o k L i n e a rT e c h n o l o g yI n c,2 0 0 0 4】刘红通用C o m p a c t P C I P X l 接口技术的研究四川大学硕士论文2 0 0 5 4 5】韩雪峰基于P C I 总线的高速数据采集接口的设计与实现 J】微计算机信息2 0 0 5(0 8 S):7 1 7 3作者简介:梁俊(1 9 8 2 0 9),男,宁夏吴忠,中科院长春光学精密机械与物理研
32、究所硕士研究生,主要研究方向:C o m p a c t P C I P X I接口技术研究;王建f f _(1 9 7 1),男,山东曲阜,研究员,主要研究方向:深空探测和光电火控技术研究。B i o g r a p h y:L i a n gJ u n,M a l e,B o r ni nS e p,1 9 8 2,Ag r a d u a t es t u d e n ti nC h a n g c h u nI n s t i t u t eo fO p t i c s,F i n eM e c h a n i c sa n dP h y s i c s R e a r c ha r
33、e a:t h et e c h n o l o g yo fC o m p a c t P C Ia n dP X Ii n t e r f a c e;W a n g,J i a n l i,M a l e,B o r ni n1 9 7 1,R e s e a r c h e r R e a r c ha r e a:t h ed e t e c to fd e e ps p a c ea n dt h et e c h n o l o g yo fE l e c t r o-O p t i c a lf i r ec o n t r 0 1(1 3 0 0 3 3 长春中国科学院长春光
34、学精密机械与物理研究所)梁俊王建立孟浩然(1 0 0 0 3 9 北京中国科学院研究生院)梁俊(C h a n g c h u nI n s t i t u t eo fO p t i c s,F i n eM e c h a n i c sa n dP h y s i c s,C h a n g c h u n1 3 0 0 3 3,C h i n a)L i a n gj a nW a n gJ i a n l iM e n gH a o r a u(G r a d u a t eS c h o o lo ft h eC h i n e s eA c a d e m yo fS c i e
35、 n c e s,B e i j i n g1 0 0 0 3 9,C h i n a)L i a n gj a n通讯地址:(1 3 0 0 3 3 吉林吉林省长春市经济开发区营口路2 0号研究生公寓C 座4 0 8 室)梁俊(收稿日期:2 0 0 7 1 2 3)修稿日期:2 0 0 7 2 2 5)P L C 应用2 0 0 例11O 元本(免邮资)汇至嵌入式系统应用精选2 0 0 例110 元本(免邮资)汇至地址:北京海淀区皂君庙1 4 号院鑫雅苑6 号楼6 0 1 室微计算机信息杂志收邮编:1 0 0 0 8 1电话:0 1 2 1 3 2 4 3 60 1 0-6 2 1 9 2
36、6 1 6(T F)一6 4 3 6 0 元,年邮局订阅号:8 2 9 4 6 万方数据基于PXA255的ARM Linux操作系统移植基于PXA255的ARM Linux操作系统移植作者:王治强,黄樟钦,侯义斌,方林波,WANG ZHIQIANG,HUANG ZHANGQIN,HOU YIBIN,FANG LINBO作者单位:王治强,WANG ZHIQIANG(100022,北京,北京工业大学计算机学院),黄樟钦,侯义斌,方林波,HUANG ZHANGQIN,HOU YIBIN,FANG LINBO(北京工业大学嵌入式软件与系统研究所)刊名:微计算机信息英文刊名:CONTROL&AUTOMATION年,卷(期):2007,23(8)参考文献(4条)参考文献(4条)1.CSB226 Block Diagram 20042.毛德操;胡希明 嵌入式系统采用公开源代码和StrongARM/XScale处理器 20033.Jonathan Corbet;GregKroah-Hartman;AlessandroRubini LinuxDevice Driver 20054.许先斌;熊慧君;李渊;杨芬 基于ARM9的嵌入式Linux开发流程的研究期刊论文-微计算机信息 2006(11)本文链接:http:/