博客
关于我
启动加载器BootLoader
阅读量:361 次
发布时间:2019-03-05

本文共 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 …]]
启动内存中的镜像

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

转载地址:http://wzxg.baihongyu.com/

你可能感兴趣的文章
异常的继承结构
查看>>
SVN 和 Git 区别
查看>>
JDK 内置的多线程协作工具类的使用场景
查看>>
Java 源代码到运行的过程
查看>>
Java 中哪些对象可以获取类对象
查看>>
linux 的 cp 命令如何复制不提示覆盖
查看>>
缓存穿透 / 缓存击穿 / 缓存雪崩 / 缓存一致性
查看>>
linux 的 pwd 命令
查看>>
linux 的 sleep 命令
查看>>
js 的 let var const 区别
查看>>
无线掌上B超USONIX-R6线阵B模图像初步
查看>>
无线掌上B超USONIX-R6凸阵B模图像初步
查看>>
react路由使用以及封装
查看>>
vue计算属性和监听器区别
查看>>
前端常用知识随手记
查看>>
11.2.6 时间值的小数秒
查看>>
11.2.7 日期和时间类型之间的转换
查看>>
附录 B 错误信息和常见问题
查看>>
redis 内存溢出_从数据存储的角度告诉你Redis为什么这么快!
查看>>
实例分析Facebook激励视频广告接入
查看>>