全量烧录

更新时间:2023-11-21 08:42:41下载pdf

本文档介绍如何在 THP10-Z-X 开发板烧录全量固件。通过串口登录到 THP10-Z-X 后台,以下操作均在后台完成。关于登录方法,参考 串口登录

数据备份

烧录全量固件将把整片 Flash 擦除,然后写入 128MB QIO 固件。所以,在烧录之前,要把开发板上的授权信息进行备份,待烧录完成后进行数据恢复。

备份授权信息

  1. 执行 nvram show,把打印的信息备份到电脑上。

    需要备份以下 key 的内容:

    country
    AUTHKEY
    bsn
    master_mac
    UUID
    

    另外,备份 Matter 相关信息:

    matterDacCrt-x     #DAC 分包
    matterDacCrt       #DAC 分包总条数
    matterPaiCrt-x     #PAI 分包
    matterPaiCrt       #PAI 分包总条数
    matterResource-x   #discriminator 和 passcode 等信息分包
    matterResource     #resouce 分包总条数
    matterPrivateKey-x #private 分包
    matterPrivateKey   #private 分包总条数
    matterPubKey-x     #publickey 分包
    matterPubKey       #publickey 分包总条数
    
  2. 烧录固件后,通过 nvram set <key> <value> 命令写入 NVRAM。

  3. 写入完成后,执行 nvram commit 写入 Flash。

进入 U-Boot

默认禁用进入 U-Boot,需要先登录到开发板的后台,把运行进入 U-Boot 标志打开。

执行 nvram set persist.uboot.enter on && nvram commit,然后断电重启。在重启过程不停地按 Enter 键,就会进入 U-Boot。

全量烧录

固件烧录

  1. 在终端上,设置 serverip(电脑 IP 地址)和 ipaddr(设备 IP 地址,默认是 192.168.1.55),终端输入 pri 可以看到当前的 IP 情况。

  2. 输入 setenv serverip xxxxsetenv ipaddr xxxx,插上网线后,输入 ping 指令,ping xxxxx(设置的 serverip),出现 alive,说明网络通畅。

  3. demo_fw_QIO_<版本号>.bin 放到 TFTP 的路径下。TFTP 开启 Server 服务,并且在 Setting 里已绑定 TFTP 到电脑服务端 IP 地址。

    全量烧录
  4. 终端输入 tftp 0x21000000 demo_fw_QIO_<版本号>.bin 上传,确认上传 100% 成功。这一点很重要。

    全量烧录
  5. 终端输入 nand erase.chip

  6. 终端输入 nand write 0x21000000 0x0 ${filesize}

  7. 网关重新上下电或者终端输入 res,来重启设备。

    全量烧录

全量固件烧录需要一定的时间,请耐心等待烧录完成。烧录完成后,断电重启即可。

数据恢复

全量固件烧录完成并重启后,最后一个步骤是把在 数据备份 章节备份的数据重新写入到 Flash。

示例:

# nvram set country CN
# nvram set AUTHKEY h8eHMxNGVCUxzsKLCd2cmgAgFwI6OUaY
# nvram set slave_mac1 105a17f3cc2b
# nvram set bsn JDCJ30UTU00009
# nvram set master_mac 105a17f3cbf2
# nvram set UUID 1420ee8d85e3a146
# nvram commit