问题描述:用keil调试一段原本可以正常执行的代码,在其中某处插入一句无意义的语句(可以是不能被执行到的),编译之后再运行就会出现错误。
原因猜测:插入的语句虽然不会对程序逻辑造成影响,但是它却导致了程序最终不能正常运行,那就说明它对编译结果产生了影响,具体是什么影响,怎么看,抓耳挠腮不得其解TT
此问题在一个使用8051f330单片机的项目中复现了,当在程序中插入一段程序后(一段无意义的代码,只会影响编译之后的指令地址偏移),烧写单片机运行正常,单片机重新上电,程序就不能够再跑起来了。
8051的问题已经解决,这个是因为单片机掉电的时候,由于vddmonitor未启用儿导致单片机在低压区运行,此时程序跑飞,擦除了Flash中的代码,导致第二次上电无法再运行。另外如果需要用keil芯片上一次掉电后的Flash内容,可以按如下步骤操作option for target->debug->去掉load application at startup