当前位置:文档之家› 实验一 Bootloader的设计与移植实验讲义

实验一 Bootloader的设计与移植实验讲义

实验一 Bootloader 设计与移植
实验一
BootLoader 的设计与移植
东南大学嵌入式工程中心 2011-08
当完成用户程序的编译并下载到目标板上运行时,总是要首先进行存储器的映射,然后 通过 ADS(或 SDT)调试环境下载,显然,这个过程对普通用户来说显得特别烦琐,然而, 要在裸板(没有任何程序的系统板)上调试运行程序,也只能采用这种方法。如果能在用户 设计的系统板上烧写一段 BootLoader 程序,就可以将该过程屏蔽起来,让用户通过一些简 单的操作,就可完成程序的下载、调试等工作,这就是我们要在裸板设计与移植 BootLoader 的原因与意义所在。
由于时间关系,移植的是华邦开发板上自带的BootLoader,这样就不需要对硬件平台 的初始化工程进行修改。 1、 Bootloader 的下载 方法一: A、 建立超级终端。打开开始菜单/附件/通讯/超级终端,建立一个终端。名字自拟,选择连
接时使用 com1,确定。然后选择每秒位数 115200,数据位 8,停止位 1,其它选择无。 B、上电后按下“ESC”键进入 bootloader 调试模式
这在我们这短短的时间内是很难做到的,所以实验中对 Bootloader 只进行简单的修改比如说 进入 Debug 模式的等待时间,在载入过程中控制 LED 闪亮等等。整个过程我们主要修改 Bootloader.mcp 中的 Command.c 文件.(修改时注意,不要将 Bootloader 等待时间设置过长; 编写好程序之后,务必严格进行逻辑检查,不要出现死循环!!!否则后果很严重)
负责以以太网接口向 flash 里面固化程序
Shell.mcp
BootLoader 里面 shell 命令的解析
zlib.mcp
提供 BootLoader 用到的一些接口函数,包括 usb_lib.a
Update.mcp
负责对 BootLoader 更新
BootLoader.mc BootLoader 架构,负责调用上面工程里提供的 API
5
实验一 Bootloader 设计与移植
(4) (5)
图4 再将文件夹中的\release\WBLv1_1\image\bootloader\little\bootloader.bin 发送给 目标板。下载完毕后按回车。 按 Reset 键重启,或者在命令窗口输入 boot。
2、 修改 BootLoader 由于修改 Bootloader 涉及到很多底层的东西,需要对整个系统的硬件构成非常熟悉。
p
6. Bootloader 下的一些常用命令 命令 H B
作用 显示可执行的命令 设置串口波特率
2
实验一 Bootloader 设计与移植
D
显示 memory。帮助:D -?
E
编辑 memory。帮助:E -?
G
到地址
I
信息
MX
用 Xmodem 协议下载
MT
通过 TFTP/USB 协议下载
FT
通过 TFTP 对 flash 编程.帮助:T -?
为裸板的情况。由于本次实验的目标板已有了Bootloader,所以只对前两种方法做一些介绍。 具体操作过程会在实验步骤中有具体介绍。
二、 实验目的
1.了解Bootloader的作用 2.学会如何移植Bootloader 3.学会使用Bootloader下的一些基本命令 4.初步了解如何对Bootloader进行修改和编译 5.下载简单的应用程序到开发板,并运行 6.编写简单的运用程序并完成下载工作,使之能成功运行
3
实验一 Bootloader 设计与移植
三、 实验设备
●硬件:PC 机 Windbond W90P710 试验开发平台
● 软件:ADS V1.2 Windows 98/200/XP 操作系统(可选)
WBStickerMaker
一台 一套
四、 实验内容
(1) (2) (3) (4) (5)
将Bootloader通过不同的方法下载到开发板上去。 学习使用一些基本的Bootloader命令 对原有的Bootloader进行修改后,再进行下载。 应用程序的下载 应用程序的修改和下载
五、 注意事项:
1.工程文件的文件目录需为全英文,否则 ADS 无法打开 2.在 lcd_test 测试中,建议在 lcd_pattern.h 中只申明全局数据数组,数组内容在.c 文件中赋 值,否则可能会造成重复定义。也可以选择模式 2,用 U 盘挂载图片信息,图片需根据程序 命名。
六、 实验步骤
产品开发人员能够很好的应用尖端的片上系统技术. 该工具是专为基于ARM RISC的处理器 而设计的, 它可加速并简化嵌入式开发过程中的每一个环节,使得开发人员只需通过一个集 成软件开发环境就能研制出ARM产品,在整个开发周期中,开发人员无需离开CodeWarrior 开发环境, 因此节省了在操做工具上花的时间,使得开发人员有更多的精力投入到代码编写 上来, CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界 面。用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C++,或ARM 汇编语言的程序代码。通过提供下面的功能,CodeWarrior IDE缩短了用户开发项目代码的 周期。
图1 C、采用 mx 或 mt 命令将文件夹中的’/release/updater/Image/little/updater.bin’下载到目标板
的 0x8000 地址,发送协议选择 Xmodem(mx 0x8000)
4
实验一 Bootloader 设计与移植
图2 D、 然后运行命令 g 0x8000,然后按下回车,Flash 开始 Program。之后按任意键重启。
ADS由命令行开发工具,ARM时实库,GUI开发环境(Code Warrior和AXD),实用程序 和支持软件组成。有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的 开发应用程序了。
2. CodeWarrior 集成开发环境 CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势, 使
3. BootLoader 作用 BootLoader 的作用与 PC 机上的 BIOS 类似,通过 BootlLoader 可以完成对系统板上的
主要部件如 CPU、SDRAM、Flash、串行口等进行初始化,也可以下载文件到系统板、对 Flash 进行擦除与编程。事实上,一个功能完善的 BootLoader 已经相当于一个微型的操作系 统了。 BootLoader 作为系统复位或上电后首先运行的代码,一般应写入 Flash 存储器中并 从起始物理地址 0x0(本实验中华邦开发板映射为 0x7F000000)开始。BootLoader 根据实 现的功能不同,其复杂程度也各不相同。一个简单的 BootLoader 程序可以仅仅完成串行口 的初始化,并进行通信,而功能完善的 BootLoader 可以支持比较复杂的命令集,对系统的 软硬件资源进行合理的配置与管理。因此,用户可根据自身的需求实现相应的功能。
打开 ADS V1.2,并打开\release\BuildALL\BuildAll.cmp(打开 BuildAll.cmp 之后,不 要修改任何程序代码,先编译一下,看编译之后有没有错误,如果没错继续进行),之后打 开 command.c 文件。然后对 debug_wait()函数进行添加和修改。修改完毕后,保存。按一下 ADS 的 Make 命令完成编译工作。然后重新下载到开发板,观察两者的不同。
1
实验一 Bootloader 设计与移植
4. U-Boot 简介 U-Boot 作为一款典型的 BootLoader 定制工具,其全称 Universal Boot Loader,是遵循
GPL 条款的开放源码项目。从 FADSROM、8xxROM、PPCBOOT 逐步发展演化而来。其源 码目录、编译形式与 Linux 内核很相似,事实上,不少 U-Boot 源码就是相应的 Linux 内核 源程序的简化,尤其是一些设备的驱动程序,这从 U-Boot 源码的注释中能体现这一点。做 为一个专业订制 BootLoader 的工具软件,U-Boot 把各个部分的代码分别存放在了特定的目 录下,通过 Makefile 文件把他们关联起来,这样的编排方式可以使代码的分类更为明确, 修改也更加方便,唯一不足的地方是影响了代码可读性,在阅读时需要取出进行重新编排。 下表 1 介绍了 U-Boot 的文件架构:
Bootloader 的下载就完成了。
方法二: (1) (2)
(3)
图3
步骤 A、B 同上 采用 mx 或 mt 命令将文件夹中的“/release/Xmodem/Image/little/Xmdoem.bin” 下载到目标板的 0x8000 地址,发送协议选择 Xmodem 运行 g 0x8000 命令,出现如下框图
一、 实验必备准备知识
1. ADS 概念 ARM ADS全称为ARM Developer Suite。是ARM公司推出的新一代ARM集成开发工具。
现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安装在Windows NT4,Windows 2000,Windows 98和Windows 95操作系统下,还支持Windows XP和Windows Me操作系统。
通过 Xmodem 方式 flash 编程.帮助:P FX
-?
CP
拷贝 Memory
LS
列出 flash 中所有的 Images
SET
设定 bootloader 的配置。帮助:SET -?
CHK
检测 flash 信息
RUN
执行 Image
DEL
相关主题