|
我的程序再仿真的环境下运行正常,但是烧到FLASH后,只要进一个外部中断就跑飞拉,后来发现是因为中断服务程序里有一个switch的嵌套语句,只要把这个switch语句改为用if实现后,程序运行就正常拉。后来发现连接命令文件里有一个 .switch 段,好像和这个有点关系。但是改了之后还是运行不正常。希望高手能给予指点! 我的代码在下面 switch(SimStep) { case 0: break; case 1:
break; case 2: switch(datatemp) { case 0x01: // break; case 0x02: // break; case 0x03: // break; case 0x04: // break; case 0x05: // break; case 0x06: // break; case 0x07: // break; case 0x08: // break; default: break; } break; case 3: case 4: break; case 5: break; case 6: break; case 7: break; case 8: break; default: break; } 上面的代码结构就跑飞,如果换成下面的代码结构就没问题 if(SimStep==0) {
} else if(SimStep==1) { if(datatemp==SIM_FRAMEHEAD2) {
} else { } } else if(SimStep==2) { if(datatemp==0x01) // { } else if(datatemp==0x02) // { } else if(datatemp==0x03) // { } else if(datatemp==0x04) // {
} else if(datatemp==0x05) // {
} else if(datatemp==0x06) // { } else if(datatemp==0x07) // {
} else if(datatemp==0x08) // { } else if(datatemp==0x09) // { } else { } } else if(SimStep==3) { } else if(SimStep==4) { } else if(SimStep==5) { } else if(SimStep==6) {
} else if(SimStep==7) {
} else if(SimStep==8) { } else { } |
|