imx6ull 烧录
启动和烧录
i.MX6ULL 在上电以后,芯片ROM 里面固化的程序会根据 BOOT_MODE[1:0] 寄存器的值来选择启动方式。下表的值与启动拨码开关相对应。
芯片ROM 里面固化的程序会初始化部分硬件,然后从程序存储介质中读取镜像到SRAM内存中,在执行过程中如果出现错误,则会自动切换到USB 串行下载模式。uboot 相当于是一个二级 boot。
i.MX6ULL镜像组成
uboot.imx = IVT+Boot Data+DCD+用户程序:
-
Image vector table 简称IVT;
-
Boot data 启动数据;
-
Device configuration data 简称DCD,主要是芯片的配置信息;
-
用户代码生成的执行文件,比如 uboot.bin;
针对不同的存储介质,IVT 的偏移是不同的,例如 EMMC,从上表可以看出他的偏移是1Kbyte;
以上配置与 imximage.cfg 配置有关
i.MX6ULL镜像烧录
OTG烧写
mfgtools配置
设备连接
使用USB 连接电脑到板子上的 OTG口(虚拟成USB从机),然后把 BOOT 拨码开关拨到 SUB 串行启动 模式上。
文件准备
然后把需要烧录的 uboot、kernel、dtb和rootfs拷贝到 **xxx\mfgtools_for_6ULL\Profiles\Linux\OS Firmware\files\linux 目录,文件命名必须按照如下文件进行重命名,否则打开软件会报错。
开始烧录
启动烧录软件后,点击 start,开始进行下载,烧录完成后,点击 stop,然后 Exit 出软件,再把板子上的 BOOT 拨码开关拨到 EMMC启动 模式,连接 USB-UART口,登录命令行即可。
问题记录
- 烧录无法进入第二阶段,始终显示没有设备连接
不要替换 firmware 的文件,只替换 files下的文件
其实说白了firmware文件夹下的 设备树,zImage,uboot这三个文件不需要是你自己的,只要能在你的开发板DRAM里跑起来一个系统就行,接下来才是把你放在files文件夹里的uboot,zImage,设备树,rootfs烧写到Emmc或者Nand flash里去的过程,这个过程是firmware 里面的三个文件组成的系统完成的,烧完了一关机他们就不在了。