我用的是2540,经常会遇到这样的问题:
1.同样的程序今天都还可以用,一点都没有改动明天可能就会出现执行不了的情况
2.用断点调试的时候程序实际运行到的位置和光标指示的位置不一致,有时候会显示在一个函数里面执行了两个return语句,上一个return语句执行完以后程序没有跳出那个函数而是接着执行下一个return语句,但是最后返回的值好像又是第一个return语句返回的值;
2.用断点调试的时候用于显示程序执行位置的光标乱跳,会跑到根本不应该执行的地方或者应该要执行到的地方又没有执行到。
请问导致这些问题的原因是什么呢
da qin zheng sheng:
首先确保硬件稳定可靠!
然后再考虑软件!你的程序实现啥功能?
da qin zheng sheng:
还有你的开发工具是啥?开发软件的版本以及设定?
lily li1:
回复 da qin zheng sheng:
我就是在SimpleBLEPeripheral例程的基础上修改的,现在在添加SD卡的文件系统
da qin zheng sheng:
回复 lily li1:
这个难度很大啊!
祝你成功!
wenzhong shen:
2的原因是因为IAR编译器会对代码进行优化,所以你顺序执行的时候 显示位置和你的执行位置不一致,有的时候两次return,那是对return部分进行了优化。
3的原因也可能是优化所导致的,因为同一个函数同一个语句的话,汇编会优化,导致单步调试的时候在c语句中显示的可能不是你想的位置。还有就是库函数是没有光标指示的,在执行的时候要注意,可能执行很多步都没有跳出去。