博客
关于我
启动加载器BootLoader
阅读量:362 次
发布时间: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/

你可能感兴趣的文章
Vue——mock模拟数据的使用
查看>>
Nginx配置反向代理与负载均衡
查看>>
高阶函数reduce
查看>>
Lionheart万汇:布林线双底形态分析技巧
查看>>
Lionheart万汇:台积电大幅提升资本开支,2021有望续创辉煌
查看>>
Lionheart万汇:新年消费结构中贵金属交易机会
查看>>
LHCM万汇:在需求上升中,美国贸易赤字创下历史新高
查看>>
线程同步机制和三个线程不安全例子
查看>>
Mybatis的入门01
查看>>
Vue01常见指令,axios
查看>>
Vue路由嵌套刷新后页面没有重新渲染
查看>>
Vue使用bus进行组件间、父子路由间通信
查看>>
数据库三个级别封锁协议
查看>>
函数与指针分析、回调函数
查看>>
类的实例
查看>>
tomcat加载部署webapps目录下的项目
查看>>
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
查看>>
方法重写
查看>>
Threading Programming Guide(多线程编程指南)
查看>>
Java求逆波兰表达式的结果(栈)
查看>>