b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

文件系统转换 Bootloader之uBoot简介(转)(37)

电脑杂谈  发布时间:2018-02-07 22:32:44  来源:网络整理

“bootm [addr [arg

...]]”命令启动存放在地址addr处的U-Boot格式的映像文件(使用U-Boot目录tools下的mkimage工具制作得到),[arg

...]表示参数。如果addr参数省略,映像文件所在地址为配置文件中定义的宏CFG_LOAD_ADDR。

“go addr [arg ...]”与bootm命令类似,启动存放在地址addr处的二进制文件, [arg ...]表示参数。

“nboot [[[loadAddr] dev] offset]”命令将NAND

Flash设备dev上偏移地址off处的映像文件复制到内存loadAddr处,然后,如果环境变量autostart的值为“yes”,就启动这个映

像。如果loadAddr参数省略,存放地址为配置文件中定义的宏CFG_LOAD_ADDR;如果dev参数省略,则它的取值为环境变量

bootdevice的值;如果offset参数省略,则默认为0。

2. U-Boot命令使用实例

下面通过一个例子来演示如何使用各种命令烧写内核映像文件、yaffs映像文件,并启动系统。

(1)制作内核映像文件。

对于本书使用的Linux 2.6.22.6版本,编译内核时可以直接生成U-Boot格式的映像文件uImage。

对于不能直接生成uImage的内核,法在U-Boot根目录下的README文件中

有说明,假设已经编译好的内核文件为vmlinux,它是ELF格式的。mkimage是U-Boot目录tools下的工具,它在编译U-Boot时自

动生成。执行以下3个命令将内核文件vmlinux制作为U-Boot格式的映像文件uImage,它们首先将vmlinux转换为二进制格式,然后压

缩,最后构造头部信息(里面包含有文件名称、大小、类型、CRC较验码等):

① arm-linux-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin

② gzip -9 linux.bin

③ mkimage -A arm -O linux -T kernel -C gzip -a 0x30008000 -e 0x30008000 -n "Linux Kernel Image" -d linux.bin.gz uImage

(2)烧写内核映像文件uImage。

首先将uImage放在主机上的tftp或nfs目录下,确保已经开启tftp或nfs服务。

然后运行如下命令下载文件,擦除、烧写NAND Flash:

① tftp 0x30000000 uImage 或 nfs 0x30000000 192.168.1.57:/work/nfs_root/uImage

② nand erase 0x0 0x00200000

③ nand write.jffs2 0x30000000 0x0 $(filesize)

第3条命令之所以使用“nand write.jffs2”而不是“nand

write”,是因为前者不要求文件的长度是页对齐的(512字节对齐)。也可以使用“nand

write”,但是需要将命令中的长度参数改为$(filesize)向上进行512取整后的值。比如uImage的大小为1540883,向上进行

512取整后为1541120(即0x178400),可以使用命令“nand write 0x30000000 0x0

0x178400”进行烧写。

(3)烧写yaffs文件系统映像。

假设yaffs文件系统映像的文件名为yaffs.img,首先将它放在主机上的tftp或nfs目录下,确保已经开启tftp或nfs服务;然后执行如下命令下载、擦除、烧写:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66092-37.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...