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

C6713关于多层Switch case语句问题

如附件所示,当运行到m= m = (*p)*8 + (*(p+1))*4 + (*(p+2))*2 + (*(p+3));后,m就等于7.然后在第一层switch中就不能跳转case 7那里。出现的状况是程序一直在运行,点击halt后仿真器直接被强行建议与CCS断开。请教一下TI工程师给我一点建议。谢谢咯。

Tony Tang:

这种情况可能是跑飞了,可能是内存不稳定。

程序是跑在片外内存吧。

Gangping Li:

回复 Tony Tang:

那么内存不稳定,应该去查找哪些原因呢?是堆栈还是内存分配的问题呢?

Tony Tang:

回复 Gangping Li:

我说的是可能SDRAM配置不正确。

程序是动行在片内,还是在片外?程序在片上内存运行稳定吗?

rookiecalf:

可以尝试直接赋值7看看能否到达case 7分支,另外switch使用时,是否设定了default分支

Gangping Li:

回复 Tony Tang:

程序运行在片内,在屏蔽某些语句后,这个问题能解决。但是屏蔽的部分又不能删除。屏蔽的部分不是在这个函数中,而且屏蔽部分原则上是没有问题的。

Gangping Li:

回复 rookiecalf:

单独的switch语句是没有这种问题的,而且有default分支。由于我做的是一个工程,在加入某一语句后出现那种情况,而加入的这块语句不是跟switch在一个函数中。

rookiecalf:

回复 Gangping Li:

那应该还是程序哪里有BUG,只能慢慢调试找出BUG的位置了

赞(0)
未经允许不得转载:TI中文支持网 » C6713关于多层Switch case语句问题
分享到: 更多 (0)