芯片开放社区
直播中

席毖庸

7年用户 1025经验值
擅长:596874
私信 关注
[技术讨论]

基于PHY6220的KV镜像打包烧录使用

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

...

partitions:

- { 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

更多回帖

发帖
×
20
完善资料,
赚取积分