TI中文支持网
TI专业的中文技术问题搜集分享网站

DSP6727问题

设计了DSp6727板子,程序执行的一个函数中有静态局部变量数组,函数内容如下

void test()

{

   static Uint8 AA[3]= {0,0,0};

   if(AA[0] == 0)

   {     

     fun();  //执行函数

   }

}

发现一个奇怪的现象,明明参数AA[0]初值为0,但是函数fun()并不执行,同时做了好几块板子,相同的程序在别的板子上能够执行,唯独有一个板子不行,但是出现问题的板子,如果我把程序稍微改动一下,增加几句无关的代码,程序重新编译后又能运行正常了,请问有见过这样现象的吗,会是什么问题,谢谢

Nancy Wang:

不执行单步调试是什么状态?是在内部memory上执行的吗?无关的代码是什么?
这块开发板有其它的异常现象吗?

li shui:

回复 Nancy Wang:

谢谢回复

单步调试也是if判断后程序直接跳过,往下执行,并不执行fun函数,就是感觉if判断不满足,程序在片内空间运行

增加无关代码就是程序加几行代码,或者另外使用其它变量判断,重新编译后运行也就正常了,不知道什么原因

Nancy Wang:

回复 li shui:

用其他变量判断就可以?ccs->variables里面查看该AA的值是正常的吗?

li shui:

回复 Nancy Wang:

换个其它变量,或者把这个变量改为全局变量运行正常,这个程序在其它板子上运行也是好的,唯独这个板子有问题

li shui:

回复 Nancy Wang:

今天设断点调试发现,虽然软件代码赋值为0,实际值为0x10,第5位赋为了1,后来将变量初始化为0xef,监控时变成了0xff,这一位被强制为1,请问这会是什么原因呢,谢谢了

赞(0)
未经允许不得转载:TI中文支持网 » DSP6727问题
分享到: 更多 (0)