嵌入式BootLoader移植实验三.doc
- 文档编号:237246
- 上传时间:2022-10-07
- 格式:DOC
- 页数:17
- 大小:3.20MB
嵌入式BootLoader移植实验三.doc
《嵌入式BootLoader移植实验三.doc》由会员分享,可在线阅读,更多相关《嵌入式BootLoader移植实验三.doc(17页珍藏版)》请在冰豆网上搜索。
合肥学院
嵌入式系统设计实验报告
(2013-2014第二学期)
专业:
实验项目:
实验三BootLoader移植实验
实验时间:
2014年5月7
实验成员:
___
指导老师:
干开峰
电子信息与电气工程系
2014年4月制
一、实验目的
1、熟悉Bootloader工作原理。
2、了解U-Boot的代码结构。
3、掌握U-Boot移植过程。
二、实验内容
本实验熟悉Bootloader工作原理,了解U-Boot源码结构,基于S3C2440处理器,完成U-Boot移植,并在目标开发板上测试通过。
三、移植环境
u-boot版本:
u-boot-2011-03
Linux平台:
Fedora14
交叉编译工具:
arm-linux-gcc-4.3.3
arm开发板:
micro2440
CPU:
S3C2440
SDRAM:
64M1
NorFlash:
2M
NandFlash:
256M
网卡:
DM9000EP
四、实验过程
1、建立Micro2440配置
(1)按下图所示命令解压u-boot-2011.03-micro2440.tar压缩包
(2)输入命令:
geditboards.cfg打开boards.cfg文件。
在boards.cfg中添加一行:
micro2440armarm920t-samsungs3c24x0语句。
(3)创建板级支持文件
输入命令:
cp-rboard/samsung/smdk2410board/samsung/micro2440
cdboard/samsung/micro2440/
mvsmdk2410.cmicro2440.c
geditMakefile
将COBJS:
=smdk2410.oflash.o改为COBJS:
=micro2440.oflash.o
输入命令:
cd../../..
cpinclude/configs/smdk2410.hinclude/configs/micro2440.h
geditinclude/configs/micro2440.h
修改内容一:
#defineCONFIG_SYS_PROMPT"[Micro2440]#"/*MonitorCommandPrompt*/
修改内容二:
#defineCONFIG_SYS_SDRAM_BASEPHYS_SDRAM_1
#defineCONFIG_SYS_INIT_SP_ADDR(CONFIG_SYS_SDRAM_BASE+0x1000-GENERATED_GBL_DATA_SIZE)
(4)测试编译环境
输入命令:
makemicro2440_config
出现:
Configuringformicro2440board...
输入命令:
make
Generatinginclude/autoconf.mk
Generatinginclude/autoconf.mk.dep
......
......
arm-linux-objcopy-Osrecu-bootu-boot.srec
arm-linux-objcopy--gap-fill=0xff-Obinaryu-bootu-boot.bin
2、在RAM中运行
(1)在根目录下进入include/configs文件夹
输入命令:
geditmicro2440.h,打开micro2440.h文件。
(2)在micro2440.h中
删除:
#defineCONFIG_S3C24101/*specificallyaSAMSUNGS3C2410SoC*/
#defineCONFIG_SMDK24101/*onaSAMSUNGSMDK2410Board*/
添加:
#defineCONFIG_S3C24401/*specificallyaSAMSUNGS3C2440SoC*/
#defineCONFIG_MICRO2440
#defineCONFIG_SKIP_LOWLEVEL_INIT
(3)在根目录下进入arch/arm/cpu/arm920t文件夹
输入命令:
geditstart.S
按下图所示进行修改部分内容:
(4)在根目录board/samsung/micro2440下中输入geditmicro2440.c命令
(5)测试
在根目录下输入命令:
make
编译完成后将u-boot.bin下载到SDRAM的0x33f80000地址处,u-boot已经能在RAM中运行。
3、支持DM900
(1)在根目录下打开include/configs文件夹,执行geditmicro2440.h命令
删除:
#defineCONFIG_CS8900/*wehaveaCS8900on-board*/
#defineCONFIG_NETMASK255.255.255.0
#defineCONFIG_IPADDR10.0.0.110
#defineCONFIG_SERVERIP10.0.0.1
添加:
#defineCONFIG_CMD_NET
#defineCONFIG_DRIVER_DM90001
#defineCONFIG_DM9000_NO_SROM1
#defineCONFIG_DM9000_BASE0x20000300
#defineDM9000_IOCONFIG_DM9000_BASE
#defineDM9000_DATA(CONFIG_DM9000_BASE+4)
#defineCONFIG_CMD_PING
#defineCONFIG_ETHADDR08:
00:
3e:
26:
0a:
5b//开发板MAC地址
#defineCONFIG_NETMASK255.255.255.0
#defineCONFIG_IPADDR192.168.10.126//开发板IP地址
#defineCONFIG_SERVERIP192.168.10.124//主机IP地址
(2)在根目录下进入board/samsung/micro2440文件夹执行geditmicro2440.c命令
(3)在根目录下进入arch/arm/lib文件夹执行gediteabi_compat.c命令
(4)在根目录下进入drivers/net文件夹执行geditdm9000x.c命令
在修改staticintdm9000_init(structeth_device*dev,bd_t*bd)函数中内容,如下图所示:
(5)测试
在根目录下输入命令:
make
编译完成后将u-boot.bin下载到SDRAM的0x33f80000地址处,u-boot已经能在RAM中运行。
测试结果如下图所示:
4、支持内核启动
(1)在根目录下进入include/configs文件夹执行geditmicro2440.h命令
添加:
#defineCONFIG_SETUP_MEMORY_TAGS1//如果没有定义这个参数,则uboot参数必须加入men=内存大小
(2)在根目录下进入arch/arm/lib文件夹执行geditbootm.c命令
在staticvoidannounce_and_cleanup(void)函数中添加:
#ifndefCONFIG_MICRO2440
cleanup_before_linux();
#endif
(3)自动启动内核
如果要自动启动内核,需要include/conskfigs/micro2440.h定义CONFIG_BOOTCOMMAND,类似如下内容:
#defineCONFIG_BOOTCOMMAND"nandread0x300080000x600000x300000;bootm0x30008000"
(4)测试
在根目录下输入命令:
make
编译完成后将u-boot.bin下载到SDRAM的0x33f80000地址处,u-boot已经能在RAM中运行。
测试结果如下图所示:
5、支持NandFlash
(1)添加s3c2440_nand.c文件
在根目录下输入touchdrivers/mtd/nand/s3c2440_nand.c指令进行文件的创建,
在根目录下输入geditdrivers/mtd/nand/s3c2440_nand.c命令打开文件。
在DEBUGN("board_nand_init()/n");下面修改如图所示的三句内容:
(2)在根目录下进入drivers/mtd/nand文件夹中执行geditMakefile命令
添加:
#COBJS-$(CONFIG_NAND_S3C2440)+=s3c2440_nand.o如下图所示:
(3)在根目录下进入include/conskfigs文件夹打开micro2440.h文件
添加:
#defineCONFIG_MTD_DEVICE
#defineCONFIG_NAND_S3C2440
#defineCONFIG_CMD_NAND
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 BootLoader 移植 实验