• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

三、uboot

武飞扬头像
liuyameng.
帮助1

1、boot loader的介绍

        操作系统的启动,首先我们要知道,操作系统在开发板上电之后是存在存储器里面的EMMC/SD卡,而操作系统是跑在内存中的,这时我们需要一个东西,将我们的操作系统搬运到内存中,这个东西就是boot loader,它又叫做系统的引导程序。

2、uboot和bootloader的关系

        bootloader仅仅是引导程序的一段核心的代码

        uboot就是bootloader的一个发行版

        类似与linux和ubuntu的关系一样

        https://u-boot.readthedocs.io/en/latest/(自行了解)

3、uboot的重要文件夹

        fs:uboot支持的文件系统

        include:编译需要的头文件

        arch:支持的架构   ----芯片架构相关的代码

        board:板级资源    ----开发板资源相关的代码

        driver:驱动相关的文件夹

        sd_fuse:工具相关的文件夹

4、uboot的编译和烧写

        1)编译的步骤:

                1:将压缩包放入虚拟机

                2:在虚拟机里解压压缩包(路径自定义--建议不要有中文路径)

                        tar xvf uboot_tiny4412-sdk1506.tar.bz2

                3:跳转到解压后的目录

                        执行清理动作

                        make clean:

                                清理编译之后产生的东西,并不会清理配置文件

                        make distclean:

                                将所有的东西  包括配置文件都清理,恢复出厂设置

                4:做开发板的选型

                        make Tiny4412_config

                5: 编译uboot

                        make

        2)uboot的烧录

                1:生成bl2的程序

                        在sd_fuse文件夹里执行

                        ./mkbl2 u-boot.bin bl2.bin 14336

                2:烧录BL2(BL1已经烧录过了)

                        sudo dd iflag=dsync oflag=dsync if=./bl2.bin of=/dev/sdb seek=17

                3:烧录uboot

                        sudo dd iflag=dsync oflag=dsync if=./u-boot.bin of=/dev/sdb seek=49

                4:烧录向量表

                        sudo dd iflag=dsync oflag=dsync if=./E4412_tzsw.bin of=/dev/sdb seek=705

5、 uboot的命令

  1. uboot环境变量:
    • printenv、print、pri打印全部变量
    • set、setenv:新增、修改、删除环境变量
      1. 新增#set 环境变量名 环境变量值
      2. 删除#set 环境变量
      3. 修改#set 环境变量名 新的环境变量
    • save 保存环境变量(如果不保存重启后无效)
    • reset 重启
  2. 常用命令:
    • version   --查看版本
    • ?或者help  打印支持所有的命令
    • ?XXX命令  --打印XXX命令的使用规则
    • ping  --测试网络连通性
    • loady  使用串口下载代码到内存   loady 0x02023400/go 地址
    • md 查看内存数据md.b/w/l  分别代表字节/字/四字节
    • bdinfo  查看配置信息
    • fatinfo  查看指定设备fat的分区信息
      1. fatinfo <interface>  <dev[:part]>
        1. interface  --mmc(MMC或SD,emmc,usb)
        2. dev :设备编号
        3. 设备分区号,可选
    • fatload:(重点)
      1. 从启动介质里下载内容到内存列
      2. fatload mmc [存储介质的标号]:[存储介质的分区号] [内存里的地址] [要下载的文件] [要下载文件的大小]
      3. fatload mmc 0:1 0x02023450 images/FriendlyARM.ini 3072

               10.read :从存储介质读取一段代码到内存里

                        movi read kernel 0 40008000

                        他的意思就是从0号存储介质(sd卡)读取内核到内存里的 0x40008000位置

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkikgg
系列文章
更多 icon
同类精品
更多 icon
继续加载