这段时间用nrf9e5做无线开发,感觉最恼火的就是调试了.缺乏有效的调试手段导致进度奇慢.开始的时候只能通过观察3个led灯来判断程序运行到的位置;后来连上串口,通过往串口写数据,在pc上接受,调试的信息多了一些,相当于有了printf方式调试.但是这样搞还是太慢了!! 尤其是三机通信过程中,协议稍微复杂一些,用这样的办法来调试,简直是
非常非常的痛苦.
昨天突然想起了有ISD这种在线调试方法,于是找来资料看了看,原来还是有很方便的调试办法的嘛.官方也提供了相关的汇编代码,以及源文件,只要把这些文件加入到机子的工程中,在Keil中选择ISD调试方式,设置一下,就可以使用串口进行调试了.可以step代码了,可以watch了, 世界美好了!
不过开始的时候还是遇到一个问题,浪费了不少时间.似乎是Keil的问题,对要调试的代码修改后进行编译要选择重新编译整个工程,不然的话似乎用于调试的map文件似乎没有更新,还是旧的.造成启动调试的时候验证代码一致性出错.开始遇到这个问题怎么也解决不了,后来干脆把验证的步骤去掉,发现有时候可以正常使用,有时候会出现单步调试程序而程序自己执行起来.后来rebuild工程再烧写,调试发现就可以了.
其实是个小问题,不过害怕自己忘记了,以后又浪费时间.也希望对遇到同样问题的兄弟们一点帮助,有时候这种莫名的小问题让人感觉非常恼火,而且又浪费时间.而大家似乎觉得这种小问题不值一提,不会放在网上,结果需要的人要浪费很多时间自己摸索,要是有什么方法把这种小问题有效的集中起来就好了.
昨天突然想起了有ISD这种在线调试方法,于是找来资料看了看,原来还是有很方便的调试办法的嘛.官方也提供了相关的汇编代码,以及源文件,只要把这些文件加入到机子的工程中,在Keil中选择ISD调试方式,设置一下,就可以使用串口进行调试了.可以step代码了,可以watch了, 世界美好了!
不过开始的时候还是遇到一个问题,浪费了不少时间.似乎是Keil的问题,对要调试的代码修改后进行编译要选择重新编译整个工程,不然的话似乎用于调试的map文件似乎没有更新,还是旧的.造成启动调试的时候验证代码一致性出错.开始遇到这个问题怎么也解决不了,后来干脆把验证的步骤去掉,发现有时候可以正常使用,有时候会出现单步调试程序而程序自己执行起来.后来rebuild工程再烧写,调试发现就可以了.
其实是个小问题,不过害怕自己忘记了,以后又浪费时间.也希望对遇到同样问题的兄弟们一点帮助,有时候这种莫名的小问题让人感觉非常恼火,而且又浪费时间.而大家似乎觉得这种小问题不值一提,不会放在网上,结果需要的人要浪费很多时间自己摸索,要是有什么方法把这种小问题有效的集中起来就好了.