教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

嵌入式linux系统开发手册(2)

来源:网络收集 时间:2026-08-28
导读: 2.2 目标系统 目标系统就是我们的开发板,我们用的是自己开发的MPC860T开发板的一个最小系统。 一般的最小系统要包括以下几个方面: CPU肯定是要有的了; SDRAM/DRAM 最好32M或更大(反正这东西便宜); FLASH或者

2.2 目标系统

目标系统就是我们的开发板,我们用的是自己开发的MPC860T开发板的一个最小系统。 一般的最小系统要包括以下几个方面: CPU肯定是要有的了; SDRAM/DRAM 最好32M或更大(反正这东西便宜);

FLASH或者DOC:FLASH最好8M或更大,这样可以建立一个可读写的文件系统,DOC最大可以到100多MB,也是不错的选择。 以太网口,当然你不要也可以,从串口下载程序吧!

串口,这可是必须的! 我们的目标系统如下: CPU: MPC860T 80MHz SDRAM: 32MB FLASH: 8/16MB 网口: FEC 100Mb

串口: rs232 X 2

目标系统硬件没什么可以说的,很简单!这里提一下一个比较重要的问题,要做好整个系统的地址分配,这在后面会用到!

2.3 软件包获取

最后要获取相关的软件开发包,假设你什么也没有,那么去DENX的FTP看看,基本可以满足需要了: ftp.denx.de.

主要获取以下软件包:

某个版本的PPCBOOT/UBOOT源代码 ELDK(如果你有CDK,这就不用了) 某个版本的LINUX KERNEL

下载这些软件包之后在某个目录下解压,以我们的为例: 下载u-boot0.2.0.tar.bz2到目录/opt; 解压: #cd /opt #bzip2 –cd u-boot0.2.0 | tar xf – 解压完成之后会产生一个目录“u-boot-0.2.0”。 内核的解压和这差不多。

当然,在Internet上有很多可以获取这些代码的地方,这里不一一列举了,举几个网站的例子:

/ /

第三章 PPCBOOT/U-BOOT的移植

3.1 PPCBOOT/U-BOOT简介

ppcboot的前身是8XXROM和FADSROM,其最高版本为PPCBOOT2.0,2.0版本以后名称就改为了U-BOOT,是由德国DENX软件中心依照GPL发布的公共软件,本手册我们结合所用的u-boot-0.2.0(其版本划分为 u-boot-*.*.*,分别为 version.subversion.patchlevel)来详细叙述整个的porting过程。我们所用的版本为u-boot-0.2.0,支持BOOTP,TFTP,SERIAL代码下载,后续版本可以引导OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks,LynxOS, pSOS, QNX内核映象,目前支持NetBSD,Linux,Vxworks和QNX;支持的目标CPU架构Alpha, ARM, Intel x86, IA64, MIPS, MIPS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit,目前支持PowerPC。详细的说明可以参见U-BOOT目录下的README文件。

3.2 U-BOOT源代码分析

经过漫长的准备工作,现在终于可以进行实质性的工作了!首先我们来分析一下U-BOOT的源代码分布,这样才可以做到“知己知彼,百战不殆”!首先列出它的源码树(图3),然后再解剖它。

3.2.1 与目标板相关的代码

目前U-BOOT支持大多数比较常见的目标板,象MOTOROLA的ADS和FADS板,一般我们设计的主板和这些主板都是大同小异,不会有太大的差别。源代码树中board/下的每个文件夹对应一个或几个主板,象/board/fads目录对应的就是FADS板和ADS板的源代码,一些主板上的资源例如SDRAM和FLASH的初始化代码就在这个文件夹中。

3.2.2 与CPU相关的代码 该版本的U-BOOT只支持PowerPC系列的主板,与CPU相关的代码未于源代码树下的CPU/下的各个目录当中,例如我们用的相关CPU的代码就位于/cpu/mpc8xx/文件夹中,其中start.S是U-BOOT的入口代码,用汇编语言写的,是整个代码的入口,serial.c是串口的初始化代码。相应的,目录/cpu/mpc8260/对应的就是8260CPU的相关代码。

3.2.3 头文件 头文件位于源码树下的include/下,其中各种主板的配置文件位于/include/configs/文件夹中,象FADS860T主板的配置文件为/include/configs/FADS860T.h;目录/include/asm-ppc是一些比较底层的头文件,编译时会根据不同的配置与/include/configs/asm建立一个符号链接。

3.2.4 公共代码 除了和主板,CPU特性相关的代码外,其他大部分都是公用的代码,位于/common/下面,象U-BOOT的命令解析代码/common/command.c,U-BOOT环境变量处理代码environment.c等都位于该目录下。还有一个公共的代码就是PowerPC系列的主板初始化代码也是公用的,位于/lib_ppc/board.c中,在完成CPU的初始化之后就会跳到这个文件中,而与主板相关代码的执行都是在这个文件中调用的。

图3 U-BOOT源代码树

3.3.5 网络传输代码

网络传输代码位于目录中的/net/下面,象arp.c ,bootp.c,eth.c,tftp.c等都在这里,BOOTP,TFTP,以太网初始化等功能的实现也是由这些代码完成的 3.3.6 Makefile文件

Makefile文件位于U-BOOT的根目录下,是整个编译的控制主文件,后面我们会讲到如何修改该文件以添加我们自己主板的编译控制。 3.3.7 关键的驱动程序文件

U-BOOT中几个比较关键的外设驱动代码包括串口的初始化,以太网口驱动,SDRAM初始化,FLASH初始化,以FADS板为例,分别位于:

串口: /cpu/mpc8xx/serial.c

SDRAM: /board/fads/fads.c FLASH: /board/fads/flash.c ETHERNET: /cpu/mpc8xx/scc.c

FAST ETHERNET: /cpu/mpc8xx/fec.c

在我们移植的过程中这些都是我们要修改和关注的代码。

3.3 移植步骤

好了,对U-BOOT的代码有了了解之后,下面我们就一步一步的在做一个可以在我们自己主板上跑的U-BOOT! 3.3.1 编译测试

在主机开发系统上进入U-BOOT的目录中,以我的系统为例(后面的命令皆以我的系统为例):#cd /opt/u-boot-0.2.0 , 在进行编译之前设置目标板配置,U-BOOT支持的主板种类在其目录中的README中可以查到,针对FADS860T主板: #make FADS860T_config 屏幕出现:

rm –f include/config.h include/config.mk Configuring for FADS860T board… 配置成功,然后运行命令: #make

进行编译,编译完毕产生目标代码u-boot.srec u-boot.bin u-boot,说明U-BOOT和交叉编译环境都可以正常使用,下面我们就可以放心的做我们自己的主板U-BOOT了,如果有错误出现,至少不用怀疑U-BOOT和交叉编译环境了(不是完完全全不用啊!!!)。 3.3.2 U-BOOT启动过程

从哪里入手呢?先看看它的启动过程待会就知道从哪里入手了!

CPU入口函数(FLASH中运行): /cpu/mpc8xx/start.S CPU初始化(FLASH中运行): /cpu/mpc8xx/cpu_init.c

主板初始化(FLASH中运行): /lib_ppc/board.c (调用串口初始化:/cpu/mpc8xx/serial.c, sdram初始化: /board/fads/fads.c)

主板初始化(RAM中运行): /lib_ppc/board.c (调用其它公共函数)

3. 3.3 添加自己的配置文件

参照Makefile文件,选择一个与自己目标板最为相近的一个主板,我们选 择FADS860T板,在Makefile文件中 FADS860T_config: unconfig

@./mkconfig $(@:_config=) ppc mpc8xx fads

后面添加:

SUMMER860T_config: unconfig

@./mkconfig $(@:_config=) ppc mpc8xx fads

其中ppc是CPU的架构, mpc8xx是CPU对应的目录,fads是主板对应的目录,也可以新建一个目录,然后指向新的目录。

Makefile修改完毕还要添加对应的头文件,SUMMER860T_config对应的头文件应该是SUMMER860T.h, 在/include/configs/下添加该文件,你可以将FADS860T拷贝一份,命名为SUMMER860T.h:

#cd /opt/u-boot-0.2.0/include/configs #cp FADS860T.h SUMMER860T.h 完成之后,可以测试一下你的 …… 此处隐藏:3813字,全部文档内容请下载后查看。喜欢就下载吧 ……

嵌入式linux系统开发手册(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/279279.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)