当前位置: 首页 > article >正文

嵌入式Linux学习记录之Uboot

1、Uboot是一个裸机程序,比较复杂
2、Uboot就是一个bootloader,用于启动Linux或其他系统。
   Uboot是最主要的是工作初始化DDR。Linux运行在DDR里面的,一般Linux镜像zIgame(ulmage)+设备树(.dtb)存放在SD、EMMC、NAND、SPI FLASH等外置存储区域。
   需要将Linux镜像从外置flash拷贝到DDR中,在去启动
   Uboot的主要目的就是系统的启动做准备。
   Uboot不仅能启动Linux,也可以启动其他系统,比如vxworks.
   Linux不仅能通过uboot启动
   Uboot是个通用的bootloader,支持多种构架。

   Uboot获取
   1、首先是uboot官网,支持少
   2、SOC厂商会从uboot官网下载某一版本的uboot,然后在版本的uboot加入相应的SOC以及驱动,这就是SOC厂商定制版的uboot,NXP官方的I.MX6ULL EVK板子。(推荐)
   3、做开发板的厂商,开发板会参考SOC厂商的板子,开发板必然会官方的不一样。因此开发板厂商又会去修改SOC厂商做好的uboot,以适应的板子。

正点原子官方uboot
1、编译uboot的时候需要先配置
2、编译完成后会生成一个uboot.bin。必须向uboot.bin添加头部信息。uboot编译最后会通过/toos/mkimage软件添加头部信息,生成uboot.imx
3、如果配置过uboot,一定要注意shell会清除整个工程,那么配置的文件和配置项也会被删除
4、为了方便开发,建议在uboot顶层设置号ARCH和CORSS_COMPILE这两个变量的值

 

一、uboot启动log简析
  1、以后带有调试性质的开发,uboot都是烧写到sd卡中,方便烧写


2、help命令
查看某一个命令
? 命令

3、信息查询
  1、bdinfo 板子信息
  2、printenv 查看板子的环境变量

4、setenv 命令 ---重点
     设置环境变量  ,可以自定义环境变量

5、 saveenv命令  ----重点 

内存操作命令
1、md
2、nm
3、mm
4、mw
5、cp
6、cmp

网络操作命令
1、ping命令
2、dhcp命令
3、nfs命令
   目的就是为了调试程序
4、tftp命令

FAT格式文件系统操作命令
  对于IMX6U来说,SD/EMMC分为3个分区:
    1、uboot
    2、Linux zImage  dtb FAT
    3、 系统根文件系统

1、fatinfo命令
fatinfo 命令用于查询指定 MMC 设置指定分区的文件系统信息
2 、fatls  命令
fatls 命令用于查询 FAT 格式设备的目录和文件信息
3 、fstype 
fstype 用于查看 MMC 设备某个分区的文件系统格式
4 、fatload  命令
fatload 命令用于将指定的文件读取到 DRAM 中
5 、fatwrite  命令

BOOT操作命令:
1、booz命令
     要启动linux必须将zlmage、dtb放到DRAM上
boot 命令也是用来启动 Linux 系统的,只是 boot 会读取环境变量 bootcmd 来启动 Linux 系统,bootcmd 是一个很重要的环境变量!


bootz 命令用于启动 zImage 镜像文件

go 命令用于跳到指定的地址处执行应用

run 命令用于运行环境变量中定义的命令,比如可以通过“run bootcmd”来运行 bootcmd 中的启动命令,但是 run 命令最大的作用在于运行我们自定义的环境变量。
 

1、booz命令
     要启动linux必须将zlmage、dtb放到DRAM上

bootz 命令用于启动 zImage 镜像文件
tftp 80800000 zImage
tftp 83000000 imx6ull-alientek-emmc.dtb
bootz 80800000 – 83000000

fatload mmc 1:1 80800000 zImage
fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb
bootz 80800000 - 83000000


setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb; bootz 80800000 - 83000000'

setenv mybootnet 'tftp 80800000 zImage; tftp 83000000  imx6ull-14x14-emmc-4.3-800x480-c.dtb; bootz 80800000 - 83000000'

U-Boot源码:

1、arch/arm/cpu/u-boot.lds就是整个uboot的连接脚本
2、board/freescale/mx6ullevk ---重点
3、configs目录使uboot的默认配置文件目录。此目录都是以.defconfig结尾的。这些配置文件对应不同的板子

移植uboot的时候重点关注
\configs  主要使defconfig

当我们执行make   xxx_defconfig 以后就是生成.config文件,其保存了详细的uboot配置信息。

顶层README,非常重要,建议大家阅读

u-boot 编译出来带ELF信息的uboot可执行文件

http://www.lryc.cn/news/2419114.html

相关文章:

  • 低通和带通信号的简单理解及 Matlab 实现
  • 无线网络的加密方式:WEP、WPA和WPA2
  • 交换机的基本设置
  • 早期星际十大人物(学生时代,星际时代)
  • JavaScript window 、Document 、Location、History、Navigator,页面刷新方式汇总
  • java打包zip并下载_Java批量下载文件并zip打包
  • 常量和常量表达式
  • 替代联阳IT6564方案|CapstoneCS5262替代IT6564设计DP转HDMI+VGA扩展坞方案|Capstone CS5262设计参考
  • 网站打开速度慢的原因,排查方法及优化方法(大全)
  • 浪潮集团数据中台建设方案(WORD)
  • 简单易懂DFS(一) dfs + 回溯
  • 使用ensp模拟器中的路由器配置vrrp详解
  • 海思3518E开发笔记1.2——海思SDK脚本学习
  • Hibernate笔记
  • 启动应用程序出现wsock32.dll找不到问题解决
  • 用Sygate实现单网卡共享上网
  • AlertDialog详解
  • Android终端系统APP应用性能测试之响应速度流畅度
  • EasyCamera--更简单更灵活的相机应用编写
  • 轻量级网络IP扫描器WatchYourLAN
  • 如何组建局域网?
  • 新手iso系统怎么安装 新手安装iso镜像文件详细步骤
  • IDEA使用教程汇总
  • 自学前端第二十四天:Animation动画栈帧效果
  • win2008 r2 安装sqlserver 2000问题的解决方法
  • 标题栏位于图纸的什么位置_【教程】教你如何看懂机械图纸!
  • 51单片机内核及其工作原理
  • WebRequest 模拟请求登录 终于搞定了!
  • cygwin下载地址
  • iOS 性能调优,成为一名合格iOS程序员必须掌握的技能