我使用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),这边具体测试一下。