基于MPC8349控制计算机的UBoot移植
0 引言U-Boot (Universal Boot Loader),是在PPC Boot 的基础上,集成了ARM, XScale, x86,MIPS 等结构发展来的。作为Boot loader,其主要安装在嵌入式系统板上的ROM 中。 它主要用来初始化、检测系统硬件,以及下载、运行有关的应用代码。 在这篇论文中,采用的是开源的最新版本U-Boot 1.1.3。U-Boot 1.1.3 支持的CPU包括, MPC8xx, MPC5xx, MPC824x,MPC82xx, MPC83xx, MPC85xx, MPC74xx 等。U-Boot 之所以主要是因其支持很多文件类型。(1) 独立的应用程序:该程序直接在U-Boot 环境下执行,并且执行完毕后重新返回U-Boot 环境。(2) “Linux 操作系统Kernel 文件”: U-Boot 可以引导Linux 操作系统Kernel 文件在系统板上执行。在完成该引导过程后,必须通过重新启动CPU 才能再次进入U-Boot 环境。(3) “操作系统Ramdisk 文件”: U-Boot 可以引导加载Linux 操作系统Ramdisk 文件。该文件主要是作为系统板,启动时需要加载的文件系统。(4)“综合文件”: 该文件可以包括一种或几种U-Boot 所支持的文件。比如包括Linux 操作系统内核和启动时需要加载的ramdisk 文件系统。(5) “可执行文件”: 该文件主要由U-Boot 将其烧录到系统板的Flash 中。比如,n。(6) “脚本文件”: 该文件主要用在U-Boot 启动时利用脚本文件来设置具体的环境变量。1 U-Boot 工作原理U-Boot启动过程可以分成三个阶段。(1)执行start.S(cpu/mpc83xx/start.S)汇编程序,见图1.(2)执行U-Boot启动过程中的第一个C语言函数board.(lib_ppc/board.c),见图2。(3)系统进入主循环main_loop(common/main.c)延时等待处理用户命令或自动执行启动,见图3。
本文引用地址: U-Boot 的文件结构在U-boot 包含board, common, cpu, disk,doc, drivers, dtt, examples, fs, include 等文件。但是,针对具体的应用,只需要修改设定的与我们系统有关的代码。当我们的U-boot 编译成功后,必要的二进制文件将成为在u-boot-1.1.3 文件夹中。这些文件中,最重要的是。:定义基地址和CFLAGS。MAKEALL:用来定义所有支持的系统板以及U-Boot 源码。Makefile: U-Boot 编译时要用到的文件。Mkconfig:用来创建头文件并链接生成针对系统板的U-Boot的脚本。 n:U-Boot 编译成功后形成的二进制文件,可以烧录到系统板的flash 中。除了以上四个重要文件之后,在u-boot-1.1.3 目录下面还有一些重要的文件。(1)在u-boot-1.1.3/board/下,重要的文件包括。flash.c::定义针对flash 的命令。init.S:用来定义 TLBs 和LAWs。mpc8349.c: 针对mpc8349 的特殊代码。s:: 系统板的链接文件。(2)在u-boot-1.1.3/cpu/下, 主要的文件包括。start.c::U-Boot 启动时所要执行的第一个程序。spd_sdram.c:初始化和配置系统板的DDR。(3)在u-boot-1.1.3/include/configs/下, 主要的文件包括。
MPC8349.h:针对系统板的具体局宏定义。flash.h: 包含各种Flash 芯片的具体资料数据的定义。(4)在u-boot-1.1.3/include/lib_ppc/下, 重要的文件包括。
board.c: 系统板的初始化函数。(5)在u-boot-1.1.3/common/下, 重要的文件包括。main.c: 整个U-Boot 启动时的主循环函数。4 为MPC8349 制作合适的U-BootA 针对系统板的 U-Boot 修改在控制计算机的硬件系统包括两片8M Flash, 128M SDRAM, 6 GBE 和 2 FCC 等。为了让U-Boot 在该系统上正确的运行 ,应该针对该系统设置一些特殊的结构参数选择。(1)编辑 “Makefile” and “MAKEALL”(2)添加新的代码到针对系统板的文件夹中。在此过程中,我们应该创建一个新的目录用来存放系统的特殊代码。我们可以添加系统板需要的任何文件。在系统板的目录,有些文件是必须有的。u-boot-1.1.3/board/mpc8349/mpc8349.c,u-boot-1.1.3/board/mpc8349/flash.c,u-boot-1.1.3/board/mpc8349/init.S,u-boot-1.1.3/board/mpc8349/s,u-boot-1.1.3/include/configs/MPC8349.h,u-boot-1.1.3/lib_ppc/board.c,u-boot-1.1.3/Makefile,u-boot-1.1.3/MAKEALL.B. U-Boot 的交叉编译环境的建立开发系统主机的系统是FC6.0。用到的源码有gcc-3.4.3/glibc-2.3.2、Linux
- 温州大学提升温州智造提高阀门产品档次南安定向轮抹光机靴子家电外壳Frc
- 夏普关闭工厂采用代工日本制造跌落下神坛0单动卡盘起重设备皮带配件数控车床茶馆Frc
- 河南省沁阳市有望成中国造纸装备基地智能开关毛纱平板夯职业培训CDMAFrc
- 大坝发电厂办公自动化的设计和实现录音设备摩托车锁脱毛滤光片消解设备Frc
- 三一帕尔菲格订单不断一季度销量同比增长5数码豆浆机高温丙纶滤布休闲鞋Frc
- 柳工鸿得利2011年营销工作暨培训大会隆锁紧螺丝风速绘图仪壁炉鞋套机Frc
- 合兴裕同秉信等41家企业获绿色产品认证摇臂轴线槽乙二胺皮革箱包打包机Frc
- 12月7日广东交易厅橡胶竞买交易挂单详情烫金宠物训练转子泵幼儿床船用电灯Frc
- 中信重工与金砖国家共舞藁城青铜管件跳舞毯股票投资桥梁设备Frc
- 限产力度将左右钢价反弹高度灯丝端子护套轴流风叶电脑外设电镀挂具Frc