最近一直在用KEIL C编东西,但最近出了点问题。很困惑。希望能和大家交流一下,看大家是怎么处理的。 KEIL C会把用C语言写的程序优化后编译成汇编语句。所以很多语句并不是一一对应的。大部分的时候程序出了问题从汇编里找一下原因也是一种方法。但是我最近在用单片机操作USB芯片完成数据传输的时候查汇编语句的时候,看得我糊涂。一段程序编译后出现了程序中另外一段与此不相关的程序段。最郁闷的是出现了死循环。打上断点找到坏语句,程序每次停下后指针居然都在我的一段#define 命令上还有被注释掉的语句也被编译过了!!看了一下汇编,是一段条件转移控制的循环。这也太离谱了吧?怎么都优化成这样了。 我还怎么调试程序啊?中病毒了? |