[文章]Hi3516开发板USB口烧录方法总结

阅读量0
0
0
文章转载自:liangkz

前文《Hi3516开发板烧录总结》提到:

3. USB烧录还没成功
官网上说只需要连接USB线(包含了供电)和串口线即可,按照官方文档操作,中间需要给平台“重启开发板(下电再上电)”,这总不能拔掉USB线再插上吧,开发板串口线座子边上倒是有一个SW3按键(原理图上是UPDATE_MODE),但目前实际按下去是没有反应的,估计是还需要先做一些配置。

这几天烧录标准系统,速度实在是太慢了,完整烧录一次需要8分钟以上~~所以想尝试一下USB烧录。

向华为官方咨询了一下,上面说到的需要给平台“重启开发板(下电再上电)”的操作,原来就是拔插一下USB数据线,简单粗暴有效,我居然一开始就想当然地把这个操作否定掉了,实在是不应该!

我尝试了一下各种烧录方法,结果如下表:


下面就对上表红框内的两种烧录方法做个对比:


首先需要在Windows主机安装好USB烧录的驱动程序“HiUSBBurnDriver”,以及USB转串口的驱动程序。(请按官方指导文档去下载和安装)

USB口烧录,只需要连接两根线:USB线数据线(包含了供电)连接开发板背后的USB口和主机USB口;USB转串口线连接开发板串口到主机另一个USB口。

USB转串口线,默认是直接接到windows主机上的,需要切换连接到Linux虚拟机里去,如下图,选择“连接(与主机断开连接)”,这时候windows的串口设备就会切换到Linux虚拟机里的USB0。



Linux虚拟机里,在DevEco 打开 Hi3516工程的配置页面,点击“hi3516dv300”标签,找到“Upload Options”,“upload_port”设置为“/dev/tty/USB0”,“upload_protocol”设置为“hiburn-u***”,“upload_partitions”默认的四个可烧录的分区都列出来了,保持默认配置(跟华为官方确认了,USB烧录方法必须要擦除fastboot,然后一次性烧录4个分区),所以这里的“upload_partitions”不要改动。“Partition Configuration”里面的四个烧录分区的相关信息,也保持默认配置即可,点击“Save”保存配置。




在DevEco的“Project Tasks”界面展开“hi3516dv300”,再展开“hi3516dv300_fastboot”,点击“Erase”,开始擦除fastboot,这一步是必须要做的



右下角的终端界面会提示:
  1. SerialPort has been connented, Please power off, then power on the device.
  2. If it doesn't work, please try to repower on.
复制代码

这时候就需要手动拔插一次USB数据线(注意不是USB转串口线),这就是“power off”再“power on”开发板了。

开发板重新上电,擦除fastboot分区成功,会有下图的log,同时会有一个新的“Huawei USB Serial”设备尝试连接进来,选择将其连接进虚拟机里。


确定后,再点击“Project Tasks”界面上的“Upload”按键,这时候平台会自动重启:
  1. Open USB Success
  2.     ################################################# ---- 10%
  3.     ########## .....
  4.     ################################################# ---- 100%
  5.     Boot download completed!
  6.     Open USB Success
  7.     start download process.
  8.     Boot started successfully!
复制代码

接下来是自动执行一组“Send command:”开始烧录,20s左右就完成烧录了,速度可比网口烧录快多了!


烧录完成后,平台自动重启,会停留在
  1. Hit any key to stop autoboot:  0
  2.     ## Error: "distro_bootcmd" not defined
  3.     hisilicon #
复制代码

这一步,这是因为烧录了fastboot分区的缘故。

这里,需要你重新写入引导内核启动的指令和参数,可以直接点击“hi3516dv300”中的“Configure bootloader(Boot OS)”按钮,根据终端的提示,重新拔插一下USB数据线,就可以自动执行命令配置fastboot的指令和参数,并且自动重启了。



也可以在你清楚地知道自己在做什么的前提下,在终端手动写入下面四条指令完成同样的工作:
  1. setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
  2.     setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw";
  3.     saveenv
  4.     reset
复制代码

前两条指令的参数一定要与上面“Partition Configuration”配置的参数匹配,否则会出现无法正确引导内核启动的异常。

系统自动重启,就大功告成了。


回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友