Cypress技术论坛
直播中

哥儿

9年用户 988经验值
擅长:嵌入式技术
私信 关注

CCG5 platform Flash在烧写images时,如何保留产线校准数据?

1. CCG5平台flash大小为128K,有512 row,每个row大小是256个字节
    通过PSoC Programmer烧写image时,会将128K的flash全部擦除,会导致校准数据和板卡信息丢失
2. PSoC Programmermer没法擦除指定flash,都是整个128K擦除,例如在flash中分配一个row来存储产线校准数据,如何保证在烧写images后,保留产线校准数据呢?谢谢




   
                                                                                                                                                                                                                                                                                                                                                                                                

回帖(1)

陈鑫

2024-2-27 15:03:21
一般对于某一行flash特殊使用简单的处理办法有2种:(建议使用第一种)
1. 在SWD更新时,这个部分flash将被更新,在其他更新方式(即只更新Application)的时候,不更新flash这个部分。
这个实现只需要将内部更新的flash access的范围进行设定即可,使用API void flash_set_access_limits (uint16_t start_row, uint16_t last_row, uint16_t md_row, uint16_t bl_last_row)。
2. 在SWD更新时跳过某一行。 Infineon提供了PPCLI进行自定义烧写,因为Infineon的HEX的校验(checksum)包括对每一行flash和整体flash。所以,如果在SWD烧写时不想要更新某一行,需要自定义时跳过相关的flash row,并且计算相对应的Checksum。相对应的API可以是:PSoC4_ProgramRow(IN rowID, nvector IN data)或者PSoC4_ProgramRowFromHex(IN rowID)进行更新,请不要使用标准参考代码里面的PSoC4_EraseAll()。
举报

更多回帖

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