imx6ull烧写系统固件

1. 裸板

1.1 Windows中使用mfgtool

参考《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf》-第三十九章 系统烧写

  • mfgtool是NXP提供的专门给I.MX系列CPU烧写系统的软件;
  • 烧写的系统文件在Profiles文件夹内;
  • 使用.vbs文件配置烧写的芯片等;
  • mfgtool是用usb otg口先把uboot、linux kernel、 .dtb(设备树)烧录到DDR中,然后再在DDR中启动系统,对emmc或nandflash进行烧写完整的系统(包括rootfs);

1.2 ubuntu中使用脚本烧录

参考《【正点原子】I.MX6U用户快速体验V2.3.pdf》第二章-2.2.2使用脚本固化系统

  • 拷贝开发板光盘 A-基础资料->5、开发工具->4、正点原子 MFG_TOOL 出厂固件烧录工具->mfgtool->Profiles->Linux->OS Firmware->files 整个文件夹到 Ubuntu 虚拟机;
  • 执行files文件夹里面的imx6mksdboot.sh脚本文件,将系统烧录到sd卡,这个过程很漫长(烧录过一遍,第一次烧录时经常失败,第二次烧录了半个小时左右才成功);
  • sd卡的系统固化成功后,将第一步中的files文件夹拷贝到sd卡的系统中;
  • 执行imx6mkemmcboot.sh脚本将系统烧录到emmc;
  • 执行imx6mknandboot.sh脚本将系统烧录到nandflash;
    注意:三个脚本都有特定命令格式,即烧录时候要指定设备,烧录地址,ddr大小等

2. 板卡存在系统

2.1 板卡拥有完整的系统(主要介绍更新系统到nand-flash)

参考《【正点原子】I.MX6U 开发板文件拷贝及固件更新参考手册V1.2.pdf》-第二章I.MX6U更新固件

2.1.1 更新uboot到nandflash
  • 开启板卡进入到linux系统
  • 将u-boot.imx传到开发板里(最方便的即使scp命令,但是这个要配置开发板的网络。简单直接的方法是用sd卡或U盘)
  • 查看系统分区情况cat /proc/mtd
  • 擦除u-boot分区flash_erase /dev/mtd0 0 0;
  • 烧录imx到nandflash里面kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 u-boot-imx6ull-14x14-ddr256-nand.imx
    注意这里使用的是kobs-ng命令,并不是nandwrite命令,那是因为i.mx6ull要求nand对应的uboot可执行文件还要另外包含BCB和DBBT,kogs-ng会完成BCB和DBBT的添加;
    (详情参考《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf》-30.4.8NAND操作命令-nand write命令)
  • 同步一下,sync
2.1.2 更新设备树到nandflash
  • 将设备树文件xxx.dtb传到开发板里
  • 查看系统分区情况cat /proc/mtd
  • 擦除设备树分区 flash_erase /dev/mtd3 0 0
  • 使用nandwrite命令将不通屏幕尺寸的设备树烧写到mtd3不通偏移地址中(详情翻阅原文)
  • 烧写完执行同步命令sync
2.1.3 更新内核到nandflash
  • 将内核文件zImage传到开发板里
  • 查看系统分区情况cat /proc/mtd
  • 擦除内核分区 flash_erase /dev/mtd4 0 0
  • 烧写内核nandwrite -p /dev/mtd4 /home/root/zImage
  • 执行同步命令sync
2.1.4 更新文件系统和内核模块到nandflash
  • 使用sd卡启动linux
  • 将文件系统压缩包rootfs.tar.bz2和内核模块压缩包modules.tar.bz2传到sd卡的系统目录下
  • 之后的步骤比较多,概括起来就是:擦除mtd5分区->将文件系统压缩包和内核模块压缩包解压到对应分区目录下
2.1.5 更新系统固件到emmc和sd卡
  • 这两个操作方法比较接近,也没有擦除操作,更像是直接替换文件(删除复制粘贴)
  • 详情可以参考原文

2.2 板卡只烧录了uboot(基于nand-flash)

参考《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf》第三十章 30.4 u-boot命令使用

2.2.1 烧录内核

参考(30.4.8 nand操作命令)

  • 使用nfs或tftp命令将系统固件下载到开发板的DRAM中
  • 擦除对应分区nand erase 0x620000 0x800000
  • 将DRAM中缓存的zImage写到nand中 nand write 0x87800000 0x620000 0x800000
2.2.2 烧录设备树

参考(30.4.8 nand操作命令)

  • 使用nfs或tftp命令将系统固件下载到开发板的DRAM中
  • 擦除对应分区:nand erase 0x520000 0x100000
  • 将DRAM中缓存的设备树写到nandflash中:nand write 0x87800000 0x520000 0x100000
2.2.3 emmc和sd的板卡也支持在uboot中烧写系统

详情可参考30.4.5 EMMC和SD卡操作命令

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值