启动加载器
- 使用u-boot
- 在qemu上模拟
- 执行u-boot命令
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序 。
使用u-boot
1 以u-boot-2010.03版本为例
一、执行命令下载并安装
wget ftp://ftp.denx.de/pub/u-boot/u-boot-2010.03.tar.bz2
二、下载工具链
apt-get install gcc-arm-linux-gnueabi
三、配置U-Boot
makeARCH=arm=CROSS_COMPILE=arm-linux-gnueabi-versatilepb_config
四、编译U-Boot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-;
编译完成后,该目录下应该生成u-boot, u-boot.bin这两个文件
u-boot 是编译出来的 ELF 格式的 uboot 镜像文件。
u-boot.bin:二进制格式的 uboot 可执行镜像文件。
注:u-boot.bin是uboot编译源码后直接产生的,一般的开发板,直接烧写这个文件
在qemu上模拟
1.启动
qemu-system-arm -M versatilepb -m 128m -nographic -kernel u-boot.bin
执行u-boot命令
1.环境变量
printenv #打印U-Boot中的环境变量
setenv #设置环境变量的值
命令格式 setenv $name $value
例:setenv bootfile /tftpboot/uImage
2.指定地址执行
go #从某个地址处执行
命令格式 go $addr [$arg …]
注:addr #地址
arg #可选参数
3.启动内核
bootm #启动内存中的Linux内核
命令格式 bootm [$addr [$arg …]]
启动内存中的镜像
还有很多常用的命令,不再赘述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)