CH582 CodeFlash写数据错误

想把数据记录在CodeFlash上,写入数据成功,但读出后发现经常会出现数据错误,某个数据位上会有错误。


具体流程是,ch582 烧录完固件,固件启动,关中断,调FLASH_ROM_WRITE进行4到32字节的数据写入(4字节对齐,写入地址不在固件范围内),开中断,然后读数据,这个时候发现读出的数据和写入的有差异。


很奇怪的boot中,FLASH_ROM_ERASE后按整block执行FLASH_ROM_WRITE却没问题。


我看头文件注释,写入最小是要双字吗,我按8字节操作也一样会出现问题。

image.png

另外,写CodeFlash对芯片供电有什么要求。

你好,如果需要记录少量数据在FLASH中,可以直接将数据记录在Dataflash中,Dataflash中有32K的大小,基本上都是空的(在地址的最后部分有存放SNV绑定信息,以及OTA的升级标志),因此可以存放数据在Dataflash中。

按照你的需求处理存放数据即可,Code和Data都有例程直接参考FLASH例程即可。

FLASH操作的字节单位可以参考该博客:

CH58xFLASH操作 - SweetTea_lllpc - 博客园 (cnblogs.com)

在ISP582.h也有对应的注释颗参考:

image.png


需要存储的数据超过32k,又不想外扩flash,只有用片上codeflash了。

不知道如何解决这个问题


同样问题,需要存储88KB左右的数据


@唉? 在您发的贴子下已回复您。

CH582 对存储区 CodeFlash进行读写问题 - 沁恒微电子社区 (wch.cn)


只有登录才能回复,可以选择微信账号登录