关于cc2640r2的bim_oad_offchip_cc2640r2lp_app工程单步调试问题
我在开发cc2640r2的OffChip-OAD空中升级时遇到一些问题,
1、我在加载bim_oad_offchip_cc2640r2lp_app进行在线调试的时候无法无法进入main函数进行单步调试,而是进入了一个奇怪的地址,如下图所示,
这样对我的调试造成了麻烦,请问为什么加载别的工程没有问题,只有加载bim工程时会出现这样的问题?请问该怎样让调试进入main函数然后进行正常的调试呢?
请问每次跳的地址是一样的吗?看着像是你的程序正在执行不受控的指令,正好停到这个地址。由于该地址没有源代码,所以CCS发出这种诊断
是的,每一次跳的地址都是一样的,请问为什么只有在线调试BIM程序的时候会出现这样的情况,跳转到一个不受控的地址,而不是进入main函数呢?
如何才能正确进入main函数进行单步调试呢?
是的,每一次跳的地址都是一样的,请问为什么只有在线调试BIM程序的时候会出现这样的情况,跳转到一个不受控的地址,而不是进入main函数呢?
如何才能正确进入main函数进行单步调试呢?
这个问题已经找到答案了,我在startup_ccs.c的ResetISR(void)中打断点发现程序进入了ResetISR函数,继续单步调试发现卡在了 SetupTrimDevice();内部的芯片识别中,在单步调试中被错误识别成了CC2640芯片而不是CC2640r2。接着由于芯片错误停在了一个while(1)死循环中,所以在线调试无法进入main函数。
后来发现这是由于我使用了XDS100V3仿真器造成的,如果使用官方推荐的XDS110V3就不会出现这样的情况。XDS100V3在线调试时会预读芯片信息到仿真器中,导致在线仿真的时候不能正确读出芯片型号。但在脱离在线调试的环境是可以正常识别出来的。