立即注册
查看: 957|回复: 0

[arm开发资料] iMX6ULL基础操作-系统烧写指南

已绑定手机
发表于 2020-12-31 13:47:13 | 显示全部楼层 |阅读模式 来自 河北省保定市
本文以飞凌嵌入式OKMX6ULL-S开发板为基础讲解,本文分为三个部分,主要讲解了iMX6ULL sd卡烧写系统及OTG烧写系统的以及单步更新内核的步骤。通过本文您可以快速实现飞凌iMX6ULL开发板系统烧写。
一、 SD卡烧写系统
NAND- sdburn为例,烧写NAND进行操作说明,飞凌iMX6ULL拨码开关设置参考如下。

设置拨码开关:
烧写/启动序号1序号2序号3序号4序号5序号6序号7序号8
SD卡烧写00101001
EMMC启动00100000
NAND启动00011001
OTG烧写11XXXXXX

注意:上表中“1”代表ON,“0”代表OFF,“X”代表无关。

1、 制作SD卡 将文件nand-burnsd拷贝到Ubuntu 系统的任一目录,假设为/home/neo/work。
用户资料\Linux\烧录工具\nand-sdburn.zip   为256M NAND文件系统。
用户资料\Linux\烧录工具\ emmc-sdburn.zip   为4G EMMC文件系统。
步骤1:nand-burnsd.zip解压后拷贝到/home/neo/work。
步骤2:使用 USB 读卡器把SD 卡插入到电脑的USB 端口(VMware 虚拟机用户如果U盘没有被虚拟机识别,可以使用如下箭头指向图标将优盘连接到虚拟机)。
fb573db06b368adb1c6286601bcad036.png
步骤3:待虚拟机识别到SD卡后弹出目录再进行下边烧写操作。进入/home/neo/work/nand-burnsd目录,执行脚本:

  1. <span style="color:#333333">neo@<a data-cke-saved-href="https://www.forlinx.com/index.html" href="https://www.forlinx.com/index.html" class="tag-link">ubuntu</a>:~/work/nand-burnsd$ sudo ./6ullsdburn.sh</span>
复制代码

执行上述命令后,终端会列出电脑的硬盘或U盘,对应选择自己的SD 卡,回车。
注意:判定自己的U盘是 sda/sdb/sdc 可以根据容量进行判断,比如自己的优盘容量为4G,则其size 为3872256 KB≈ 4G,建议用户执行此操作时不要同时插入多个优盘,以免混淆。
这里以我们的操作为例:
选择 1 ,回车
43a6521d8e56d561bf1884cce420e762.png
选择y,回车,等待至制卡完成。
06289989ab364d1c6588054a5ec2b35d.png
若打印信息中没有下图红框中标识的信息,则SD卡挂载失败,则需要使用Ubuntu重新卸载并挂载。
6c83532b475ffd455293612cd50205df.png
卡制作完成后可以看到boot 分区包含sdrun和target两个目录。sdrun 文件夹内容用于引导系统烧写,无需修改;target目录内容会烧写到flash芯片。如果需要替换镜像文件,只需将target目录中的对应文件替换掉,并保持同样的命名,之后再重新进行系统烧写。
2、SD卡烧写系统 将上一节中制作好的SD卡插入,同时将拨码开关置于下图所示。3、5、8 均为ON,1、2、4、6、7均为 OFF,如下图。此时将SD卡中target的内容烧写到NAND中。
1806084ee78f100d22d5bcfca46a2a1f.png
  1. <span style="color:#333333">lib/modules/4.1.15-00026-g407ada6-dirty/modules.softdep
  2. lib/modules/4.1.15-00026-g407ada6-dirty/source
  3. lib/modules/4.1.15-00026-g407ada6-dirty/modules.dep.bin
  4. lib/modules/4.1.15-00026-g407ada6-dirty/modules.symbols
  5. Update Complete!!!!!!!</span>
复制代码

同时iMX6ULL底板上的LED闪烁。烧写时间较长,等待系统烧写完成之后,串口打印信息:
烧写完成之后,断电,将拨码开关拨到4、5、8均为ON,1、2、3、6、7均为OFF,重新上电iMX6ULL开发板,NAND启动。
3、OTG烧写系统 注意:使用OTG烧写时,iMX6ULL开发板不能插入SD卡。
mx6ull-4gemmc-512mddr-qt5.6.vbs        烧写4GeMMC+512MDDR的系统
mx6ull-256mnand-256mddr-cmd.vbs       烧写256MNAND+256MDDR系统
①、 首先将烧写工具Mfg工具拷贝到 windows 下解压,烧写工具路径如下所示:用户资料\Linux\烧录工具\ mfgtools.zip
②、5V电源供电如图,开关拨到供电口端:
fbdc6e1cce96a8caec399b929d7cc727.png
③、拨码开关设置为 1、2为ON,其他状态任意。如图:
bb7e6e8a22c080b834b78d463da89c26.png
④、双击“ mx6ull-256mnand-256mddr-cmd.vbs ”(已写好脚本,直接烧写),如下图:
cc66f79b65e63ed70d3558c9281f57b2.png
⑤、插入USB OTG,如下图:
cd9767a2189193a52edafddfb3c16e28.png
自动识别为HID,如图:
248cc849203d0e670e992eba202545e6.png
⑥、点击start,开始烧写系统,中间弹出格式化对话框,点击“取消”格式化选项,或者不管它,直到烧写完成。如图:
a8a115e75a710ecc344dfd17df9968df.png
⑦、系统烧写完成之后,出现“Done”,之后点击“stop”,停止。再点击“Exit”,关闭烧写烧写工具。断电,将拨码开关拨到4、5、8均为ON,1、2、3、6、7均为OFF,重新上电iMX6ULL开发板,NAND启动。
二、单步更新内核1、 eMMC单步更新内核 系统启动后,将待替换设备树放于u盘中,插入到开发板上,在超级终端输入命令:
  1. <span style="color:#333333">root@fl-imx6ull:~# cp /run/media/sda1/imx6ull-S-gpmi-1024x600c7.dtb  /run/media/mmcblk1p1/imx6ull-S-gpmi-1024x600c7.dtb
  2. root@fl-imx6ull:~# cp /run/media/sda1/zImage  /run/media/mmcblk1p1/zImage
  3. root@fl-imx6ull:~# sync
  4. root@fl-imx6ull:~# reboot</span>
复制代码

重启后,到Uboot阶段选择对应dtb即可。
2、 Nand单步更新内核 更新dtb以及内核,logo,可以使用nandwrite命令,该命令也已经打包在文件系统中。使用时,要将待烧写的dtb、logo、 zImage文件复制到文件系统的某个目录下(本文示例为/root),然后擦除掉对应分区中的旧固件,再分别使用nandwrite命令将新的固件写到对应的分区中。参考命令如下所示:

  1. <span style="color:#333333">root@fl-imx6ull:~# flash_erase /dev/mtd4 0 0
  2. Erasing 128 Kibyte @ 7e0000 -- 100 % complete
  3. root@fl-imx6ull:~# nandwrite -p /dev/mtd4 /run/media/sda1/target/zImage
  4. Writing data to block 0 at offset 0x0
  5. Writing data to block 1 at offset 0X20000
  6. Writing data to block 2 at offset 0x40000
  7. …</span>
复制代码

更新内核:
更新dtb:
  1. <span style="color:#333333">root@fl-imx6ull:~# flash_erase /dev/mtd3 0 0
  2. Erasing 128 Kibyte @ 2e0000 -- 100 % complete
  3. root@fl-imx6ull:~# nandwrite -p /dev/mtd3 /run/media/sda1/target/imx6ull-S-gpmi-800x480c7.dtb
  4. Writing data to block 0 at offset 0x0</span>
复制代码

更新logo:
  1. <span style="color:#333333">root@fl-imx6ull:~# flash_erase /dev/mtd1 0 0
  2. Erasing 128 Kibyte @ 1e0000 -- 100 % complete
  3. root@fl-imx6ull:~# nandwrite -p /dev/mtd1 /run/media/sda1/target/logo.bmp
  4. Writing data to block 0 at offset 0x0
  5. Writing data to block 1 at offset 0x20000
  6. Writing data to block 2 at offset 0x40000</span>
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表