代码拉取完成,页面将自动刷新
本文档描述 EC618
系列模块各种固件的升级包格式和生成方法
binpkg后缀
.par
非LuatOS
固件LuatOS
固件LuatOS
固件, 会包含脚本区数据实际存在4种具体的差分包格式, 分别是:
QAT固件
/ CSDK固件(非整包升级)
合宙标准AT固件
CSDK固件(整包升级)
LuatOS固件
适合于QAT固件
/ CSDK固件(非整包升级)
old.binpkg
和new.binpkg
.par
文件, 假设为diff.par
适合于合宙标准AT固件
, 例如 AT/LPAT/LSAT/AUAT
原始差分包
的生成方法, 先生成diff.par
文件diff.par
文件大小, 假设为diff_size
diff.par
文件头部, 生成合宙AT格式的差分包head = struct.pack(">bIbI", 0x7E, 0x01, 0x7D, diff_size)
适合于CSDK固件(整包升级)
, 这里仅描述大概的过程, 具体细节请参考dtools中的代码
new.binpkg
, 不需要旧版本的binpkg文件fcelf
解开binpkg, 得到cp.bin
,ap.bin
,imagedata.json
soc_tools.exe
, 将cp.bin
压缩为cp.zip
,实际为lzma
格式, 分片大小256ksoc_tools.exe
, 将ap.bin
压缩为ap.zip
,实际为lzma
格式, 分片大小256kcp.zip
和ap.zip
前后相连的方式, 合并为 total.zip
dummy.bin
soc_tools.exe
, 将total.zip
和dummy.bin
合成最终的升级包具体实现代码请查阅 tools\dtools
目录下的代码
适合于LuatOS固件
, 主要:
生成步骤
原始差分包
, 得到diff.par
diff.par
, 大小为0soc_tools.exe
, 将script.bin
压缩为 script.zip
, 实际为lzma
格式soc_tools.exe
, 将diff.par
和script.zip
合成最终的升级包具体实现代码请查阅 tools\dtools
目录下的代码
对应EC618的升级包, 主要难点在于CSDK是差分升级还是整包升级
这里提供几个思路, 仅供参考
CSDK
固件, 在编译固件时, 额外打包一个包含info.json的升级包文件, 通过fota
表进行描述附info.json中fota表的片段, 其中的core_type
标识了差分diff
或整包full
, 示例源于ec718库
"fota" : {
"magic_num" : "eac37218",
"block_len" : "40000",
"core_type" : "diff",
"ap_type" : "diff",
"cp_type" : "diff",
"full_addr" : "002BD000",
"fota_len" : "69000"
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。