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.

[参考译文] TMS320F280039C:在调试模式下、无法读取 RAM 中的 CAN 消息对象

Guru**** 2467750 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1483142/tms320f280039c-can-not-read-can-message-objects-in-ram-when-in-debug-mode

器件型号:TMS320F280039C

工具与软件:

您好!

我将按照 can_ex2_loopback_interrupts 示例进行操作。 我已通读 TRM、知道只有在调试模式下才能访问 RAM 中的消息对象。 我使用280039c LaunchPad、我可以通过 PEAK-CAN 软件狗读取 CAN 数据来查看此示例的工作方式。 但是、当我试图详细了解消息对象中的数据映射时、我在调用 can_sendMessage 函数后设置了一个断点。 理想情况下、我应该会看到报文对象更新为我要发送的数据、我的 Tx 报文对象编号为1、因此地址应该从0x49020开始、我想读取0-3数据、所以应该是0x49030。 但是、正如您在我的内存浏览器窗口中看到的、我无法看到任何数据、请建议我如何在调试模式下读取消息对象、谢谢。

此致!

Kai

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

    尊敬的 Kai:

    对于 CAN 报文对象、不建议直接从 RAM 内存读取、因为由于数据桥接接口的原因、内存浏览器看起来会使数据混乱。  推荐的方法是通过接口寄存器读取对象内容。  首先使用 API CAN_transferMessage()将 CAN 消息 RAM 数据传输到 CAN 接口寄存器、然后使用 API CAN_readMessage()通过传递给 CAN_readMessage() 函数的数据结构读出消息内容。

    此致、

    Joseph

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

    您好、Joseph:  

    感谢您的答复。 我下面是技术参考手册28.14、其中提到只有在调试模式下、我们才能访问消息对象内存段、我相信有几个线程表明人们可以真正做到这一点。 我很好奇为什么即使我处于调试模式、也无法在内存浏览器中查看消息对象、非常感谢。

    此致!

    Kai

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

    尊敬的 Kai:

    对于 F280039器件、由于镜像了数据、因此建议的查看方式符合上述内容、因此特意不公开。  可以通过修改附件中所示的 GEL 文件在存储器浏览器中显示 CAN 消息 RAM、但是、这可能不适用于调试且不会造成混乱。  要编辑 GEL 文件、请转到"Tools->GEL File"。  在 GEL Files 对话框中、双击 GEL 文件、使内容将出现在编辑器中、然后添加快照中突出显示的条目。  这将在"Memory Browser"中显示消息 RAM 区域。  编辑后保存、然后在对话框中卸载/重新加载 GEL 文件、对电路板执行下电上电、然后重新连接。

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

    您好、Joseph:  

    感谢您的回复、在我修改 GEL 文件之后、我现在可以在调试视图中看到消息 RAM for CAN。 我想知道为什么不在技术参考手册中记录此内容? 因为在手册中它没有指定这些额外步骤。 此外、我能否知道什么是 GEL 文件以及它的用途是什么? 非常感谢

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

    尊敬的 Kai:

    如我之前的帖子中所述、推荐使用 driverlib API 来监控消息 RAM 的内容、而不是通过由于桥接问题而对存储器映射位置进行物理检查来实现这种方法、因此未记录此步骤。  对于 GEL 文件、您可以通过在 Code Composer Studio 下搜索过去的 E2E 帖子来查找有关此方面的更多信息。

    此致、

    Joseph