- 13
- 0
- 约5.58千字
- 约 29页
- 2017-09-01 发布于河南
- 举报
bootloader介绍0--u-boot整体介绍
* * * * * * * * * Supervivi param kernel fs * * Arm-linux-gcc-4.3.2_uboot.tar.gz tekkamanninja-U-boot-2009.11_tekkaman-16deca6.tar.gz * * * * * * * * * * * * * * * * * 沈睿汀 底层研发工程师 课程目标 初步了解bootloader,重点了解u-boot 掌握u-boot的编译,烧写。及如何利用u-boot烧写uImage等。 掌握u-boot的主要文件,如Makefile和配置文件等。 课程内容 Bootloader简介 U-boot编译烧写及利用uboot烧写uImage等 U-boot主要文件介绍 Bootloaer简介 Bootloaer简介 常见的Bootloaer介绍 常见的Bootloaer介绍 常见的Bootloaer介绍 常见的Bootloaer介绍 U-boot介绍 u-boot与kernel的flash分区配置表要保持一致 对flash的mtd分区,u-boot与kernel要保持一致。否则,可能会出现异常! 在kernel源码的arch/arm/mach-s3c2440/mach-mini2440.c里有如下flash分区配置表: u-boot与kernel的flash分区配置表要保持一致 在u-boot源码的include/configs/mini2440.h里有如下flash分区配置表: 为了与kernel的flash分区配置表保持一致。对u-boot代码修改如下: 修改include/configs/mini2440.h文件, #define CONFIG_ENV_OFFSET 0X40000 //修改env分区的偏移值,从0x60000改为0x40000 #define CONFIG_ENV_SIZE 0x20000 /* Total Size of Environment Sector */ 修改cpu/arm920t/start.S文件, #define LENGTH_UBOOT 0x40000 //修改u-boot的大小,把0x60000改为0x40000 U-boot的配置编译及其烧写 修改Makefile,指定交叉编译环境 CROSS_COMPILE = arm-linux- (Arm-linux-gcc-4.3.2_uboot所在路径,注意Linux-后面不能有空格) 清除生成的文件(可选) make distclean 生成配置文件 make mini2440_config 在源码根目录下生成u-boot映像文件u-boot.bin make 下载u-boot.bin到开发板的nandflash上(a和b两种方法都可以) 若nandflash上的bootloader是自带的supervivi_128M,则选择norflash模式启动开发板,然后选择a方式,利用dnw工具,把u-boot.bin从pc机,通过usb下载到开发板的nandflash上。 若nandflash上的bootloader是我们烧写进去的u-boot,则除了上述方式进行下载,也可以选择nandflash模式启动开发板进行下载。。然后不停的按着键盘某个按键,让开发板停在u-boot阶段,然后通过u-boot命令把u-boot.bin下载到开发板。 把u-boot.bin放在u盘里根目录下,然后把u盘插到开发板的u口上。 选择nandflash模式启动开发板,然后不停的按着键盘某个按键,让开发板停在u-boot阶段。 输入命令# usb start 启动加载u盘。 输入命令# fatload usb 0 0/u-boot.bin把u盘里的u-boot.bin拷贝到开发板的外部sdram指定地址0。 输入命令# nand erase 0 0x40000 清0 nandflash上的0~0x60000共256k的存储空间 输入命令# nand write 00 0x40000 把u-boot.bin从外部sdram拷贝到nandflash指定地址0上,拷贝的长度是0x40000 (这个长度值与u-boot.bin的实际大小有关)。 编译uImage mkimage -n ‘tekkaman’ -A arm -O linux -T kernel -C none -a 0-e 0-d arch/arm/boot/zImage uImage mkimage工具的参数说明
原创力文档

文档评论(0)