PSoC6的efuse区结构如下:
我们可以看到其中预留了一部分区域给用户写入自己的数据,那么如何将将数据写入这个区域呢?
1. 首先确认自己工程linker文件中有关于efuse段的定义:
2. 在工程中添加cy_ps_efuse.h 和 cy_ps_efuse.c两个文件, 并在cy_ps_efuse.h中配置“#define CY_EFUSE_AVAILABLE (1)”
这两个文件可以在mtb-example-psoc6-security中找到
3.在cy_ps_efuse.c中修改结构体cy_efuse_data,修改您想写的值。此处有一点需要注意的是,这里是按bit进行配置的,将对应需要写的bit配置为CY_EFUSE_STATE_SET
4. 编译工程,生成hex文件。打开hex文件,查看文件中应该有以下0x90700000段:
5. hex文件生成好后,使用cypress programmer烧写,此处
“Voltage“需要配置为2.5V
勾选“Program Security Data”
如果不烧写sflash, "sflash Restriction"可以选”Erase/program Sflash prohibited“:
这里附一个示例工程可供参考:
|