制作uboot 能执行的脚本

本文介绍如何在U-Boot环境下创建和封装执行脚本,包括编辑脚本、使用mkimage命令进行封装及通过autoscr命令执行的过程。此外还介绍了U-Boot的一些特色功能。

制作uboot的执行脚本

首先进入uboot的源码解压目录的tool文件夹下面

 1.新建一个文件名字,touchxxx.script

 2.编辑这个文件,vimxxx.script

      内容如下:

uttext 20 30"********************************************"

uttext 20 40"Android210 upgrade system v4.0"

uttext 20 50"********************************************"

uttext 20 60"                                           "

uttext 20 70"Update bootloader"

nand scrub

nand erase

mmc rescan 0

fatload mmc 020008000 u-boot.bin

nand write20008000 0 80000

uttext 20 80"Done."

uttext 20 90"Update kernel..."

fatload mmc 020008000 zImage

nandwrite 20008000 600000 400000  (注意假如你的内核超过4M,更改400000 变成比你的内核到的就行,比如4.1M应该改成500000

uttext 20 1000"Done."

fatload mmc 020008000 zImage.debug

setenv bootargsroot=/dev/ram0 init=/init console=ttySAC0,115200

bootm 20008000

uttext 20 160"Failed. Please check the recover zImage.debug."

sleep 10

reset

2.编辑完成使用mkimage 命令来封装这个脚本,以便uboot的autoscr能够执行,在tool文件下下面执行这个命令封装:./mkimage -A ARM -O linux -T script -C none -a 0 -e 0-n "autoscr example script" -d utscript_sd.script utscript_sd

执行完后会生成utscript_sd 文件




 利用U-BOOT中的autoscr命令,可以在U-BOOT中运行“脚本”。首先在文本文件中输入需要执行的命令,然后用tools/mkimage封装,然后下载到开发板上,用autoscr执行就可以了。

① 编辑如下的脚本mini2410.script。

$ cat > mini2410.script <<EOF

echo

echo Script Configuration:

echo ----------------------

echo set update_kernel:

setenv update_kernel 'tftpboot 0x30008000 uImage;nand erase 0x80000 0x200000;nand write 0x30008000 0x80000 0x200000'

echo set update_rootfs:

setenv update_rootfs 'tftpboot 0x30008000 root.cramfs;nand erase 0x280000 0x400000;nand write 0x30008000 0x280000 0x400000'

echo set update_boot:

setenv update_boot 'tftpboot 0x30008000 u-boot.bin;nand erase 0x0000 0x80000;nand write 0x30008000 0x0000 0x80000'

echo set update_usr(erase usr):

setenv update_usr 'nand erase 0x00680000 0x03980000'

saveenv

echo Done

 

② 用tools/mkimage对脚本进行封装。

$ cat mkscript_mini2410.sh

#!/bin/sh

./mkimage -A ARM -O linux -T script -C none -a 0 -e 0 -n "autoscr example script" -d mini2410.script /home/tftp/mini2410.img

 

③ 在U-BOOT中加载并执行这个脚本。

$ tftpboot 0x30008000 /home/tftp/mini2410.img

$ autoscr 0x30008000

 

◆ 支持WatchDog、LCD logo和状态指示功能等。如果系统支持splash screen,U-BOOT启动时,会把这个图像显示到LCD上,给用户更友好的感觉。

◆ 支持MTD和文件系统。U-BOOT作为一种强大的BootLoader,它不仅支持MTD,而且可以在MTD基础上实现多种文件系统,比如cramfs、fat和jffs2等。

◆ 支持中断。由于传统的BootLoader都分为stage1和stage2,所以在stage2中添加中断处理服务十分困难,比如BLOB;而U-BOOT是把两个部分放到了一起,所以添加中断服务程序就很方便。

◆ 详细的开发文档。由于大多数BootLoader都是开源项目,所以文档都不是很充分。U-BOOT的维护人员意识到了这个问题,充分记录了开发文档,所以它的移植要比BLOB等缺少文档的BootLoader方便。

Reference:

http://blog.chinaunix.net/space.php?uid=16400726&do=blog&id=2746351


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值