基于开发者或工厂使用,烧录操作是多个固件(boot、ap、respak、tone等),每个都需要单独烧录,且每次烧录之前都需要重新上电,在实际量产过程中会比较耗时,聆思提供了将多个固件按照指定偏移地址打包成 hex 或 img文件的两种方案,只需一次烧录即可。
hex和img方案区别如下:
打包成hex的工具:不支持flash烧录器先烧录再贴片,通过csk串口烧录的时候,烧录hex文件,相对于烧录img文件速度较快;
打包成img的工具:支持flash烧录器先烧录再贴片;
获取
CSKPackOneHex.exe
或CSKPackOne.exe
-> 点击跳转。
聆思语音交互csk6的fw.hex固件由如下固件及地址组成(下述地址仅供参考,具体地址需根据实际项目而定):
文件名 | 说明 | 烧录的起始地址 |
---|---|---|
lsboot.bin | boot固件,聆思提供,不可二次开发 | 0x0 |
venus_ap.bin | ap固件,开发者可自行编译生成 | 0x20000 |
respak.bin | cp固件,聆思提供,不可二次开发 | 0x200000 |
tone.bin | 提示音固件,参照提示音文档生成 | 0x680000 |
fw.hex | 多合一的固件,为多个固件打包而成的单一固件 | 烧录时无需指定地址 |
fw.img | 多合一的固件,为多个固件打包而成的单一固件 | 烧录时需指定0x0地址 |
注意该方式仅限于flash贴片后再通过csk的串口烧录
Win64 位环境下的打包工具:CSKPackOneHex.exe
Ubuntu 18.04 环境下的打包工具:CSKPackOneHex
CSKPackOneHex {file1} {file1_offset} {file2} {file2_offset} ...
file1:输入文件名
file1_offset:在目标文件中的偏移,16 进制数字,以 0x 开头
此时将会在当前目录下,输出的文件名为 fw.hex
的文件
Win64打包示例
.\CSKPackOneHex.exe lsboot.bin 0x000000 venus_ap.bin 0x20000 respak.bin 0x200000 tone.bin 0x680000
Ubuntu 18.04打包示例
./CSKPackOneHex lsboot.bin 0x000000 venus_ap.bin 0x20000 respak.bin 0x200000 tone.bin 0x680000
如下图所示:
该方式支持flash烧录器先烧录,再贴片
Win64 位环境下的打包工具:CSKPackOne.exe
Ubuntu 18.04 环境下的打包工具:CSKPackOne
CSKPackOne {Padding Byte} {file1} {file1_offset} {file2} {file2_offset} ...
Padding Byte:填充的内容,16 进制数字,以 0x 开头
file:输入文件名
file_offset:在目标文件中的偏移,16 进制数字,以 0x 开头
此时将会在当前目录下,输出的文件名为 fw.img
的文件
Win64打包示例
.\CSKPackOne.exe 0xFF lsboot.bin 0x0 venus_ap.bin 0x20000 respak.bin 0x200000 tone.bin 0x680000
Ubuntu 18.04打包示例
./CSKPackOne 0xFF lsboot.bin 0x0 venus_ap.bin 0x20000 respak.bin 0x200000 tone.bin 0x680000
如下图所示:
注意:烧录fw.hex命令跟烧录fw.img文件有区别:
fw.hex 文件在打包过程中内部已经包含了每个固件的地址信息,在使用cskburn烧录的时候,不需要再加上0x0的地址,烧录img文件需要加上0x0的地址。
Windows:
.\cskburn.exe -C 6 -s COM5 -b 3000000 --verify-all fw.hex
.\cskburn.exe -C 6 -s COM5 -b 3000000 --verify-all 0x0 fw.img
Linux:
sudo ./cskburn -C 6 -s /dev/ttyUSB0 -b 1500000 --verify-all fw.hex
sudo ./cskburn -C 6 -s /dev/ttyUSB0 -b 1500000 --verify-all 0x0 fw.img
如下图所示:windows下烧录及打包: