使用CCS5.4,单步运行传递变量地址自己变。。。提取设断点,全速跑起来又正常!这是怎么回事?
比如我程序:
main
{
unsigned long test,i;
for(i=0;i<8;i++)
tt(&test);
这个时候看到地址假设:0x0000123。
}
单步进入到 tt(unsigned long * pt)
{
进来后看 *pt只有第一次是 0x123,然后就是0x121,0x124,0x121。。。一直就不对了。
}
如果在main里的tt(&test)前面加断点,然后全速运行,看改变的test值,似乎又是正确的!。这个是用来xintf外设通讯的。
将stack和改大,换地方 没有什么帮助。。。请教,这会是什么原因??
Green Deng:CCS有开优化吗?有可能是开了优化以后,部分代码会优化掉,导致单步调试出问题。
使用CCS5.4,单步运行传递变量地址自己变。。。提取设断点,全速跑起来又正常!这是怎么回事?
比如我程序:
main
{
unsigned long test,i;
for(i=0;i<8;i++)
tt(&test);
这个时候看到地址假设:0x0000123。
}
单步进入到 tt(unsigned long * pt)
{
进来后看 *pt只有第一次是 0x123,然后就是0x121,0x124,0x121。。。一直就不对了。
}
如果在main里的tt(&test)前面加断点,然后全速运行,看改变的test值,似乎又是正确的!。这个是用来xintf外设通讯的。
将stack和改大,换地方 没有什么帮助。。。请教,这会是什么原因??
mangui zhang:全速中断后查看变量是实时更新的单步是不是更新不及时
能不能refresh
使用CCS5.4,单步运行传递变量地址自己变。。。提取设断点,全速跑起来又正常!这是怎么回事?
比如我程序:
main
{
unsigned long test,i;
for(i=0;i<8;i++)
tt(&test);
这个时候看到地址假设:0x0000123。
}
单步进入到 tt(unsigned long * pt)
{
进来后看 *pt只有第一次是 0x123,然后就是0x121,0x124,0x121。。。一直就不对了。
}
如果在main里的tt(&test)前面加断点,然后全速运行,看改变的test值,似乎又是正确的!。这个是用来xintf外设通讯的。
将stack和改大,换地方 没有什么帮助。。。请教,这会是什么原因??
Camel Santo:
回复 Green Deng:
您好,优化是off的。。这个和CMD的分配会不会有关系,如果有会是那一段有影响?
使用CCS5.4,单步运行传递变量地址自己变。。。提取设断点,全速跑起来又正常!这是怎么回事?
比如我程序:
main
{
unsigned long test,i;
for(i=0;i<8;i++)
tt(&test);
这个时候看到地址假设:0x0000123。
}
单步进入到 tt(unsigned long * pt)
{
进来后看 *pt只有第一次是 0x123,然后就是0x121,0x124,0x121。。。一直就不对了。
}
如果在main里的tt(&test)前面加断点,然后全速运行,看改变的test值,似乎又是正确的!。这个是用来xintf外设通讯的。
将stack和改大,换地方 没有什么帮助。。。请教,这会是什么原因??
Camel Santo:
回复 mangui zhang:
更新不及时 会导致每次进去看都会有不同的变换吗?每次进去都变。。。