CH32F207VC FLASH擦除后,造成程序被破坏问题

我使用CH32F207VC 处理器,把flash 0x08028000-29000作为关键数据存储区域,程序130k,但是在操作擦除后,程序被破坏,重启系统程序跑飞,usart1不停输出乱码,反复检查找不出原因

进一步分析得到如下结果,把flash 0x08028000-29000作为关键数据存储区域后,定义的结构体数组如果在这个空间内,

只要擦除操作程序重启就跑飞,如果不在这个区域内就没有问题。

我定义的结构如下:

const static FNET_IPADDR fip_addr_num[4] __attribute__((at(fdata_ip_first_address)))=

{

192,168,1,100,

};

const static FNET_GWIPADDR fqwip_addr_num[4] __attribute__((at(fdata_gw_first_address)))=

{

192,168,1,100,

};

const static FNET_IPMASK fipmask_num[4] __attribute__((at(fdata_ipmask_first_address)))=

{

255,255,255,100,

};

const static FNET_SRCPORT fsrcport_num __attribute__((at(fdata_srcport_first_address)))= 

{1000};


地址空间定义

#define fdata_ip_first_address  0x08028100   //ip address

#define fdata_gw_first_address  0x08028200   //gw address

#define fdata_ipmask_first_address  0x08028300   //ip mask addrees

#define fdata_srcport_first_address  0x08028400   //port




请高手指点迷津,谢谢!


您好,请问一下描述中所说的"操作擦除"用的是哪种操作擦除方式,不在这个区域内就没问题,你试了哪个区域没问题,此外FLASH、RAM的大小配置是多少。若方便,可将可复现问题的工程发至我的邮箱(lzs@wch.cn),这边具体测试一下。


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