跳转至

烧录说明


1. HW 相关环境准备

1.1 供电 & DebugUart

  1. 统一电源: DC 5V,同时支持通过该 USB 口更新主控SSC309QL 的固件

  2. Arm 调试串口: CON10 ARM DBG,TTL电平,默认波特率为: 115200,用于连接主控 SSC309QL 的调试串口

  3. TWS 调试串口: WQ7036AX(蓝牙芯片),CON 11 TWS DBG,用于连接 TWS Soc 的调试或者烧写固件 ,具体如下图所示

    img

1.2 板子启动方式选择

Comake PI D2 板默认是 EMMC 启动方式。

2 主控SSC309QL烧写

2.1 USB Factory Tool烧写

USB Factory Tool 为Sigmastar空片烧录工具,在编译空片烧录镜像时会一起打包在镜像同级目录下,正常编译生成镜像后可到 image/output/images/Usb_Ufu_Upgrade/exe/这个路径下查看到 USB Factory Tool。

2.1.1非空片烧写

需求场景:

已有完整pcb,有usb 接口,确保系统可进入uboot模式

实现原理:

emmc里面已经有uboot。且此份uboot支持device ufu模式下接pc升级,通过执行uboot和pc软件进行交互,完成下载升级。

此模式下要求:emmc里面已有的uboot 本身具备ufu升级能力,uboot下支持ufu命令,默认烧录镜像已开启。具体配置uboot的方法请看3.1 uboot支持升级配置

若emmc非空片,设备上电时不会自动引导Uboot,需要先按住enter键,然后设备上电,在设备进入uboot后在Iford uart串口终端中输入ufu commond命令,然后执行以下步骤。

操作步骤:

  1. 按正常流程编译sdk,生成image升级文件

  2. 整包sdk编译成功后,执行 make image-usb-factory 制作升级镜像,可在 image/output/images/Usb_Ufu_Upgrade/ 下看到名为 USB_UPGRADE_UFU.bin 的升级文件

    img

  3. 打开uboot升级功能的方式有三种,这里推荐第二种,其余三种方式请看3.1 uboot支持升级配置

    若emmc非空片,设备上电时不会自动引导Uboot,需要先按住enter键,然后设备上电,在设备进入uboot后在Iford uart串口终端中输入ufu commond命令进入device升级模式

    img

  4. 上电,接入usb。可以观察到pc上有接入存储设备

  5. PC通过usbhub连接需要升级的板子(板子flash必须为空片),在 project/image/output/images/Usb_Ufu_Upgrade/exe/下,选择 USB_Factory_Tool_64_1.0.0.19.exe,打开USB Factory Tool.exe,显示如下:

    图上各个ICON功能如下:

    0→烧录两种模式

    • auto模式,一般来说auto用于产线,可以自动监测设备插入,自动升级

    • Manual模式,一般来说用于开发,需要选择某台设备进行升级,需要手动选择升级设备(USB大容量存储设备), 再点击升级按钮

    1→升级开始和停止的按钮,需要注意的是停止按钮必须等接上的所有设备升级成功后才能按下;

    2→升级包选择按钮:用来选择usb空片的升级包文件;

    3→usb设备升级状态和结果显示栏,需要注意的是目前空片升级有两个状态:准备和升级。必须等升级状态成功后才能拔掉usb设备插上另一个usb设备进行升级;

    4→显示目前识别到的usb设备

    5→Usb设备插入显示状态log

  6. 选择好usb升级包文件,等插上的所有设备都识别到后,点击start按钮进行升级,升级完成后的界面如下:

    图上各个ICON功能如下:

    1→显示每个设备升级的结果;

    2→显示每个设备升级的log;

    3→显示连接的所有设备个数以及升级的状态;

    4→显示检测到的usb设备,需要注意的是升级成功后检测到的usb设备会被移除

    根据1→显示的每个设备的升级状态,进行如下操作:

    • 升级成功:拔掉对应的设备,插上另一块空片继续进行升级;

    • 升级失败:可以尝试插拔一下设备重新 升级看是否ok


2.1.2空片烧写

若emmc为空片烧录前需要先烧录 TWU1WQ7036(蓝牙芯片) 的镜像,可参考2.2 蓝牙 WQ7036AX 烧录,并且控制 WTS引脚 接3.3V,使能iford usb连接,否则无法正常烧录,可参考图1.1所示的TWS引脚。后续的步骤可参考 2.1.1 非空片烧写的 4,5,6步骤

2.2 OTA升级

详情请看OTA升级使用参考

3 蓝牙 WQ7036AX 烧录

硬件链接可以参考图1.1所示的TWU1WQ接口,注意第一次烧录务必勾选SBL复选框。烧录务必将WTS pin拉高到3.3V。具体烧录步骤如下所示:

  1. 选择 Flash Burn
  2. 选择需要烧录的 固件
  3. 选择 SBL
  4. 选择对应的串口
  5. 点击 Start
  6. 注意:点击 Start 按钮后 需要 给板子 重新上电!

    img

4. FAQ

4.1 uboot支持升级配置

4.1.1 uboot支持升级配置

    location:
    Command line interface
        -->SigmaStar cmmon commands
            -->[*] ufu

4.1.2 开启ufu的三种方式

方式一:

进入 sdk 的 boot 目录下,输入make menuconfig,按照下面的选择选择 autoboot ufu by env(ota_upgrade_status)

    location:
    Command line interface
        -->SigmaStar cmmon commands
            -->[*] ufu
            -->[*] autoboot ufu by env(ota_upgrade_status)

然后进入板端的uboot模式,设备上电时不会自动引导Uboot,需要先按住enter键,然后设备上电,输入以下命令

setenv ota_upgrade_status 1

saveenv

方式二:

uboot模式下使用输入ufu command可以直接进入device升级模式。

方式三:(通过gpio按键检测进入UFU Mode)

进入 sdk 的 boot 目录下,输入make menuconfig,按照下面的选择选择 autoboot ufu by gpio

    location:
    Command line interface
        -->SigmaStar cmmon commands
            -->[*] ufu
            -->[*] autoboot ufu by gpio

上电开机,开机后uboot检测到按键触发,自动会进入device ufu升级模式。

如果需要指定对应的GPIO,则需要按照以下方法配置,并编译重新烧录uboot。

配置指定按键指定状态方法:修改boot/common/autoboot.cFORCE_UPGRADE_GPIO(指定IO)、FORCE_UPGRADE_ACTIVE_HIGH(指定状态),具体如下图:

实现原理:通过在uboot启动时,通过检测指定IO的指定状态,选择是否进入ufu mode(device升级模式),相关代码实现在autoboot.c中,感兴趣可以自行研究。