XU command升级工具使用说明


1. 工具介绍

XU CMD升级工具(以下称工具)目前分为两部分,如下图。

图1-1

其中AitUVCExtTest.exe用于通过XU command向device发送升级包数据,每次发送32Byte;而SS_UVCPHeader_Add.exe则用于在需要升级的分区文件前加上大小为32个byte的文件头信息,主要用于标识当前升级的分区类型(例如是kernel或者是其他分区)以及分区文件大小,详细信息说明请查阅SS_UVCPHeader_Add\Spec [Sigmastar]_FW_UVCUpdate_PayloadHeader1_2.doc。

这两个工具的使用顺序是首先用SS_UVCPHeader_Add.exe工具来给升级分区文件添加头部信息,然后再用AitUVCExtTest.exe工具烧录升级文件。


2. SS_UVCPHeader_Add.exe使用说明

如上所说,SS_UVCPHeader_Add.exe是用于添加头部信息的。其所在目录内容如下图,其中SS_UVCPHeader_Add目录是SS_UVCPHeader_Add.exe工具的源码。使用这个工具的方式是执行AddHead.bat文件(双击或者右键“打开”),应该根据实际情况和需求来修改该文件的内容。下面将对该文件内容进行介绍。

图2-1

文件中以::开头的是注释的内容,可供参考。下面对命令的内容进行介绍:

    .\SS_UVCPHeader_Add.exe -i images\kernel -o out\kernel_h -d 9 -f 1

该命令的意思是对kernel分区文件添加头部信息,原文件是images\\kernel,加了信息头之后的文件是out\\kernel_h,它分区类型(partition type)是9,flag值是1。这里需要特别注意的是partition type的值虽然Spec [Sigmastar]_FW_UVCUpdate_PayloadHeader1_2.doc中有规定,但应该根据实际的分区信息赋值,只要与device端的auPartitionTypeName数组的值对应上就好(该数组位于st_uvc.c文件中)。Device端会根据信息头中的partition type值来判断当前要升级的是哪个分区。

因为烧写工具AitUVCExtTest.exe一次只能烧写一个文件,当需要升级多个分区文件时,为了避免多次选择并烧写文件,可以将多个分区文件打包成一个升级包,命令举例如下:

    copy /b out\nvrservice.sqfs_h+out\kernel_h out\MergeImage

该命令将nvrservice和kernel分区文件打包成一个升级包文件MergeImage。烧录的时候选择MergeImage文件即可升级nvrservice和kernel两个分区。


3. AitUVCExtTest.exe使用说明

使用工具前请确保板子device有正常运行uvc程序,且和host通过USB正常连接。

  1. 双击运行AitUVCExtTest.exe程序,在弹出的对话框中通过vid和pid(sigmastar平台默认vid为1b6b,pid为0102)来辨识并选择需要升级的USB camera设备,如下图:

    图3-1

  2. 点击“Update Flash”按钮选择升级包文件,然后静静地等待升级,如下:

    图3-2

    因为通过XU command一次只传输大小为30个Byte的数据,同时nor flash一次只能写512个Byte(nand flash一次可以写1024个Byte),所以升级烧录过程需要一定的耗时,升级包越大,耗时越长。测试升级烧录一个大小为668KB的文件,耗时5分钟左右。