[文章]《鸿蒙设备学习菜鸟指南》之 【九、烧录(HiBurn和HiTool)】

阅读量0
1
7


《鸿蒙设备学习菜鸟指南》之 【九、烧录】


[目录索引]

九、烧录

马上就要进入激动人心的环节了,我们编写的代码,编译出来的镜像文件,到底能不能正常运行,就等烧录到设备上,是骡子是马拉出来溜溜就得了。
在最简化方案中,我们使用了DevEco Device Tool烧录的核心组件HiBurn和HiTool,来直接完成对应的烧录工作。如果使用全套完整的开发环境,最终也是调用上述工具,完成最终的烧录工作。
  • Windows系统:直接下载即可使用

    • HiBurn:附件下载,Wi-Fi-IoT设备使用
    • HiTools:附件下载,AIC和IPC使用

  • MacOS系统:需要下载Windows的工具包,然后使用CrossOver来运行

  • Linux系统:需要下载Windows的工具包,然后使用Wine来运行

在MacOS系统和Linux系统上,我们需要做一些配置,使得在CrossOver或者Wine中运行的Windows软件,能够使用系统自身的串口。
  • MacOS系统:
    • 操作前,需要退出Mac环境下面的串口工具,以免CrossOver环境的无法打开串口设备
    • 建立鸿蒙设备烧录环境:
      CrossOver_New.png
    • 建立串口设备关联:
      #说明:以下在VsCode终端窗口执行,或者Terminal或者命令行黑窗口中执行:
      ls /dev/ | grep ser
      #结果显示:/dev/cu.u***serial-1410
      #结果显示:/dev/tty.u***serial-1410​
      #说明:进行设备关联cd ~/Library/Application Support/CrossOver/Bottles/鸿蒙设备烧录
      ln -s /dev/cu.u***serial-1410 dosdevices/com1​
      #说明:进行注册表设置#打开~/Library/Application Support/CrossOver/Bottles/鸿蒙设备烧录/system.reg
      #在最后添加:[Hardware\Devicemap\Serialcomm] 1231984861"Serial0"="COM1"
    • CrossOver_link.png
    • CrossOver_reg.png
    • 重启CrossOver,并按照如下步骤,运行Windows串口工具IPOP:
      CrossOver_IPOP.png
    • 然后,按照如下步骤设置,并连接串口,连接成功后,需要重启设备,以便接受最新的启动信息。
      如果连接失败,会显示如下的信息:
      IPOP_Com_Error.png

      此时需要重新检查“建立串口设备关联”,确保关联正确后,再次重新启动CrossOver,并运行对应的命令。
      设置正确,连接成功后,重启设备后,将收到类似下面的信息:
      CrossOver_COM_Connect.png
    • 如果出口出现了对应设备的启动信息,说明我们可以在CrossOver环境下,使用串口了。然后使用同样的方法,运行HiBurn和HiTool,准备烧录工作。以下示例为HiBurn,如要打开HiTool,选择HiTool.exe即可。
      CrossOver_HiBurn_run.png


  • Linux环境:除了ls /dev/ | grep ser输出与MacOS有差别外,其他的都参考MacOS环境操作即可


  设置好了HiBurn和HiTool环境后,我们就可以开始具体的烧录工作了。为了让HiBurn和HiTool能正常连接到设备的串口,请关闭串口连接,或者串口调试工具,以便让串口设备空出来。

  之前,我们进行过编译,编译后的文件,就存放在OHOS/code/out目录下,分别对应各自的编译代码:
Compile_result.png



现在,我们可以开始使用HiBurn和HiTool进行正式的烧录了,具体的烧录操作如下:

使用HiBurn烧录Wi-Fi IoT设备烧录Wi-Fi IoT设备比较简单,打开HiBurn后,按照如下界面配置一步步配置即可:
HiBurn_run.png



有几点需要注意的是:
  • 请先断开其他串口工具的连接,否则会占用串口,导致HiBurn无法连接串口。
  • 通常我们选择Hi3861_wifiiot_app_allinone.bin进项进行烧录,该文件位于out/wifiiot目录下
  • 点击Connect后,HiBurn会显示Connecting...等待设备连接,此时需要按一下电源右边的RST按键,就会启动烧录过程,显示Ready to load at 0x10A000,然后开始走进度,预计需要2~3分钟。
    • 如果没有按RST,则会有如下提示:
      HiBurn_connect_error.png
    • 正常开始后,提示如下:
      HiBurn_flush_start.png

  • 烧录完毕,最后会显示erase flash 0x1FA000 0x6000 进度信息...... Execution Successful。此时,HiBurn会等待下一次烧录,如果没有任何操作,也会提示等待错误。
    • 正常烧录完成后,提示如下:(烧录后,请点击Disconnect断开连接,否则会继续烧录,永不休止)
      HiBurn_flush_success.png
    • 烧录完成后,如果不断开连接,则会有如下超时提示:
      HiBurn_wait_timeout.png

烧录完成后,点击Disconnect端口串口连接,然后再用串口工具(如IPOP)连接,最后按一下设备的RST按键,在串口工具上就会出现设备启动的信息。

使用HiTool烧录AIC和IPC设备不同于Wi-Fi IoT设备烧录只能用串口,AIC和IPC设备除了可以用串口烧录外,还可以使用USB口和网口进行烧录,而在这三种方式中,网口烧录是最简单的,只需连接好网口和串口,再打开HiTool简单配置即可烧录。
有几点需要注意的:
  • 串口:需要预先连接好,并能正常使用,因为烧录过程中的控制指令,是通过串口发送的,网口用于传输镜像文件
  • 网口:可以直接连接到路由器,也可以直接连接到电脑上

    • 电脑和设备使用网线直接连接:

      • 将设备用网线直接连接到电脑的有线网络接口即可
      • 在电脑上,手动设置该网口网卡的IP为192.168.2.1,子网掩码为255.255.255.0,其他为空即可;特别注意:

        • 请根据你的实际情况,设置网卡IP地址,本章文章中的192.168.2.1均为示例
        • 需要与路由器的所使用的网络,不在一个同网段
        • 建议关闭电脑的Windows防火墙,特别是在直连模式下,否则可能造成设备与电脑无法通讯。


        Computer_connect_ip.png
        Computer_connect_ip_show.png

    • 设备使用网线连接到路由器:将设备用网线直接连接到电脑网络所在的路由器即可;
      特别注意:

      • 这种模式下,电脑的IP地址,请使用DHCP自动获取模式,以免设置错误,造成设备无法和电脑正常连接。

  • 如果是在虚拟机中的Windows上面进行操作,需要确保该网口对应的网卡,使用的连接模式为桥接,以便能够正常与设备进行网络通信。建议关闭电脑的Windows防火墙,特别是在直连模式下,否则可能造成设备与电脑无法通讯。
  • 为了确保设备能够和烧录的电脑正常连接,我们可以进行如下的测试:
    #说明:使用串口连接设备,打开串口终端工具连接设备,然后重启设备,显示如下信息的时候,按回车键进入uboot操作界面
    Hit any key to stop autoboot:  0
    hisilicon #
    #说明:以下输入命令,回车执行;以下5项缺一不可
    hisilicon # setenv serverip 192.168.2.1
    hisilicon # setenv ethaddr 00:36:85:fa:c2:d0
    hisilicon # setenv ipaddr 192.168.2.0
    hisilicon # setenv netmask 255.255.255.0
    hisilicon # setenv gatewayip 192.168.2.1
    #说明:请确保执行pri以后,以下信息均有显示
    hisilicon # pri
    #[此处省略多行]
    ethaddr=00:36:85:fa:c2:d0
    gatewayip=192.168.2.1
    ipaddr=192.168.2.0
    netmask=255.255.255.0
    serverip=192.168.2.1
    #[此处省略多行]​

    #说明:如果以上配置都正确,ping 电脑的IP,将会有下面的返回,is alive表示网络连通正常
    hisilicon # ping 192.168.2.1
    Hisilicon ETH net controler
    eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
    eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
    Using eth0 device
    host 192.168.2.1 is alive

    #说明:如果有某一项没有设置,ping 电脑的IP,将会有类似下面的返回,is not alive表示网络连通失败
    hisilicon # ping 192.168.2.1
    Hisilicon ETH net controler
    MAC address invalid!
    eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
    eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
    *** ERROR: `ethaddr' not set​
    Abort
    ping failed; host 192.168.2.100 is not alive

    #说明:如果设备无法访问到电脑,将会有如下的返回,is not alive表示网络连通失败
    hisilicon # ping 192.168.2.1
    Hisilicon ETH net controler
    eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
    eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
    Using eth0 device
    ping failed; host 192.168.2.1 is not alive



确保网络连通后,然后,我们就可以打开HiTools进行烧录了:
  • 打开后,首先需要确保选择了正确的板卡:
    • AIC:Hi3516DV300
    • IPC:Hi3518EV300
      HiTool_board_select.png

  • 然后,进行烧录参数配置:
    HiTool_config.png
  • 配置完成,点击烧写,就会开启烧录进程:
    HiTool_flush_start.png
  • 此时根据界面提示,应将设备断电,然后重新上电,就会开始烧录uboot:
    HiTool_flush_boot.png

    如果设备一直没有断电在上电,则会提示如下错误提示,此时应重新点烧录,根据界面提示将设备断电再上电即可:
    HiTool_flush_com_error.png
  • 正常情况下,烧录完成uboot,就会自动烧录系统了,烧录完成后,会提示烧录所用的时间:
    HiTool_flush_success.png

    如果设备无法通过网络成功连接到HiTool所在的电脑,会出现如下的错误提示,此时应重新检查设备和电脑的网络是否连通:
    HiTool_tftpd_error.png
  • 正常烧写完成,HiTool会自动向设备发送reset指令,然后设备会自动重启,并进入shell环境;此时使用串口终端工具连接设备,连接成功后,回车,即可出现OHOS #:
    AIC_boot_shell.png

    如果你看到了OHOS #提示符,恭喜你,烧录成功!!!




HiTool.zip.001
(47.68 MB, 下载次数: 4)
HiTool.zip.001
(47.68 MB, 下载次数: 0)
HiTool.zip.001
(47.68 MB, 下载次数: 0)
HiTool.zip.001
(47.68 MB, 下载次数: 3)
HiBurn.zip
(5.49 MB, 下载次数: 15)
HiTool.zip.003
(47.68 MB, 下载次数: 4)
HiTool.zip.002
(47.68 MB, 下载次数: 5)
HiTool.zip.004
(8.08 MB, 下载次数: 5)

回帖

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