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

代码运行参数突变问题 cmd

最近在6670上运行程序,发现程序总是跑飞,单步调试发现程序在执行时,前后的参数发生了变化,比如这个

for(k = core0_eq_symbol; k < core1_eq_symbol;k++)
{
prb_demapping_pdsch((signed int*)che_interp_data[0], 
NUM_MAX_ANTENNA, 
vxx_cell_para.cellID, 
k, 
slot_idx >> 1, 
slot_idx, 
(signed int*)vxx_fft_lay_buffer.prbdemapping_freq_che[0][0][k – core0_eq_symbol], 
(signed int*)vxx_fft_lay_buffer.prbdemapping_freq_che[0][1][k – core0_eq_symbol] 
);
prb_demapping_pdsch((signed int*)che_interp_data[1], 
NUM_MAX_ANTENNA,
vxx_cell_para.cellID,
k, 
slot_idx >> 1, 
slot_idx,
(signed int*)vxx_fft_lay_buffer.prbdemapping_freq_che[1][0][k – core0_eq_symbol], 
(signed int*)vxx_fft_lay_buffer.prbdemapping_freq_che[1][1][k – core0_eq_symbol] 
);

}

这段代码中k是作为一个循环的参数传递给里面的两个子函数的,但是当子函数1运行结束时,子函数2中的k值突变为一个随机数,导致程序出错。
我怀疑是不是cmd分配的问题,有没有遇到过类似情况的大神帮忙分析一下。子 函数中是没有对k进行赋值的哈

Allen35065:

看看你的子函数是不是对k进行了修改,或者有没有发生内存越界,进去单步调试一下即可

chen chen6:

回复 Allen35065:

您好!感谢您的回复~

我的子函数没有对k进行修改,所以才会头疼这个问题;我再详细描述一下,就是上面的代码,两个子函数的形参里面都有k这个变量,我在进入子函数1之前,看看k

的值,比如说是3,位置假设是0x00803500,我一旦进入子函数1之后呢,再查看k的值,发现k的地址已经变到了其他地址了,0x00803512,值也变成了0x20,这些地址和数值的准确值我记不清了,但是过程就是这样的,导致子函数1里边k的值已经变化了,但是子函数1中间并没有对其改变的语句;子函数2使用k时,自然出错。另外,您说的内存越界,请问如何查看呢~ 

赞(0)
未经允许不得转载:TI中文支持网 » 代码运行参数突变问题 cmd
分享到: 更多 (0)