KV 分区镜像打包烧录的需求来自于客户想针对不同外设进行配置。这样在生产时可以针对不同产品烧录不同的配置文件。本文将基于PHY6220介绍如何使用product工具生成KV镜像,以及如何完成KV镜像的烧录。
1. product工具
在物联网设备开发中,需要经常对开发的镜像做打包服务,再烧写到芯片内部。很多芯片厂商对芯片的烧写有自己烧写工具,烧写物理接口无非就是UART, JTAG等通用的接口。平头哥提供了镜像的打包工具product,包括镜像的签名,签名信息,镜像版本等信息;也提供对平头哥生态芯片烧写的功能,可集成在
剑池CDK开发环境里实现Flash 下载。可以戳
这里了解更多信息。product工具 v1.0.26及以上版本可以支持KV数据的打包。
product工具版本信息可以通过如下命令查看
Windows CMD Shell环境
> boardsphy6220_evbconfigs>product.exe version
v1.0.26
Aug 10 2021,17:03:28
2. KV默认键值设置
当需要设置默认键值对时,需要在config.yaml中修改KV分区和MISC分区地址,并添加默认的KV数据,可以参考下面模板的kv部分:
mtb_version: 4
chip: phy6220
...
- { name: bomtb, address: 0x11002000, size: 0x002000 }
- { name: FCDS, address: 0x11004000, size: 0x001000 }
- { name: imtb, address: 0x11005000, size: 0x002000 }
- { name: boot, address: 0x11009000, size: 0x008000, verify: true }
- { name: prim, address: 0x11011000, size: 0x035000, verify: true, update: FULL,}
- { name: kv, address: 0x11046000, size: 0x003000 }
- { name: misc, address: 0x11049000, size: 0x037000 }
kv:
- key_a: 1
- key_b: "v1"
- key_c: "v2"
需要注意的是,KV分区不能作为最后一个分区来定义,否则会导致无法通过phypluskit工具进行烧录问题。
3 编译脚本更新
镜像打包脚本中也需要增加生成KV镜像的参数。
product image p.zip -i generated/data -l -v "v1000" -k -p
需要修改phy6220_evbscriptaft_build.sh
由于PHY6220命令行烧录工具只支持.bin后缀的二进制文件,在编译脚本里直接生成kv.bin。
4 验证
4.1 在应用程序增加KV读取操作,代码如下
char str[50] = {0};
aos_kv_getstring("key_b", str, 50);
int value_int = 0;
aos_kv_getint("key_a", &value_int);
printf("value_int = %d, str = %sn", value_int, str);
4.2 使用剑池CDK编译成功后,烧录镜像后,日志将显示
[20:21:23.274]收←◆value_int = 1, str = v1
注意:
编译成功,将在应用工程generated目录下生成kv.bin文件和hexf镜像固件文件,开发调试就可以直接烧录hexf镜像固件文件。
文章转载自:平头哥芯片开放社区 作者:qinghuan