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正常连接。
-
双击运行
AitUVCExtTest.exe
程序,在弹出的对话框中通过vid和pid(sigmastar平台默认vid为1b6b,pid为0102)来辨识并选择需要升级的USB camera设备,如下图:图3-1
-
点击“Update Flash”按钮选择升级包文件,然后静静地等待升级,如下:
图3-2
因为通过XU command一次只传输大小为30个Byte的数据,同时nor flash一次只能写512个Byte(nand flash一次可以写1024个Byte),所以升级烧录过程需要一定的耗时,升级包越大,耗时越长。测试升级烧录一个大小为668KB的文件,耗时5分钟左右。