CH579M flash 烧写问题

CH579M  数据FLASH内只能写一个双字,再写下一个地址双字数据无法写入,使用库文件中的写数据函数!

写入的双字无法擦除,无论重写还是擦除,内部数据仍在!

  程序如下:

                        MEM_MACADDR : 0x3ee10


                         memdata[0] = PeerAddrDef[0]+((uint32_t)PeerAddrDef[1]<<8)+((uint32_t)PeerAddrDef[2]<<16)+                                                       ((uint32_t)PeerAddrDef[3]<<24);

memdata[1] = PeerAddrDef[4]+((uint32_t)PeerAddrDef[5]<<8)+(UINT32)0x55cc0000;

memdata[2] = 0x33445566;

memdata[3] = 0x33445566;

ptr = memdata;

ENTRY_LRNST = 0x55;

FlashBlockErase(MEM_MACADDR);

FlashWriteBuf(MEM_MACADDR,ptr,16);


                       有劳指点!!!!!


另说明一下:

                  对程序每一次双字数据写入跟踪!每次都 是成功的,但读出仍是原数据!!!!


flash擦的起始地址需要512字节对齐,MEM_MACADDR : 0x3ee10设置为3ee00试试。


试了!结果数据写都不能写进了!真奇了!0x3e800-0x3ffff 不是数据存储区域???



写入数据当前写入只有每一个字(4byte),重上电数据变成0xffffffff, ???????????


0x3e800-0x3ffff 是dataflash区域,可以掉电保存的,

emobile_2022-04-07_19-33-08.png

如果仍然不可以,建议先跑下例程。


抱歉了!掉电不保存是因为我加了上电擦除程序引起!但只能烧一个字是什么原因,是否连续烧写需加延时1.6mS?



检查读过flash之后写的时候有没有将地址修改回你想操作的起始地址,将你的工程发到hy@wch.cn,我帮你看下吧。


工程已发!存储问题是地址问题(32位地址指针+4了,应+1)!但还有另一个问题有劳瞅一下!!!!!



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