U-Boot移植

一、U-Boot

Linux 系统要启动就必须需要一个 bootloader 程序,芯片上电以后先运行一段bootloader程序。

bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH, SD, eMMC 等)拷贝到 DDR 中,最后启动 Linux 内核。所以,bootloader的作用:启动Linux内核

现在有很多现成的 bootloader 软件可以使用,比如 U-Boot、 vivi、 RedBoot ,其中以 U-Boot 使用最为广泛
 

uboot (Universal Boot Loader):uboot 是一个遵循 GPL 协议的开源软件, uboot 是一个裸机代码,可以看作是一个裸机综合例程,支持液晶屏、网络、 USB 等高级功能
 

二、Windowns下移植

开发板出厂已经固化系统到核心板上的 eMMC 或 NandFlash 存储介质里。使用上位机工具 mfgtool,这种固化系统方式可以使用 PC 机在线直接固化系统
 

设置启动方式,先将底板拨码开关 BOOT_CFG 设置如下,设置为 USB 连接方式,“1”代码 ON,“0”代表“OFF”。将拨码数字 2 处拨到 ON:  01xx xxxx ,串行下载,可以通过USB烧写镜像文件

然后使用 USB 连接线连接底板的 USB_OTG 接口与 电脑

打开mfgtool文件夹,根据核心板选择不同的vbs脚本,以我的为例,核心板类型:eMMC(8GB)
DDR 大小为 512MB

Mfgtool2-eMMC-ddr512-eMMC.vbs 脚本解释

-eMMC:代表核心板上的存储介质为 eMMC
-ddr512: 指核心板上的 DDR 大小为 512MB
-eMMC: 选择此脚本是把固件烧写到 eMMC 上

若固化系统到TF卡,双击Mfgtool2-eMMC-ddr512-SDCard.vbs,等待安装驱动完成后, mfgtool 上位机界面会提示已经连接到设备 HID-compliant device, 注意请不要打开虚拟机,如果虚拟机正在开启, OTG 会连接到虚拟机上去。弹出如下界面,插入TF卡

 需开发板先上电后再将 TF 卡插进卡槽,否则上电时会检测 TF 卡,这样 mfgtool 会连接不到开发板设备,若没有 “符合HID...” ,检测OTG是否连接正确。

直接点击 mfgtool 的 Start 按钮进行固化系统到 SD 卡。下图为点击 Start 按钮后的截图。固化系统到 SD 卡需要几分钟时间,请耐心等待

 固化完成如上图,点击 Stop 后再点 Exit 退出 mfgtool 上位机软件即可

测试从 SD 卡启动系统,拨码开关拨至 SD 卡启动方式 10000010,启动系统即可
测试界面串口打印信息

 

若固化系统到 eMMC,请双击 Mfgtool2-eMMC-ddr512-eMMC.vbs 这个 vbs 脚本文件进行固化,固化时不要插入 SD 卡(其余步骤和上面一样),选择固化到eMMC 的 vbs 文件,固化完成后,将拨码开关拨至 eMMC 启动方式 10100110,启动系统即可
 

三、Linux下移植

脚本固化系统一般可用于批量固化与升级系统, 不像 mfgtool 上位机那样还需要 PC 机和USB T字口数据线,且每次只能打开一个 mfgtool 上位机,用户可以自行修改好固化系统脚本,进行自动化固化测试

若固化系统到 TF(SD)卡:

先将 mfgtool->Profiles->Linux->OS Firmware->files 整个文件夹到 Ubuntu 虚拟机,使用 chmod 指令修改固化 TF 卡系统脚本 imx6mksdboot.sh 的权限

chmod +x imx6mksdboot.sh

然后TF 卡用读卡器插到 Ubuntu 虚拟机,输入sudo fdisk -l 指令查看 SD 卡挂载节点

 挂载的节点为/dev/sdb

执行./imx6mksdboot.sh --help 查看脚本的使用方法

 imx6mksdboot.sh [选项] <(必选)-device> <(可选)-flash> <(可选)-ddrsize>
(1) -device:指明设备节点(TF 卡挂载的节点如/dev/sdx), 必需加这个参数
(2) -flash:指明核心板上的媒体存储介质,可选为(emmc|nand)
(3) -ddrsize:指明核心板上的 ddr 容量大小,可选为(512|256) MB

我的核心板的 ddr 容量大小是 512MB,媒体存储介质是 eMMC。 SD 卡挂载节点为/dev/sdb。那么固化 SD 卡的指令:

sudo ./imx6mksdboot.sh -device /dev/sdb -flash emmc -ddrsize 512

执行指令后脚本会有中文再次询问 SD 卡所挂载的节点是否对应,将会清空 SD 卡上的所有数据,请注意备份重要的数据

 

注意:在使用sd卡前一定要格式化sd卡,然后用SDFormatter软件重做SD卡
 

然后按连接 TF 卡到 Ubuntu 的方法,再点击断开即可退出 TF 卡。 固化完成后,将拨码开关拨
至 TF 启动方式 10000010,启动系统即可

若固化系统到 eMMC:同样的将相应的嗯files文件拷贝在Linux下,修改 eMMC 固化脚本的权限
,执行./imx6mkemmcboot.sh --help 查看脚本的使用说明,使用 fdisk 指令查看 eMMC 挂载节点,一般挂载节点为/dev/mmcblk1,测试的 eMMC 为 8GB存储容量的
 

chmod +x imx6mkemmcboot.sh
./imx6mkemmcboot.sh --help
fdisk -l

 用法: imx6mkemmcboot.sh [选项] <(必选)-device> <(可选)-ddrsize>
(1) -device:指明设备节点(eMMC 挂载的节点如/dev/mmcblk1), 必需加这个参数
(2) -ddrsize:指明核心板上的 ddr 容量大小,可选为(512|256) MB

 固化指令

./imx6mkemmcboot.sh -device /dev/mmcblk1 -ddrsize 512

固化完成后,将拨码开关拨至 eMMC 启动方式 10100110,启动系统即可
 

补充:拔码开关设置

根据核心板上的存储介质类型,选择不同的方式启动动系统

 解释: OFF 为 0, ON 为 1。
(1) USB OTG 烧写设置: 0100 0000
(2) SD 卡启动设置: 1000 0010
(3) EMMC 启动设置: 1010 0110
(4) NAND FLASH 启动设置: 1000 1001
用户选择正确的启动方式后,开发板上电,进入系统后, 开发板自动登录,无需输入用户
名及密码,文件系统已经设置 root 用户自动登录。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Super.Bear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值