Hi3520DV400开发板镜像烧录全攻略:HiTool与TFTP工具实战指南(NAND/NOR/eMMC)
1. Hi3520DV400开发板镜像烧录基础准备第一次接触Hi3520DV400开发板的开发者最头疼的就是镜像烧录这个环节。我刚开始用这块板子的时候花了整整两天时间才搞明白不同存储介质的烧录区别。现在把这些经验整理出来帮你少走弯路。开发板支持的三种存储介质各有特点NOR Flash启动最快但容量小适合存放bootloaderNAND Flash性价比高但需要坏块管理eMMC则兼具速度和容量优势。实际项目中我推荐用NOR eMMC组合既保证启动速度又满足存储需求。在开始烧录前需要准备以下硬件环境一台Windows电脑Win7/Win10均可HiTool工具链建议用5.3.18以上版本TFTP服务器软件推荐Tftpd64网线、串口线各一条12V电源适配器软件准备有个坑要注意Hisilicon的工具链对中文路径支持很差建议把所有工具和镜像文件都放在英文目录下。我有次把HiTool装在桌面目录下结果烧录时各种报错排查了半天才发现是路径问题。2. HiTool工具串口烧录实战第一次烧录必须通过串口进行这个阶段最容易出问题。我总结了个三步法2.1 硬件连接检查先用串口线连接开发板的UART0通常是靠近网口的那个波特率设为115200。打开设备管理器确认COM口号这个数字后面会用到。有个细节某些USB转串口线需要安装特定驱动如果设备管理器里显示黄色感叹号需要先解决驱动问题。2.2 HiTool基础配置打开HiTool后按这个流程操作芯片类型选Hi3520DV400传输方式选Serial端口号选刚才查到的COM口波特率保持115200不变在Burn标签页勾选uboot选项第一次烧录建议只烧写uboot成功率更高。等uboot正常工作后再通过网口烧录其他镜像。我遇到过同时烧写三个镜像导致校验失败的情况回退起来特别麻烦。2.3 镜像地址配置重点来了不同存储介质的地址映射完全不同NOR Flashuboot一般放在0x00000000NAND Flashuboot放在block 0eMMCuboot放在boot分区以NOR Flash为例配置参数应该是Fastboot: 0x00000000 Kernel: 0x00100000 Rootfs: 0x00500000点击Burn后立即给开发板上电此时串口终端会显示烧录进度。如果卡住不动尝试降低波特率到57600再试。3. TFTP网络烧录进阶技巧uboot烧录成功后后续的kernel和rootfs建议用TFTP通过网络烧录速度能快10倍不止。这里分享几个实战经验3.1 网络环境搭建开发板和主机必须位于同一局域网。建议用以下命令设置uboot环境变量setenv ipaddr 192.168.1.100 setenv serverip 192.168.1.2 setenv netmask 255.255.255.0 saveenv主机上运行Tftpd64时注意关闭Windows防火墙否则会出现超时错误。我习惯把镜像文件放在Tftpd64的根目录下路径越简单越好。3.2 分步烧录命令对于NOR Flashtftp 0x82000000 uImage sf erase 0x100000 0x400000 sf write 0x82000000 0x100000 ${filesize}对于NAND Flashtftp 0x82000000 rootfs.ubifs nand erase.part rootfs nand write.e 0x82000000 rootfs ${filesize}对于eMMCtftp 0x42000000 rootfs.ext4 mmc write 0x42000000 0x8800 0x100000特别注意eMMC的写入地址计算方式是(offset/512)所以1MB对应的十六进制值是0x800。4. 不同存储介质烧录详解4.1 NOR Flash烧录特点NOR的最大优势是XIP就地执行特性uboot可以直接从NOR启动。但擦写次数有限约10万次适合存放不常修改的bootloader。实际项目中我发现某些型号的NOR Flash需要特殊擦除命令sf probe 0 sf unlock 0 sf erase 0x100000 0x400000擦除时间较长约30秒要耐心等待完成提示。4.2 NAND Flash注意事项NAND必须处理坏块问题。烧录前建议全片擦除nand scrub烧录文件系统时YAFFS2格式需要指定实际大小nand write.yaffs 0x82000000 0x500000 96d200最后的96d200是文件实际字节数的十六进制表示可以通过stat命令获取。4.3 eMMC高级技巧eMMC分区是个技术活推荐使用ext4格式mmc write.ext4sp 0x44000000 0x8800 0x100000如果遇到写入失败可能是分区表有问题需要重新分区fdisk -c 0 fatformat mmc 0:1 ext4format mmc 0:2 ext4format mmc 0:35. 常见问题排查指南5.1 烧录失败排查步骤检查电源稳定性电压跌落会导致烧录异常确认线缆连接可靠网线建议用超五类以上验证TFTP服务器是否正常用其他客户端测试查看uboot环境变量是否正确特别是serverip5.2 典型错误解决方案现象1HiTool提示握手失败解决方法检查串口线序是否正确尝试降低波特率现象2TFTP传输超时解决方法关闭主机防火墙确认IP地址设置正确现象3NAND烧录后校验失败解决方法标记坏块后重试命令nand markbad 0x200000现象4eMMC无法识别解决方法重新插拔模块执行mmc rescan6. 启动参数配置秘籍正确的启动参数能让系统稳定运行。这是我多年总结的配置模板NOR Flash启动setenv bootargs mem128M consolettyAMA0,115200 root/dev/mtdblock2 rootfstypejffs2 rw setenv bootcmd sf probe 0; sf read 0x82000000 0x100000 0x400000; bootm 0x82000000NAND Flash启动setenv bootargs mem128M consolettyAMA0,115200 root/dev/mtdblock2 rootfstypeubifs ubi.mtd2 setenv bootcmd nand read 0x82000000 0x100000 0x400000; bootm 0x82000000eMMC启动setenv bootargs mem512M consolettyAMA0,115200 root/dev/mmcblk0p3 rw rootwait setenv bootcmd mmc read 0 0x44000000 0x800 0x4800; bootm 0x44000000保存时务必执行saveenv reset遇到启动卡住的情况可以通过串口查看uboot打印信息。常见的mmcblk0p3 not found错误通常是root参数与实际分区不匹配导致的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2427970.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!