哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处
http://blog.csdn.net/woshixingaaa/archive/2011/01/29/6169083.aspx
Uboot笔记
Uboot是德国DENX小组开发用于多种嵌入式CPU(MIPS,X86,ARM,Xscale等)的bootloader程序,Uboot不仅支持嵌入式linux操作系统的引导,还支持VxWorks,QNX等多种嵌入式操作系统。
移植bootloader原因:
1. CPU不同 (芯片级移植)
2. 板级设备不同(板级移植)
Bootloader
Stage1:
初始化硬件设备
为Stage2的代码准备RAM
将Stage2的代码复制到RAM
初始化堆栈(参数传递用)
跳转到Stage2的C程序起始处
Stage2:
初始化硬件
将根文件系统和内核从flash中读到RAM
调用内核
Uboot的目录结构
Board:是和开发板相关的文件
Commom:实现Uboot支持的命令
Cpu:与特定Cpu架构相关的代码
Disk:对磁盘的支持
Doc:文档目录
Drivers:Uboot支持的设备驱动程序都放在该目录
Fs:文件系统的支持
Include:Uboot使用的头文件
Net:与网络协议栈相关的代码
Tools:生成Uboot的工具
常用命令
1.help 查看当前单板所支持的命令
2.printenv 查看环境变量
3.setenv 添加,修改,删除环境变量
eg 添加环境变量 file 值为 123
setenv file 123
修改file 值为 456
setenv file 456
删除 file
setenv file
4.saveenv 保存环境变量 他会将环境变量保存到flash中,否则板子复位后环境变量消失,因为setenv设置的环境变量在SDRAM中,复位,Uboot从flash中读环境变量。
5.tftp 通过网络下载文件
注意:使用tftp,需要先配置好网络
Uboot>setenv ethaddr 12:34:56:78:9A:BC(网卡的地址)
Uboot>setenv ipaddr 192.168.1.1(开发板的ip地址)
Uboot>setenv serverip 192.168.1.254(tftp服务器的地址)
eg Uboot> tftp 32000000 uImage
把server中的uImage通过tftp读入0x32000000处
如果使用串口速度相当慢
6.md(memory display)显示内存区内容
md采用16进制和ASCII码两种形式显示存储单元的内容。这条命令还可以采用长度标识符.l,.w,.b:
md [.b,.w,.l] address
md .w 100000
b 字节型 w 16位 l 32位
7.mm (memory modify)修改内存,地址自动增加
mm[.b.w.l] address
mm提供了一种互动修改内存的方法,他会显示地址和当前的值然后提示用户输入。如果你输入了一个合法的16进制数,这个新的值将被写入该地址。然后提示下一个地址。如果你没有输入任何值,只按了一下回车,那么该地址的内容保持不变。如果想结束输入,则输入空格,然后回车。
8.flinfo 查看Flash扇区信息
Uboot>flinfo
9.protect Flash写保护
打开或关闭扇区写保护
protect off all
关闭所有扇区的写保护
protect on all
打开所有扇区的写保护
protect off start end
关闭从start到end 扇区的写保护
protect on start end
打开从start到end扇区的写保护
start为要擦除的第一个扇区的起始地址,end为要擦除的最后一个扇区的结束地址。
10.erase擦除flash扇区
用法 erase start end
擦除从start到end的扇区,start为要擦除的第一个扇区的起始地址,end为要擦除的最后一个扇区的结束地址。(在使用cp向Nor型Flash写入数据之前必须先使用erase命令擦除flash扇区,因为norflash按字节写入时无法写入1,所以必须通过擦除来写入1)。
11.cp 数据拷贝
cp[.b,.w,.l]saddresss daddress len
cp 提供了一种内存与内存之间,内存与flash之间数据拷贝的方法。
eg: cp.b 31000000 50000 d0000
将内存地址0x31000000处的数据(长度为d0000)拷贝到地址0x50000处(Flash中)
cp.b 32000000 120000 c0000
将内存地址0x32000000处的数据(长度为0xc0000)拷贝到地址0x120000处(Flash中)。
12.go 执行内存中的二进制代码,一个简单的跳转到指定地址
go addr[arg…]
13.bootm执行内存中的二进制代码
bootm [addr[arg…]]
要求二进制代码一定要有文件头。
14.bdinfo 显示开发板的信息
自启动设置
Uboot>setenv bootcmd tftp 31000000 uImage \; bootcmd 31000000 这句可以设置Uboot启动后都干什么
Uboot>saveenv
分享到:
相关推荐
uboot详解 uboot详解 uboot详解 uboot详解
UBOOT ppt
Uboot启动过程分析,学习,需要移植uboot的可以看下
imx8mp uboot
uboot readme 中文注释 uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot ...
imx287uboot移植s3c2440uboot移植,非常全面的总结资料,加上uboot手册
NXP官方原版Uboot和Linux源码
史上最详细最全面的uboot启动过程分析,看完之后能对UBOOT有个全面的了解。绝对独家 史上最好的UBOOT分析教程。
uboot.bin 生成 Uboot命令 移植Uboot
一步步分析uboot,uboot学习笔记,个人觉得写的还行
<uboot代码完全解析>,对uboot代码的注释和分析,了解uboot的工作流程
uboot代码详细分析完整88页版,学习uboot,了解uboot整体架构非常有帮助,全网最全版本,1积分下载
Uboot Uboot最详细资料 Uboot参考资料
uboot整个移植过程我们可以分为三个阶段: 一,移植可以从Nor flash启动的uboot 这个阶段是移植一个最简单的uboot,可以烧在Nor flash内运行. 二,移植支持Nand flash驱动的uboot 加入Nand flash驱动的支持,可以在uboot...
这是我大量收集的关于uboot移植的文档,希望对大家有帮助。如果学习了这些资料,相信对uboot移植有了全面的认识。
uboot_freescale_2020_ver在正点原子开发板imu6ull的uboot移植代码
uboot for mini2440 uboot for mini2440
uboot分析和笔记
uboot使用手册,分模块详细讲解了uboot各个模块,非常适合学习uboot!
一、修改uboot 启动信息中打印的信息 uboot 启动会打印有“ Board: MX6ULL 14×14 EVK”这一句,将此信息该位自己开发板名称,打开mx6ull_fire_emmc.c文件,搜索checkboard找到如下: 将”MX6ULL 14×14 EVK”该位...