嵌入式系统的U-Boot移植分析.pdf

上传人:asd****56 文档编号:70339528 上传时间:2023-01-19 格式:PDF 页数:4 大小:215.29KB
返回 下载 相关 举报
嵌入式系统的U-Boot移植分析.pdf_第1页
第1页 / 共4页
嵌入式系统的U-Boot移植分析.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《嵌入式系统的U-Boot移植分析.pdf》由会员分享,可在线阅读,更多相关《嵌入式系统的U-Boot移植分析.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 3 4卷第 2期 中国测试技术 2 0 0 8 年 3 月 C H I N A M E A S u R E ME N TT E S T I N G T E C HN O L O G Y V o L 3 4 No 2 Ma t 2 0 o 8 嵌入式系统的 U B o o t 移植分析 朱博 孙运 强(中北大学信息与通信工程学院,山西 太原 0 3 0 0 5 1)摘 要:U B o o t 软件是一款功能强大的嵌入式系统 B o o d o a d e r 开发工具,B oot l o a d e r 用来在启动时引导嵌入式系统,是进行嵌入式系统开发的基础。以 U P N E T A R

2、M3 0 0 0开发板为基础,结合移植的实践过程,分析了U B oot 移植到三 星$3 C 4 4 B 0 微处理器的详细操作。实验结果表明,移植的U B o o t 可以在目标板上成功运行。通过它可以与主机通过 串口通信,查看 目标板内存,进行操作系统内核及文件系统的烧写等。关键词:B o o fl o a d e r;U B o o t;嵌入式系统;移植;$3 C 4 4 B 0 中图分类号:T P 3 1 1 5 4;T P 3 1 1 5 2 文献标识码:A 文章编号:1 6 7 2-4 9 8 4(2 0 0 8)0 2 0 0 5 7 0 4 U-Bo o t t r an s

3、pl a nt a t i o n an a l ys e s f o r e mbe d de d s y s t e m Z HU Bo,S UN Yu n-q i a n g (S c h ool o f I n f o r ma ti o n a n d C o mm u n i c a ti o n E n g i n e e ri n g,N o a h U n i v e r s i t y o f C h i n a,T a i y u a n 0 3 0 0 5 1,C h i n a)Ab s t r a c t:U Bo o t s o f t w a r e wa s

4、i n t r o d u c e d fi r s tl y I t i s a p o we r f u l d e v e l o p i n g i n s t r u me n t o f B oo fl o a d e r i n e mb e d d e d s y s t e m An d B oo t l o a d e r i s u s e d f o r l o a d i n g t h e e mb e d d e d s y s t e m w h e n t h e s y s t e m i s s t a r t e d u p a n d i t i s

5、the fou n d a ti o n for d e v e l o p i n g e mb e d d e d s y s t e mT h e n,t a k i n g the up_NE T ARM3 0 0 0 d e v e l o p i n g b o a r d a s b a s i s,d e t a i l p r o c e d u r e s for tr a n s p l a n t i n g U Boot t o S a ms u n g S 3 C A t 4 B 0 mi c r o p r o c e s s o r we l-e a n a l

6、 y z e d wi th c o mb i n i n g t l l e p r a c ti c a l t r a n s p l a n t p r o c e s s T h e e x p e rime n t a l r e s u l ts i n d i c a t e t h a t t h e t r a n s p l a n t e d U-Bo o t c a n ru n o n the t a r g e t bo a r d s u c c e s s f u l l y I t c a n c o mmu n i c a t e wi th h o s

7、t b y s e r i a l p o rt,wa t c h t h e me mo r y o n tar g e t bo a r d,a n d wr i t e t h e k e r n e l o f o p e r a t i o n s y s t e m a n d fi l e s y s t e m Ke y wo r d s:B oo fl o a d e r;U Boo t;E mb e d d e d s y s t e m;T r a n s p l a n t a t i o n;$3 C 4 4 B 0 1 引 言 嵌入式系统是指用于执行独立功能的专用计

8、算 机系统。它以应用为中心,以微电子技术、控制技术、计算机技术和通信技术为基础,强调硬件软件的协 同性与整合性,软件与硬件可剪裁,以满足系统对功 能、成本、体积和功耗等要求。嵌入式技术是现今研 究应用的热点,广泛用于军事 国防、消费电子和工业 生产之 中。B o o t l o a d e r 是一 种引导加 载程序,是 系统加 电 后运行 的第一段软件代码。通过这段代码,我们可 以初始化 硬件设 备、建立 内存 空间的映射 图,从 而 将系统的软硬件环境带到一个合适的状态,以便 为最终调用操作系统内核准备好正确的环境。通 常,B o o t l o a d e r 是依赖于硬件而实现的,不同

9、的硬件 平台对应着不同的 B o o t l o a d e r,特别是在嵌入式系统 中更是如此。收稿 日期:2 0 0 7 0 8 2 3:收 到修 改稿 日期:2 0 0 7 1 1-0 9 作者简介:朱博(1 9 8 3 一),男,山东德州人,硕士研究生,专 业方向为嵌入式软件、嵌入式 L i n u x系统。2 U B o o t 简介 U B o o t 是由德国工程师 Wo lf g a n g D e n k 开发,遵循 G P L条款的开放源代码项 目,支持的处理器 构架有 P o w e r P C、A R M、M I P S、x 8 6等,支持 的操 作 系统有 L in

10、u x,V x Wo r k s 等,它专门用来开发嵌入式 系统的 B o o d o a d e r。U b o o t 功 能强大,可 以用来 实 现系统加载、内存操作、设备驱动、上电自检和交 互命令等。2 1 U B o o t目录结 构 U B o o t的源 代 码 可 以在 下 面 地 址 f t D:ti p d e n x d e p u b u b o o t 下载到,最新 版本 为 1 1 6。与 L i n u x内核源代码相似,它的源代码也是 b z i p 2 的压 缩格式,解压后其 目录结构如表 1 所示。2 2 U B o o t 启动流程 U B o o t 的

11、启动过程主要分 为两个 阶段,即 s t a g e 1和 s t a g e 2。s ta g e l 用汇编语言编写,通常是与 C P U的体系 结构有关,其代码在 c p u s 3 c 4 4 b 0 s t a r t S中实现,它 完成的主要操作有:维普资讯 http:/ 5 8 中国测试技术 2 0 0 8 年 3 月 表 l U B o o t 目录结构 目录文件内容 C pu Dr i v e I n c l u d e 与 目标板相 关文件,如 S D R AM,F L A S H等板上设备 独 立 于 处理 器 体 系 结构 的 代 码 与处理 器相关联的文件。包含 中断

12、。啐 口。以及 一些与处 理 器工作状 态有关的初始化操作 通 用驱动程序。如 网络、na s h等 头文件 c o n f i g目录下为和具体 目标板相关联 的一 些宏 定义,如 S DR A M,F L A S H 的起始地址、大小等。该 目录是 移植过程 中需要 经常改动的地 方 Li b_x x x 处理器体 系相关的文件 如 l i k _ p p e。l i b a r m 等 N e t 轰 晕 络 功 能 相 关 的 文 件,如 b o o tp 协 议 n f s ,fi tp 协 R t c R T C驱动程序 D i s k d i s k驱 动 的 分 区 处理 代

13、码 F s 支持文件 系统的相关文件 T o o l s 用于创建 U B o o t 的 S-r e c o r d和 b i n文件的工具 Do e 说 明 文 档(1)定义入 口;(2)设置异常向量;(3)设置 C P U的速度、时钟频率及 中断控制寄 存器;(4)初始化内存控制器;(5)将 R 0 M中的程序复制到 R A M中;(6)初始化堆栈;(7)转到 R A M 中执行,准备执行 s ta g e 2的 C 代码。s t a g e 2为 C语言编写,用来加载操作系统内核,具有可读性和可移植性,是 由 l i b _ a r m b o a r d c中的 s t a a r

14、mb o o t 函数来实现,该函数主要完成以下操作:(1)调用系列的初始化函数;(2)初始化 F l a s h 设备;(3)初始化系统内存分配函数;(4)目标系统有 NA N D fl a s h,则进行初始化:(5)初始化显示设备:(6)初始化相关网络设备;(7)进入命令模式,可以完成系统内核的烧写或 加载。3 目标板硬件配置 本文介绍的是移植 U B o o t 到 U P-N E T AR M3 0 0 0 开发板 上的方法,目标板采用 p,c L i n u x 操作 系统。U P N E T A R M 3 0 0 0 是由博创公司生产的嵌入式教学 科研实验系统,它基于 A R

15、M 7 T D M I 架构的三星$3 C 4 4 B 0微处理器。U P N E T A R M3 0 0 0开发板由核心模块和扩展模 块组成:核心模块:(1)基于 A R M 7 T D M I 架构的$3 C 4 4 B 0,工作频 率 6 0 MH z (2)2 MB N O R F l a s h A M2 9 L V1 6 0 D做 为引导 R0M(3)8 MB S D R A M H Y 5 7 V 6 4 1 6 2 O HG T 扩展模块:(1)1 6 MB N AN D F l a s h K 9 F 2 8 O 8 U O C (2)两个 R S 一 2 3 2接 口,一

16、个 U S B接 口 (3)1 4针和 2 O针 J T AG调试接 口 (4)基于 R T L 8 0 1 9 芯片的 1 0 M以太网接 口(5)3 2 O$2 4 O s T N彩色 L C D和触摸屏(6)1 7键键盘(7)8 个共 阴极 L E D (8)A D、D A等模块 目 标板上的存储分配地址为:N O R F l a s h地址:N A N D F l a s h地址:0 x O 2 0 o )O o o 一 0 x 0 3 S D R A M地 址:0 x 0 e 0 0 0 0 0 0-0 x 0 c 8 0 0 0 0 0 4 U B o o t 移植方法 在U B

17、o o t 移植操作开始前,需要进行移植条件 分析。首先对要移植的 目标板进行硬件分析,判定是 否满足移植条件。根据 目标板上 C P U、F l a s h、S D R A M 及其他外设的情况,在 b o a r d目录中,找出与目 标板 为相同或相同系列微处理器的开发板,以便在移植过 程中进行参考。根据对 U P N E T A R M 3 0 0 0 的硬件配 置进行分析,选定同样基于$3 C 4 4 B 0微处理器的 B 2 板做为参考对象,其相关文件在 b o a r d d a v e B 2目录 下。完成了上述准备工作,就可以开始进行 U B o o t 的移植,下文介绍移植过

18、程中的具体操作。4 1 建立 交叉编 译环境 在网上下载到U B o o t 1 1 6 的源代码后,要生 成可下载到目标板上的二进制可执行文件,需要在 主机上建立交叉编译环境。移植过程中,主机使用 L i n u x 操作系统,版本为 F C 5。交叉编译工具使用 U P N E T A R M 3 0 0 0开发板光盘中提供的 a r m e lf t o o l s 一 2 9 5 3 ta r b z 2,解压缩后可直接使用。为了验证交叉编译环境是否能有效编译 U B o o t,可以先对参考对象 B 2 板进行编译。编译前先修改 u b o o t 一 1 1 6目录下的 M a k

19、 e fi l e 文件,U B o o t 默认 的a r ln 交叉编译工具是 a r ln l i n u x t o o l s,这里我们采 用 的是 a i T n e l f-t o o l s,因此需要修改 Ma k e fi l e中相 关 的定义为:i f e q($(A RC H),a l l r 1)C R0S S C OMP I L E=a r m e l f-e n d i f 一 一 C 维普资讯 http:/ 第 3 4卷第 2期 朱博等:嵌入式系统的 U B o o t 移植分析 5 9 修改完毕进行编译:#c d u bo o t 一1 1 6#ma k e

20、d i s t c l e a n#ma k e B 2_e o n f i g#ma k e 如果没有错误的话应该可 以在 u b o o t 一 1 1 6目 录下生成 u b o o t b i n文件,这说 明交叉编译环境配 置正确,能够成功的编译出运行于目标板上的二进 制可执行文件。完成了这一步我们就可以找出 u b o o t 一 1 1 6目录下具体要修改的文件,根据目标板硬 件配置进行具体的移植。4 2 U B o o t 移植 中相关 的文件 选定了参考对象 B 2 板,移植过程中需要修改 的主要有如下一些文件:(1)i n c l u d e c o n fi g s B

21、2 h (2)b o a r d d a v e B 2 B 2 C (3)b o a r d d a v e B 2 fl a s h C (4)b o a r d d a v e B 2 l o w l e v e l _ i n i t s (5)c p u s 3 c 4 4 b 0 s t a r t s (6)c p u s 3 c 4 4 b 0 s e r i a 1 C 4 3 修 改 要点 4 3 1 i n c l u d e c o n fig s B2 h 这个文件是关于 目标板配置的一些宏定义,包 括微处理器的工作频率、串口波特率、F l a s h 地址及 容量、

22、S D R A M地址及容量和以太 网芯片的设置等。我们参考 B 2板 的头文件 i n c l u d e c o n fi g s B 2 h,在 i n c l u d e c o n fi g s目录下建立新的头文件。c d u-b o o t-1 1 6 i n c l u d e c o n fig s c p B2 h u p_n e t a r m3 0 00 h 在 u p _ n e t a r m 3 0 0 0 h这个文件 中主要进行 如下 一些修改:#d e fin e CONFI G u p_n e t a r m3 0 0 0 1 定义目标板名称#d e fin

23、e CONFI G$3C4 4B0_CLOCK_S PEED 6 0 定义微处理器工作频率#d e fi n e C ONF I G B AUDR AT E 1 1 5 2 0 0 定义 串口波特率#d e fin e P HYS_S DRAM 1S I ZE O x O 0 8 00 0 0 0 定义 S D RA M容量为 8 MB#d e fin e P HYS_F LA S H_S I Z E 0 x 0 0 2 0 0 0 0 0 定义 Fla s h容量为 2 MB#d e fin e CONF I G DRI VER_RTL8 01 9 定义 以太 网芯片#d e fin e C

24、ONn GRTL8 01 9 BASE 0 x 0a(I()()(1(定义以太网芯片的基地址 文件中的其它宏定义可以根据具体需要进行修改。4 3 2 b o a r d d a v e B 2目录下 的文件 首 先 复 制 B 2板 的相 关 文 件 b o a r d d a v e到 bo a r du p_n e t,并重命名相关文件。#c d u b o o t 一1 1 6#c d b o a r d#c p-r d a v e u p_net#c d u p_net#mv B2 u p_n e t a r m3 00 0#c d u p_n e t a r m3 0 00#mv B

25、2 C u p_n e t a r m3 0 0 0 C 这 样 b o ard u p n e ff u p _ n e t a r m 3 0 0 0目录下 包含 u p_ n e t a r m3 0 0 0 C、fla s h C、l o wl e v e li n i t s 等文件。然后 修改 b o ard u p _ n e t目录下的 Ma k e fi l e 文件,该文件 告诉编译器如何进行编译,所以需要替换文件中的 B 2为 u p _ n e t a r m 3 0 0 0。其它几个文件的作用及修改要点如下:(1)u p _ n e t a r m 3 0 0 0 C

26、,该文件主要包括两部分:一是微处理器各个 I O口的初始化,二就是 S D R A M 的驱动程序及初始化。(2)fl a s h C,该文件是 F l a s h的驱动程序,本文涉及 的 Fla s h为 AM2 9 L V1 6 0 D,它是 2 MB的 N O R Fla s h。该文件可参照 Fla s h 芯片的数据手册进行修改。(3)l o w l e v e l _ i n i t s 该文件是汇编程序,包括 S D R A M的工作参数设置以及处理器内存控制器的 初始化。本文 S D R A M参数的设置需要根据 S A R A M 芯片的数据手册进行设置。4 3 3 e p

27、u s 3 e 4 4 b 0目录下的文件 该 目录下包括 s t a r t s 和 s e r i a 1 C 两个文件,下面 对这两个文件分别进行介绍。(1)s t a r t s 是 U B o o t 启动时的入口代码,该文 件执行流程包括处理器初始化,调用内存配置函数(在 l o w l e v e l i n i t s中定义),然后判断 U B o o t 是否 从 Ha s h运行,如果是,就把 U B o o t 代码 拷贝到 T E X T B A S E定义的地方,然后转到 s t a r t _ a r m b o o t 函 数(该 函数在 l i b _ a r

28、m b o ard C中定义)。完成 的主要 工作有,禁止看门狗、禁止中断、设置微处理器工作 频率、设置 P L L、设置中断向量等。目 标板的微处理器工作频率为 6 0 M H z,所以需 要修改以下代码:#i f CONF I G_S 3C4 4B0_CLOCK_SP EED=6 0 l d r r O,=(M D I V 1 2)+(P _ D I V 4)+S D I V)维普资讯 http:/ 中国测试技术 2 0 0 8年 3月#e l i f C ONF I G_S3 C4 4B0_CL OCl P EE D=7 5 l dr r O。=Ox 61 0 c1 *B2:Xt a I

29、=2 0MHz Fc l k=7 5MHz#e l s e#e r r o r C ONF I G_S3 C4 4B0_C L OC K_S PEED u n de fi n e d#e n di f (2)s e r i a 1 C 文件主要完成串口驱动的初始化,串口波特率的设置由微处理器工作频率来决定,因 此分频因子 d i v i s o r 的计算要以u p _ n e ta r m 3 0 0 0 h中 定义的微处理器工作频率来计算,这样串口输出才 不至于出现错误。串口波特率分频因子公式为:d i v i s o r=(i n t)(MC L K b s p*1 6)+O 5 1 上

30、式 中 MC L K为微处理器工作 频率,b p s 为 串 口波特率。目 标板微处理器工作频率为 6 0 M H z,串口的波 特率为 1 1 5 2 0 0,通过计算得到分频因子为 3 2,因此 需要修改以下代码。c a s e 1 1 5 2 0 o:#i f C ONF I G_S3 C4 4B0_C L OC K_S PEED=6 0 di v i s o r=3 2;样 e l i f C ONF I G_S 3C4 4 B0_C L OCK_SP EED=75 di v i s o r=4 0;#e l s e#e r r o r C ONF I G_S3 C4 4 B0_CL

31、OCK_S PEED u n d e fin e d#e nd i f 4 4 U B o o t 的编译 修改完上述文件,U B o o t 的移植基本完成,为 了验证修改后的 U B o o t 能否成功运行需要编译生 成可在 目标板上运行的二进制可执行文件。前面我 们已经用交叉编译工具对参考对象 B 2板进行 了编 译,现在来编译修改后的u p _ n e t a r m 3 0 0 0目 标板。首 先要 修改 u b o 0 t 一 1 1 6目录下 的 Ma k e f i l e 文件,可 以仿照 B 2 板部分添加如下的语句。u p _ ne t a r m3 0 0 0_c o

32、 n f i g:un c o n f i g$(MKC O N F I G)$(:一 c o n f i g=)a D B s 3 c 4 4 b 0 up _ ne t a r m3 0 0 0 u p_net 然后就可以进行进行编译 了:#ma k e d i s t c l e a n#ma k e up_n e t a r m3 0 0 0_c o n f i g#ma k e 编译完成后,可以将生成的 u-b o o t b i n 文件用 目 标板提供的烧写工具 U a r m J t a g 烧写到 u p _ n e t a r m 3 0 0 0 目标板上从地址 O x 0

33、 开始的 F l a s h中。烧写完毕后 重启 目标板,可以在超级终端中看到 U B o o t 的提示 符,5 S 后 U B o o t 将 自动加载操作系统 内核及文件 系统。若按下主机键盘任意键,则进入 U B o o t 的命 令模式,可以参照有关 U B o o t 命令 的资料对 目标板 进行相关操作。5 结束 语 在嵌入式系统中B o o t l o a d e r 使得硬件和软件得 以沟通0 B o o t l o a d e r 是嵌入式软件开发的第一步 完成 之后就可以在其基础上进行操作系统移植和应用软 件的开发。U-B o o t 是一款功能强大的 B o o t l

34、 O a d e r 开发 工具。本文分析了 U B o o t 在基于 s 3 C 4 4 B 0目标板 E 的移植过程,移植完成的 U B o o t 已经可以在目标板 上成功运行。通过它可以与主机通过串口通信,查看 目 标板内存,进行操作系统内核及文件系统的烧写 等。在移植过程中,笔者遇到了一些困难,在查阅相关 资料和B B S 上多人探讨的帮助下完成了移植工作,也积累了 U B o o t 移植的一些经验。U B o o t 支持多种 处理器和开发板,不同的开发板其移植的原理和过程 是类似的,希望基于$3 C 4 4 B 0的分析也可对其它嵌 入式系统中U B o o t 的移植提供参

35、考。参考文献 1 郑灵翔 嵌入式系统设计与应用开发 M 北京:北京航空 航天大学出版社,2 0 0 6 ,一 2 张进,姜威,U-B o o t 的启动流程及移植 J 国外电子 元器件,2 0 0 5(5):1 1-1 4 3 王田苗 嵌入式系统设计与实例开发 M】北京:清华大学 出版社,2 0 0 3 4 雅默 构建嵌入式 L i n u x系统 M 北京:中国电力出版社,2 O 0 4 5 孙琼 嵌入式 L i n u x应用程序开发详解 M 北京:人民 邮电出版社,2 0 0 6 6 孙纪坤嵌入式 L i n u x 系统开发技术详解一 基于 A R M M I 北京:人民邮电出版社,2

36、 0 0 6 7 赵小朴,宋华,李莉 一种在 U B O O T中嵌入千兆网 络功能的方法【J 电子设计应用,2 0 0 7(1):1 0 8-1 1 0 8 李志刚,周西峰 U B oot 移植问题分析及应用实例【J 仪 器仪表用户,2 0 0 6(1 2):9 6 _ 9 7 9 熊整文,严朝军 基于 S 3 C 4 4 B O X开发板的 I C l i n u x 嵌入 式系统移植【J 电脑开发与应用,2 0 0 7(5):2 8 3 0 1 o 许信顺 嵌入式 L i n u x 应用编程 M 北京:机械工业出版 社,2 0 0 7 1 1 周立功A R M嵌入式 L i n u x系统构建与驱动开发范例【M 北京:北京航空航天大学出版社,2 0 0 6 1 2 何剑锋,李宏穆,庄阿龙 基于三星 S 3 C 4 4 B O x目标板在 I C l i n u x系统上的 B o o t l o a d e r M 石河子大学学报,2 0 0 6 (6):7 6 8 7 7 2 维普资讯 http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁