是这样的,我用6678开发板运行一个图像检测程序,需要load图像到共享内存中,如果导入的是273×720大小的图像,程序能够正常运行,但是导入1024×1024的图像,程序就会跑飞。load后发现,之前程序运行后的变量发生了变化,但是地址分配肯定不会和图像地址有冲突。不知道是什么原因
Andy Yin1:
你这个还是很有可能是存储数据的数组不够大导致溢出,check一下给存储图像数据预留了足够的memory,可以定义一个大的数组用于存储图像数据,这样编译生成时会自动给所有全局变量分配地址。
li li20:
回复 Andy Yin1:
设定一个比较大的数组,让其分配地址的话应该能够不出现问题;我的问题是我从0x0c030000地址开始load图像,而那些发生变化的数据在0x0c300000开始的地址里面,就是load 1M数据进去也最多到0x0c130000,还有我尝试了load 1M相同数据(比如 15),再看被篡改的数据,发现篡改的值不是“15”
Andy Yin1:
回复 li li20:
你是在ccs链接仿真器环境下测试的么,如果后面篡改的数据不是load的数据,可能不是被load篡改,有没有可能是其他操作修改的呢,或者是load view中写的长度错误。