启动加载器BootLoader
发布日期:2021-05-08 02:14:39 浏览次数:10 分类:精选文章

本文共 1052 字,大约阅读时间需要 3 分钟。

启动加载器

在嵌入式操作系统中,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

图3.2.2-1模拟启动加载器

执行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 …]]
启动内存中的镜像

还有很多常用的命令,不再赘述

上一篇:嵌入式Linux环境搭建
下一篇:编译Linux内核--制作文件系统--远程调试程序

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月21日 02时32分19秒