我有一个关于在 Contiki-NG 上使用 cc2538 进行调试的问题。
我正在 RIOT 和 Contiki-NG 上测试 6LoWPAN 功能。在调试期间单步执行代码时,RIOT 工作正常,但 Contiki-NG 失败 - 该应用程序只是 hello-world 示例。
我对两者使用相同的调试方法:
当为Contiki-NG建立gdb连接时,显示代码进入0xdeadbeef。 JLinkDebugExe 输出:
Reading common registers: ERROR: Cannot read register 0 (R0) while CPU is running
Read register 'r0' (4 bytes) from hardware: 0xEFBEADDE
ERROR: Cannot read register 1 (R1) while CPU is running
有人遇到过这个问题吗?
任何与此问题相关的见解或有用的信息将不胜感激。
谢谢, 肮脏的灵魂
如何修复 Contiki-ng 以支持单步调试?还有其他调试方法吗?配置的哪一部分会影响这个问题?为什么RIOT能成功而Contiki-NG不行?
始终从顶部读取错误/诊断消息。 这里的根本问题似乎是:
Reading common registers: ERROR: Cannot read register 0 (R0) while CPU is running
鉴于该声明,从寄存器“读取”的值无效。
大多数调试器都有“重置下连接”或类似选项。这可能会解决您的问题,但无论问题与任何特定 RTOS 的使用无关 - 调试器完全不知道正在运行的代码 - 但一切都与您尚未详细说明的调试器配置有关。