Part Number:LAUNCHXL-F2800137
1、本来已经可以正常运行的工程,我多注释两行代码(也有可能加几行代码),会导致程序跑飞现象,而一旦代码恢复还是可以重新跑
Yale Li:
1. 程序跑飞有两种情况,一种是程序陷入某个地方,比如死循环、类似fault的中断等等,另一种是PC指针跑飞、指向了随机的位置。先确定属于哪一种;
2. 可以在注释或添加的代码前打断点,通过单步执行的方式来检查程序是从哪里开始运行不正常;
3. 具体也要结合注释/添加的代码来看,分析一下潜在的原因。
,
xinchao ju:
谢谢您的回复。最近我测试了以下,发现中断程序是进入了死循环,不过原因不太明白。
当我用epwm5模块来触发中断和ADC采样时,ADC_getInterruptStatus(MYADC0_BASE, ADC_INT_NUMBER1)一直无法清零,导致程序在while(ADC_getInterruptStatus(MYADC0_BASE, ADC_INT_NUMBER1) == FALSE) {}这里死等采样结束;而如果我才用cputimer0来触发中断和ADC采样,就不会出现这个死循环的问题,请问这个大概是什么原因?
,
Yale Li:
ADC_getInterruptStatus函数仅仅是获取ADC中断状态,在ADC ISR中要及时清中断