现在使用TMS570LS3137处理器,外挂sram,并将bss段和data段,配置在sram中;在调用memset函数设置一个全局静态数组元素为0,执行该语句后,flash出现不能被擦除,仿真器也不能链接的问题;但使用for循环实现数组初始化这一功能,未出现此问题。
1.之前整个工程没有外观SRAM 使用memset时无该情况,新增SRAM后出现该情况 地址配置为:origin=0x80000000 length=0x02000000
2.程序只是做了外挂SRAM 将BSS段与DATA段放到SRAM 使用MEMSET后便会引起仿真器无法加载,只能通过加载过程中手动复位JTAG使仿真器连接上。
之前未加SRAM时从未出现该情况。
3.但通过单步跟进MEMSET语句执行正确,但是放开后便会出现该情况。
补充说明:
1.目前在论坛查到现有类似情况,文内说,C版本芯片因为指令集的原因,导致在使用MEMset对外部地址操作时出现上述描述情况。e2e.ti.com/…/2444546
2.该BUG是否只针对MEMSET对外部地址使用,对内部地址是否有影响?
3.该BUG是否只针对MEMSET函数,同类型函数是否都有潜在问题?
gaoyang9992006:
这个不太懂,不知道这个库函数是怎么个原理,竟然跟通过循环的效果不一样,可以定位MEMSET原型看看,这个函数怎么实现的,是不是哪儿不合适。实在不行,就自己封装一个同名的函数吧。