
启动加载器BootLoader
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序 。
发布日期:2021-05-08 02:14:39
浏览次数:10
分类:精选文章
本文共 1052 字,大约阅读时间需要 3 分钟。
启动加载器
使用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/uImage2.指定地址执行
go #从某个地址处执行 命令格式 go $addr [$arg …] 注:addr #地址 arg #可选参数3.启动内核
bootm #启动内存中的Linux内核 命令格式 bootm [$addr [$arg …]] 启动内存中的镜像还有很多常用的命令,不再赘述
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月21日 02时32分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
如何通过 Dataphin 构建数据中台新增100万用户?
2021-05-08
C语言的数值溢出问题(上)
2021-05-08
BottomNavigationView控件item多于3个时文字不显示
2021-05-08
函数指针的典型应用-计算函数的定积分(矩形法思想)
2021-05-08
8051单片机(STC89C52)八个LED灯闪烁
2021-05-08
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
2021-05-08
ament: command not found ROS2
2021-05-08
双变量的t检验
2021-05-08
用 wxPython 打印你的 App
2021-05-08
wxPython:引用、展示图片、Stock IDs、操作剪切板、拖拽
2021-05-08
android GPS JAVA 获取GPS功能是否禁用
2021-05-08
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2021-05-08
Linux下安装MySql过程
2021-05-08
原生vue实现VantUI中IndexBar索引导航栏功能
2021-05-08
android:使用audiotrack 类播放wav文件
2021-05-08
vue通过better-scroll 封装自定义的下拉刷新组件
2021-05-08
android解决:使用多线程和Handler同步更新UI
2021-05-08
vue自定义封装Loading组件
2021-05-08
解决移动端项目中苹果ios和安卓android手机点击输入框网页页面自动放大缩小
2021-05-08