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.

[参考译文] LAUNCHXL-F28379D:有关通过 TMS320F28379D 上的存储器浏览器访问 CAN 消息 RAM 的阐释

Guru**** 2686445 points

Other Parts Discussed in Thread: TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1599143/launchxl-f28379d-clarification-on-accessing-can-message-ram-via-memory-browser-on-tms320f28379d

器件型号: LAUNCHXL-F28379D
主题中讨论的其他器件: TMS320F28379DC2000WARE

尊敬的 Texas Instruments C2000 支持团队:

我们正在使用 TMS320F28379D(在 CPU1/Core1 上实现的 CANB)、因此需要明确如何向调试器实际公开 CAN 消息 RAM。

根据技术参考手册、“在调试模式下、消息 RAM 是存储器映射。 这允许外部调试单元访问消息 RAM。“ ​
根据此描述、我们尝试使用 CCS Memory Browser 直接检查 CANB 消息 RAM。

我们的设置和观察结果如下:

器件:TMS320F28379D、使用 CANB。 ​

调试环境:Code Composer Studio、在读取存储器之前停止/暂停 CPU1 (Core1)。 ​

使用的消息 RAM 基址:0x004B000(CANB 消息 RAM 如 C2000ware 库所示)。 ​

当内核停止并且 Memory Browser 指向 0x004B000 时、我们可以看到:

显示部分有效但地址进度不明确的数据;地址增量不会直接映射到 TRM 中记录的单个消息对象布局。 ​

多个位置显示了重复的数据模式;不清楚这种镜像是由于内部总线/桥接实现引起的、还是表明 Memory Browser 未正确访问底层消息对象。 ​

针对特定的 CAN ID 配置了多个消息对象(通过 IF1/IF2 寄存器传输和正常 CAN 操作进行验证)、但它们的 ID 和数据字段在“消息 RAM“视图中并不可见。 ​

我们理解在正常运行时、CAN 消息 RAM 不能直接访问、必须使用 IF1/IF2 寄存器。 ​
但是、鉴于有关调试模式存储器映射的 TRM 语句、我们想确认:

对于 F28379D、在调试模式下、CAN 消息 RAM 与调试器可见的确切映射是什么(例如,字/字节排序,任何别名以及每个消息对象的正确起始地址和跨度)? ​

当内核停止时读取 0x004B000–0x004B7FF 时、预计在 Memory Browser 中是否会出现重复的数据或明显的镜像? ​

是否有建议的 CCS 设置(数据宽度,对齐或特定视图)或书面方法来直接在 Memory Browser 中可靠地查看给定消息对象的 ID、控制位和数据字节? ​

F28379D 是否有与通过调试器读取 CAN 消息 RAM 相关的任何已知限制或勘误表、以解释我们看到的行为?

任何详细指导、特定消息对象编号的地址计算示例或演示预期行为的 CCS 屏幕截图、都将对我们的调试过程非常有帮助。

感谢您的支持。

此致、
Atharva
atharva@inspecity.com

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

    尊敬的  Atharva:

    在测试模式下、您可以直接访问消息 RAM。  

    1.设置“CAN_CTL"寄存“寄存器的“TEST"位“位以启用测试模式

    2.设置 CAN_TEST 寄存器的“RDA"位“位以启用对消息 RAM 的直接访问

    在 CCS 中、打开内存浏览器

    第一个消息对象位于偏移量 0x20 开始、第二个消息对象位于 0x40。 最后一个消息对象 (#32) 将写入从 0x00(偏移量)开始的开头

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

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

    因此、根据这一规定、只能在调试会话期间在测试模式下访问 CAN 消息 RAM。 如果调试会话中没有测试模式、我们将无法看到 RAM 内容?  
    下面的 pic 显示了没有测试模式的调试会话。 我已配置消息对象 3、5、6、7 和 8。

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

    为避免任何冲突、我想以调试模式 (TEST=1、RNA=1) 读取 CCS 浏览器窗口中的消息 RAM。