I.MAX6ULL系统固化及更新方法

目录

前言

一、系统固化

1、使用mfgtool上位机固化系统(OTG方式)

二、系统更新

参考资料


前言

以下内容为学习正点原子阿尔法开发板(I.MAX6ULL Linux开发板)系统固化章节的备忘总结。

一、系统固化

1、使用mfgtool上位机固化系统(OTG方式)

在Windos使用NXP提供的mfgtool来向开发烧写系统。需要用先将开发板的USB_OTG接口连接到电脑上。Mfgtool工具是向板子的DDR中先下载一个Linux系统,然后通过这个系统来完成烧写工作。切记!使用OTG烧写的时候要先把SD卡拔出来,等USB OTG与电脑连接成功以后就可以再将SD卡插进去了。

第一步:将系统启动方式设置为USB启动

第二步:将USB_OTG接口与PC连接

第三步:打开mfgtool工具,选择对应的.vbs脚本进行烧写

第四步:等待烧写完成后,将启动方式改为对应的启动方式

二、系统更新

在通过上面方式将默认系统固化到启动设备中后,uboot是可以正常启动的,这时可以通过uboot的相关指令来对uboot、系统镜像(zImage)、设备树、根文件系统进行更新,在uboot中更新系统

第一步:根据上面烧写的启动设备设置启动方式,复位开发板,此时boot ROM会将uboot从启动设备中拷贝到DDR中运行。

第二步:进入uboot,通过nfs命令或tftp命令 将要更新的uboot或zImage或设备树从Linux主机(我这里是ubuntu主机)下载到DDR的指定地址中

nfs [loadAddress] [[hostIPaddr:]bootfilename]

tftp [loadAddress] [[hostIPaddr:]bootfilename]

loadAddress是要保存的DRAM地址,[[hostIPaddr:]bootfilename]是要下载的文件地址

第三步:通过mmc命令将下载到DDR中的内容写到要更新内容的介质中

更新SD卡中的uboot:

mmc dev 0 0 //切换到 SD分区 0 
tftp 80800000 u-boot.imx //下载 u-boot.imx到 DRAM 
mmc write 80800000 2 32E //烧写 u-boot.imx到 SD中 

更新EMMC中的uboot:

mmc dev 1 0 //切换到 EMMC分区 0 
tftp 80800000 u-boot.imx //下载 u-boot.imx到 DRAM
mmc write 80800000 2 32E //烧写 u-boot.imx到 EMMC中 
mmc partconf 1 1 0 0 //分区配置, EMMC需要这一步!

可能会有疑问了,uboot为什么是烧写到第0个分区的第2块处呢??

1、对于I.MAX6U来说,烧写过Linux系统的SD卡或EMMC会分为三个分区:

第0分区:存放uboot,没有文件系统

第1分区:存放系统镜像(zImage)、设备树(.dtb),采用的是FAT格式

第2分区:存放的系统的根文件系统,采用的是EXT4格式

所以更新uboot是从第0分区开始的。可以通过下面指令查看EMMC的分区:

mmc dev 1 //切换到EMMC 
mmc part //查看emmc的分区情况。会发现第0个分区识别不出来,是因为第0分区没有格式化,实际上第0个分区是存在的

2、 SD卡或者 EMMC的前2个块 (扇区 ),里面保存着分区表不能写!所以是从第2块开始的

参考资料

《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.3》

猜你喜欢

转载自blog.csdn.net/m0_37845735/article/details/105922030