基于S3C2410的嵌入式Linux操作系统移植.pdf
-
资源ID:74661620
资源大小:301.19KB
全文页数:5页
- 资源格式: PDF
下载积分:15金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于S3C2410的嵌入式Linux操作系统移植.pdf
第6 期2 0 1 0 年1 2 月微处理机M 1 C R O P R O C E S S O R SN o 6D e e,2 0 1 0微机软件基于$3 C 2 4 1 0 的嵌入式L i n u x 操作系统移植向铸1,昊光敏1,李兰2(1 昆明理工大学理学院,昆明6 5 0 0 9 3;2 华南理工大学理学院,广州5 1 0 6 4 0)摘要:首先介绍了L i n u x 操作系统的内核目录结构,然后以采用R I S C 构架的3 2 位A R M 微控制器为例,详细介绍了将嵌入式L i n u x 操作系统移植到韩国三星公司生产的基于A R M 9 2 0 T 为内核的$3 C 2 4 1 0 芯g-上的过程。通过对L i n u x 内核体系结构的研究,进而分析出往新型硬件平台移植L i n u x 内核所需进行的工作,大大提高了操作系统的设计水平、缩短了开发时间,具有非常重要的应用价值。关键词:移植;嵌入式;A R M 微处理器;L i n u x 操作系统D O I 编码:1 0 3 9 6 9 j i s s n 1 0 0 2 2 2 7 9 2 0 1 0 0 6 0 1 4中图分类号:T P 3 6 8 2文献标识码:B文章编号:1 0 0 2-2 2 7 9(2 0 1 0)0 6-0 0 4 1 一0 4P o r t i n go fE m b e d d e dL i n u xE y s t e mb a s e dO nS 3 C 2 4 l OX I A N GZ h u l,W UG u a n g r a i n l,L I 2(1 F a c u l t yo f s c i e n c e,K u n m i n gU n i v e r s i t yo f S c i e n c ea n dT e c h n o l o g y,K u n m i n g6 5 0 0 9 3,C h i n a;2 F a c u l t yo f s c i e n c e,H u a n a nU n w e r s 讧y 矿S c i e n c ea n dT e c h n o l o g y,G u a n gz h o u5 1 0 6 4 0,C h i n a)A b s t r a c t:F i r s ti n t r o d u c e dt h ek e r n e ls t r u c t u r eo fl i n u xo p e r a t i n gs y s t e m,a n dt h e na d o p t e dt h eR I S Ca r c h i t e c t u r e3 2 一b i tA R Mm i c r o c o n t r o U e r sa s ae x a m p l e,d e s c r i b e dt h ep r o c e s so fp o r t i n gt h ee m b e d d e dl i n u xo p e r a t i n gs y s t e mt ot h eS o u t hK o r e a b a s e dS a m s u n gA R M 9 2 0 Tk e r n e l$3 C 2 4 1 0c h i pI nd e t a i l T or e s e a r c ht h ea r c h i t e c t u r eo fL i n t r xk e r n e la n da n a l y z et h ea m o u n to fe f f o r t sr e q u i r e dt op o r tL i n t t xk e r n e lt oan e wh a r d w a r e,i tw i l li m p r o v eO Sd e s i g n i n gt e c h n i q u ea n dr e d u c et h ec o s tg r e a t l y,i th a si m p o r t a n ta p p l i c a f i o nv a l u e s K e yw o r d s:P o r t i n g;E m b e d d e d;A R M;L i n u xl引言嵌入式系统具有可靠性高、实时性强、系统内核小和系统配置要求低等优点,在工业控制、信息家电、交通管理等领域得到了广泛的应用。而且随着处理器功能的日益强大,用户进行处理的程序也越来越复杂,传统的程序已经很难完成和维护,开发嵌入式操作系统已经是大势所趋。因此,移植操作系统成为了嵌入式系统设计中较为重要的一环,具有非常重要的市场价值。目前比较常用的嵌入式操作系统包括L i n u x,u C O S I I,W I N C E 等等。此次研究的是L i n u x 操作系统在A R M 9 平台上的移植过程。2L i n u x 系统内核的目录结构目前,L i n u x 内核的最新版本是2 6。和前期的2 4 内核相比,2 6 的内核有了较大的变化。但是主要模块还是没有改变的,L i n u x 内核可以分为进程调度,内存管理、文件系统、网络和进程间通信等5 个模块,这几个模块的功能可以参考陈莉君编著的深入分析内核源代码。L i n u x 内核的代码目录中,a r c h 存放的是与体系结构相关的代码,试验中使用的是其中的a l a n 目录。D o c u m e n t a t i o n 存放的是内核的所有开发文档。d r i v e l 8 存放的是驱动程序代码。f s 目录下包括了大量的文件系统的源代码。i n c l u d e 目录中同样包括了各种平台需要的头文件,比如I L r l n 平台需要的头文件就在a s m a r m 文件夹中。I n i t 是l i n u x 的m a i n c程序,通过这个比较简单的程序就可以理解l i n u x 的启动流程。I p c 内存放s y s t e m V 进程间通信的原语佳耋尊垒:窦篓(1 9 8 4:,男(土家族),湖北省恩施市,硕士研究生在读,主研方向:嵌入式系统。收稿日期:2 0 1 0 0 7 2 7。一万方数据4 2 微处理机2 0 1 0 钽实现,包括信号量、共享内存。K e r n e l 目录下存放的是除网络、文件系统、内存管理之外的所有其它基础设施。L i b 目录下包括一些通用支持函数,类似于标准C 的库函数。m m 文件夹的内容是与内存管理相关的代码。n e t 目录包含了套接字抽象和网络协议的实现。S c r i p t 目录存放许多脚本,主要用于配置内核,u s r 目录下存放的内容是与用户相关的文件,比如交叉编译环境就建立在该目录下面。不难看出,进行系统移植工作的重点在a r c h 目录下的文件夹下。3 交叉编译环境的建立【2J对嵌入式系统来讲,由于其硬件能力所限,不可能在嵌入式系统上安装编译器和连接器,然后在嵌入式系统上编写代码、编译并连接程序。所以就出现了交叉编译器(C R O S S c o m p i l e r)。简单的说交叉编译环境就是在一个平台上生成可以在另一个平台上执行的代码的编译环境。在本次移植过程中安装的宿主机操作系统是r e d h a tl i n u x 9 0。主要用到的交叉编译环境是a r m l i n u x g e e 一2 9 5 3 和a r m l i n u x g c c 一3 4 1。以建立a r m l i n u x g c c 一3 4 1 为例,说明如何建立交叉编译环境。下载a r I n l i n u x g c c 一3 4 1 t a r b z 2 到任意目录下,然后进入该目录使用解压命令:#t a r j x 订a r m l i n u x g c c-3 4 1 t a r b z 2解压过程需要一段时间,解压后的文件形成了u s r l o c a l 文件夹,进入该文件夹,将a l m 文件夹拷贝到宿主老E u s r l o c a l 下,现在交叉编译程序集都在u s r l o c a l a r m 3 4 1 b i n 下面了,接下来是修改环境变量:#v i e t c b a s h b a s h r c在最后加上:e x p o r tP A T H=$P A T H:u s r l o-c a l a n n 3 4 1 b i n如果要立即使新的环境变量生效,不用重启电脑,直接使用命令:#s o u r c e r o o t b a s h r c,此时,a r ml i n u x g c c 一3 4 1 交叉编译环境就建立起来了。交叉编译环境a f r o l i n u x g c c 一2 9 5 3 的建立与上面类似,这里就不重复叙述了。存空间的映射等,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统准备好正确的环境。4 1B o o t L o a d e r 的生成过程4 1 1 修改M a l k e f i l e 文件系统使用的B o o t L o a d e r 是V I V I,下载V I 的源代码,解压后修改顶层目录下的M a l k e f i l e,指定交叉编译:A R C H=a r mL I N U X _ I N C L U D E D I R=u s r l o c a l a n n 2 9 5 3 i n c l u d eC R O S S C O M P I L E=m r l o c a l a r m 2 9 5 3 b i n a n n l i n u x A R M!G I C C U B s=u s r l o c a l a n n 2 9 5 3 b i n g c cl i b a r m l i n u x 2 9 5 34 1 2 修i 次a r c h s 3 c P M l 0 s m d k C 文件按照内核和开发板的实际情况设置N a n d 分区:m t d _ p a r t i t i o n td e f a u l t _ m t d p a r t i t i o n s =宰s t n l c tm t d _ p a r t i t i o n _ tw 鹊d e f m e da ti n c l u d e p r i v _ d a t a h奉n a n 圮:”v i v i”,o f f s e t:O x O,s i z e:O x 0 0 1 0 0 0 0 0,”p a r a m”,o f f s e t:O x 0 0 1 0 0 0 0 0,s i z e:”U q e l ”,o f f s e t:O x 0 2 d 0 0 0 0 0,s i z e:O x O O f l X l)0 0,;使用m a k e 命令编译链接生成V I。5L i n u x 内核移植3】4B o o t L o a d e r5 1L i n t r x 内核的修改(1)设置目标平台和指定交叉编译器在嵌入式系统中,B o o t L o a d e r 的作用与P C 机上的B I O S 类似,是系统上电后最先执行的代码,通过B o o t l L o a d e r 可以完成对系统板上的主要部件如C P U,S D R A M,F L A S H,串行口等进行初始化,分配内在最上层的根目录M s k e f d e 文件中,首先要指定所移植的硬件平台,以及所使用的交叉编译器。改动如下:A R C H=a r m一一一一一一万方数据6 期向铸等:基于$3 C 2 4 1 0 的嵌入式I A n u x 操作系统移植4 3 C R O S S C O M P I L E=u s r l o c a l a n n 3 4 1 b i n a 蛐一l i n u x 一(2)添加头文件在a r c h a r m n m c h s 3 c 2 4 1 0 d e v s c 中添加头文件:#i n c l u d e#i n c l u d e#i n c l u d e(3)建立N a n dF l a s h 分区表将s t a t i cs t r u e tm t dp a r t i t i o np a r t i t i o n i n f o 中的分区和V I 中的分区分成一样大小。(4)加人N a n dF l a s h 分区s t r u e ts 3 c 2 4 1 0 _ n a n d _ s e th a n d s e t=h r _ p a r t i t i o n s:5,?p a r t i t i o m:p a r t i t i o n _ i n f o,o(5)建立芯片支持s t r u c ts 3 e 2 4 1 0 _ p l a f f o r m _ n a n ds u p e r l p p l a f f o r m=t a e l s:0,t w r p h 0:3 0,t w r p h l:0,s e t s:&h a n d s e t,n r s e t s:l,o(6)加入N a n dF l a s h 芯片支持到N a n dF l a s h 驱动在s 3 c _ d e v i c e _ n a n d 中增加d e v=P l a t f o r m _ d a t a=&s u p e r l p p l a f f o r r n 。(7)指定启动时初始化在a r c h a n n m a c h s 3 c 2 4 1 0 m a c h s m d k 2 4 1 0 c 中的i n i t d a t a 部分增加s 3 e _ d e v i c e _ n a n do(8)禁止F l a s hE C C 校验修改d r i v e r s m t d n a n d s 3 c 2 4 1 0 c,在s 3 c P A l 0 一h a n d i n i t c h i p 函数里将N A N D E C C s o v r 改为N A N D _ _ E C C _ N O N E 即可。5 2L i n u x 内核的配置编译H 编译内核之前首先要配置内核,配置内核的命令包括:(1)m a k ec o n _ f i g这种方法将配置选项以命令行的形式列出,用户可以对选项逐个进行配置。配置完成后,将配置结果保存在e o n f i g 文件中。如果已经存在有c o n f i g的配置文件,那么就会以该文件中的配置选项作为默认配置设置。(2)m a k eo l d c o n t i g对已有的e o n f i g 文件进行更改,但只能对以前没有配置过的选项进行设置,而m a k e c o n _ f i g 可以对所有的配置选项再重新进行设置。(3)m a k em e n u c o n f i g与m a k ee o n f i g 类似,不过这种方法的显示方式是以菜单模式进行显示的。(4)m a k ex c o n f i g用于XW i n d o w 下的配置,将配置选项以图形菜单的形式显示出来。在进行相应配置的时候,有三种方式选择:Y:将该功能编译进内核;N:不将该功能编译进内核;M:将该功能编译成可译载需要时动态插入到内核的模块。m a k ex e o n f i g 使用鼠标选择对应的选项,m a k em e n u e o n f i g 使用空格选择相应的选项,每个选项前的括号可以是 、和()。相对于L i n u x 2 4 内核,L i n u x 2 6 内核编译过程要简单一些,不再需要m a k ed e p;m a k ez l m a g e:m a k em o d u l e s 命令。配置好内核后,只要执行m a k e 就可以编译内核和模块。仍然可以使用m a k ez I m a g e 或m a k em o d u l e s 命令对内核或模块单独进行编译,因不再需要m a k ed e p,并且对该命令已不再支持了。6 根文件系统的制作瞪】根文件系统通常是一个存放系统运行时必要文件(例如系统配置文件和设备文件等)和存储数据文件的外部设备。在L i n u x 操作系统中,内核代码映像文件(b o o t i m a g e)保存在根文件系统(r o o tf s)中。系统引导启动程序会从这个根文件系统设备上把内核执行代码加载到内存中去运行。可见根文件系统是L i n u x 操作系统的重要组成部分。利用b u s y b o x l 9 2 制作c r a m f s 的具体过程如下(其中交叉编译器环境为a r m l i n u x 一3 4 1):(1)修改M a k e f i l eA R C H:=a r mC R O S S C O M P I L E=u s r l o c a l a n n 3 4 1 b i n a n n l i n u x 一(2)本文采用静态编译,需要注释掉a p p l e t s a p-p l e t s c 中的警告信息。这些警告信息如下:#w a m i n gS t a t i cl i n k i n ga g a i 璐tg l i b ep r o d u c e 8b t l g 盯e x e c u t a b l e s#w a m i n g(g l i b cd o e sn o tc o p ew e l lw i t hl d 一一g c s e c t i o n s)#w a r n i n gN o t et h a t 曲b ci su n s u i t a b l ef o rs t a t i cl i n k-i n ga n y w a y#w a r n i n gI fy o us t i l lw a n tt od oi t,r e m o v e 一珊,万方数据4 4 微处理机2 0 1 0 盔一一g c s e c t i o n s#w a r n i n gf r o m I i p 乜奶舳【l l【a n dl e n m o v et h i s 慨l m-i n g#e r r o rA b o r t i l l gc o m p i l a t i o n(3)配置b u s y b o x。配置时注意要选择静态编译,s h e H 命令为a s h,选择支持l i n u x 2 6 1 4 1 内核。(4)编译b u s y b o x 并修改其属性。e h m o d4 7 5 5 _ i n s t a l l b i n b u s y b o x(5)创建c r a m f s 所需的一些目录,假定这些目录均创建在t o o 啦目录下。m k d i r o p t r o o t f sc d o p t r o o f f sm k d i rb i nd e ve t ch o m el i bm n tp r o cs b i ns y st m pV A I L u s rm k d i re t e i n i t d(6)准备启动所需的文件:l i n u x r c、r c$、i n i t t a b、f s t a b 四个文件。(7)创建节点c o n s o l e、n u l l。注意这里要以r o o t身份创建。m k n o d m6 0 0d e v c o n s o l eC5lm k n o d m 6 6 6d e v n u Uc13(8)将b u s y b o x 一1 9 2 中一i n s t a l l 目录下除l i n u x r c 外全部拷贝到r o o t f s 目录下。(9)复制常用的l i b 文件。交叉编译环境l i b 下拷贝过来精简一下即可。(1 0)创建c r a m f s。在r o o t f s 上一级目录下执行:m k c r a m f sr o o f f sr o o t c r a m f s至此c r a m f s 根文件系统创建完毕。7内核及文件系统的下载利用V I V I 通过超级终端重新下载V I,内核和根文件系统,在W i n d o w s 下启动超级终端,或者L i n u x 下启动M i n i c o m 设置其为(1 1 5 2 0 0,8 位数据,l 位停止位,无奇偶校验),用串1 2 1 线连接实验系统和P C 机的串口。系统上电后,打开命令提示符,进入所在的文件夹,使用命令:s j i 2 4 1 0-s f:v i v i然后选择合适的参数,完成V I 的烧写工作。之后在超级终端界面上,在V l V I 命令行下设置好I P后输入如下指令:卸f l a s hk e r n e lz I m a g e内核烧完后继续输入指令:邮f l a s hr o o tr o o t c m m f s至此,内核以及根文件系统全部移植结束。8总结操作系统移植是一项非常复杂的工作,涉及的内容很多,它要求科研人员不仅要对目标板的结构非常熟悉,而且要对l i n u x 的内核有充分的了解。虽然l i n u x 的移植不是新技术,但是由于l i n u x 的内核在不断升级完善,目标板的结构也在不断更新,比如,以前目标板的N a n dF l a s h 是3 2 M,现在达到6 4 M,在分区时要注意其大小。移植后的L i n u x 系统在以A R M 9 2 0 T 为内核的$3 C 2 4 1 0 开发板上运行稳定,性能良好,满足实际应用的要求。同时本次l i n u x 的移植过程对L i n u x 操作系统在其他处理器上的移植也具有很好的参考意义。参考文献:1 陈莉君深入理解L i n u x 内核 M 北京:中国电力出版社,2 0 0 1【2 Y A G H M O U RK 构建嵌入式L i n u x 系统 M 韩存兵,等译北京:中国电力出版社,2 0 0 9【3 杜春雷A I 瑚体系结构与编程 M 北京:清华大学出版社,2 0 0 7 4 孙琼嵌入式L i n u x 应用程序开发详解 M 北京:人民邮电出版社。2 0 0 6 5 文字波,杨恢东构建和移植嵌入式L i n u x 的根文件系统 J 微计算机信息,2 0 i o(2):6 5 6 7(上接第4 0 页)M S P 4 3 0 和M C S 一5 l 单片机各有特点:体积小巧、片内资源丰富的M S P 4 3 0 单片机会给用户带来使用上的困难;而结构简单、使用方便的M C S 一5 1单片机会因片内资源不足而给用户带来烦恼。因而,要实现单片机与P C 机之间的串行通讯,用户应根据自身的基础来选择M C S 一5 1 单片机还是M S P 4 3 0 单片机。参考文献:【1 赵全利,肖兴达单片机原理及应用教程(第2 版)M 北京:机械工业出版社。2 0 0 7 2 3 张迎新,杜小平,樊桂花,等单片机初级教程一单片机基础 M 北京:北京航空航天大出版社,2 0 0 0 3 郭建勇,郭晓红I B M P C 微机与M C S 一5 1 单片机间的串行通讯 J 电力学报,1 9 9 8,1 3(3):2 2 3 2 2 8 4】魏小龙M S P 4 3 0 系列单片机接口技术及系统设计实例 M 北京:北京航空航天大学出版社。2 0 0 2【5 胡大可M S P 4 3 0 系列F L A S H 型超低功耗1 6 位单片机 M 北京:北京航空航天大学出版社。2 0 0 1【6】佟宇,王彦华M S P 4 3 0 系列单片机的异步串行通讯应用 J 微处理机。2 0 0 4(2):4 4 4 6 7】赵迎生M C S 一5 1 单片机与P c 机串行通讯的实现 J 机床与液压,2 0 0 4(1):1 1 4 1 1 5 万方数据基于S3C2410的嵌入式Linux操作系统移植基于S3C2410的嵌入式Linux操作系统移植作者:向铸,吴光敏,李兰,XIANG Zhu,WU Guang-min,LI Lan作者单位:向铸,吴光敏,XIANG Zhu,WU Guang-min(昆明理工大学理学院,昆明,650093),李兰,LILan(华南理工大学理学院,广州,510640)刊名:微处理机英文刊名:MICROPROCESSORS年,卷(期):2010,31(6)本文链接:http:/