This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM263P4:更新内核时 CLion IDE 导致错误"Registers 和 quot;。

Guru**** 2390735 points
Other Parts Discussed in Thread: SEGGER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1498278/am263p4-clion-ide-causing-errors-when-updating-core-registers

器件型号:AM263P4
主题中讨论的其他部件:SEGGER

工具/软件:

我一直在使用 CLion 和 OpenOCD/GDB-MULTIARCH、我需要帮助解决一些问题。

 我知道 TI 不熟悉 CLion、但我希望您具备所需的专业知识、可以帮助我在这些问题上指明正确的方向。

 这里肯定有几个问题需要解释、但没有权变措施的问题是、每当更新 ARM 内核"寄存器"时、调试器都会生成错误。

 每当应用程序自动更新"寄存器"组寄存器时、都会在 GDB 服务器上生成以下错误。  请参阅随附的狮子视频。

Error: data abort at 0xb0622de7, dfsr = 0x00000008
Error: data abort at 0x00008004, dfsr = 0x00000409
Error: data abort at 0xb0622de7, dfsr = 0x00000008
Error: data abort at 0x00008004, dfsr = 0x00000409
 

看起来 CLion 在更新寄存器时尝试访问几个无效地址。  我希望 Registers 列表可以在 OpenOCD .cfg 中找到、也可以在 armv4_5.c 等中找到、它只是需要为 R5内核修复的列表。

 

感谢您的帮助。  

PS: 我也会联系 CLIon/Jetbrain。  但他们可能说调用了通用函数、这是一个 MCU 实现问题。  请提供可能有帮助的任何信息。

 

 

其他信息可能会帮助您:

  • 从 WSL shell 手动使用 OpenOCD 和 gdb-multicarch 时、运行"info registers"不会生成这些错误。  请参阅随附的 WSL 视频
    • 但不确定这是否与更新"Registers"时 CLion 中使用的命令相同
  • 以下是 CLion 中更新的寄存器列表
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是来自 CLion 的响应。  我启用了诊断日志记录、并在刷新寄存器的同时向它们发送了日志。   

    是否需要在 OpenOCD 源或.cfg 文件中修复任何内容才能支持此操作?

    CLion interacts with GDB using mi2 format.
    
    Register reading statements from your log:
    42-data-list-register-values --thread 1 --frame 0 --skip-unavailable r 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 25 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Huey、

    不幸的是、我们无法再出现我们一方的问题。

    寄存器配置在架构文件本身中设置、其中 am263x.cfg 文件中提供了基本地址

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    应用 CLion IDE 支持团队响应时观察到的情况是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jetbrain (CLion)基本上说、当更新"Register"(寄存器)寄存器时、诊断日志中会显示以下命令。

    CLion interacts with GDB using mi2 format.
    
    Register reading statements from your log:
    42-data-list-register-values --thread 1 --frame 0 --skip-unavailable r 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 25 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

    这是读取所有核心寄存器并将其显示在上面显示的"Threads and Variables"窗口中的命令。  我个人不明白什么是"mi2格式"或所有数字的含义。  我希望 TI 的某人能理解这一点。

    这里可能有一个数字表示它尝试访问的地址无效并导致出现"数据中止"消息。

    日志提到42个寄存器、窗口显示39个寄存器、错误似乎是访问2个地址。   缺少1。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Huey、

    让我检查一下这个快速看 google 是否给出了一些结果。 L 将对此进行检查。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Huey、

    我现在将关闭该主题。 根据我们的讨论、最好继续使用基于 SEGGER 的调试器解决方案。