- 作者:
- 分类:知识&开发->MCU SOC->K210
- 阅读:2493
- 点赞:15
- 版权:CC BY-SA 4.0
- 创建:2019-10-14
- 更新:2020-09-15
K210多个文件打包为kfpkg格式的文件, 以及制作flash烧录器使用的固件
版权声明:本文为 neucrack 的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接(持续更新):https://neucrack.com/p/158
原文链接(持续更新):https://neucrack.com/p/158
使用软件打包(推荐)
建议使用kflash_gui进行打包,更方便, 只需选择文件,然后点击打包为 kfpkg
即可.
除了打包成 kfpkg
, 还可以打包为bin
, 有以下场景会用到:
- 多个bin文件合成为一个bin文件
- 需要将 bin 文件发送给工厂使用 flash 烧录器烧录, 不能直接将固件用于 flash 烧录器的烧录, 而是需要先使用这个打包为 bin 的功能先打包为新的 bin, 然后才能发送给工厂用 flash 烧录器烧录
手动打包
如果需要手动打包或者要知道其原理, 方式如下:
- 新建一个
flash-list.json
文件, 写入:
{
"version": "0.1.0",
"files": [
{
"address": 0,
"bin": "XXX.bin",
"sha256Prefix": true
},
{
"address": 0x00A00000,
"bin": "YYY.bin",
"sha256Prefix": false
}
]
}
这里
XXX.bin
是固件名字, 地址为0
,sha256Prefix
代表需要校验, 只有固件才写true
, 这会在固件前面添加校验值.YYY.bin
是其它文件,比如模型文件, 烧录到0x00A00000
, 不需要添加校验数据正因为这里固件实际在写入到flash时在头加了校验值, 所以不能直接将固件直接用烧录器烧录到 flash, 需要用工具计算校验值(具体校验方法见
kflash.py
中的实现), 添加到头后生成的 bin 文件再用烧录器烧录到 flash
- 然后把这三个文件使用
ZIP
进行压缩,然后重命名为firmware.kfpkg
即可, 没错,实际上是ZIP
格式,只是后缀改成了kfpkg
方便识别