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.

[参考译文] TMS320F28388S:寄存器地址重叠

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1457179/tms320f28388s-register-address-overlap

器件型号:TMS320F28388S

工具与软件:

您好!

在几个月前发表的题为"CLA_SOFTINT_REGS Address and Location"的文章中、我收到了各种 CLA 寄存器集的地址。  我刚刚意识到 CLA_SOFTINT_REGS 的地址与 PieCtrlRegs (0x0CE0)相同。  我相信 PieCtrlRegs 的值为0x0CE0、因为我们按预期接收中断。  CLA_SOFTINT_REGS 位于不同的地址?

谢谢!

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

    尊敬的 Ed:

    很抱歉我的答复被推迟。

    这是因为 CLA 和 CPU 使用不同的地址空间(因为 CLA 地址最多只能达到16位、而 CPU 地址最多可以达到32位)。 从 CPU 的角度来看、0x0CE0是指  PieCtrlRegs、而从 CLA 的角度来看、0x0CE0是指 CLA_SOFTINT_REGS。 请参阅 此处链接的器件数据表中的 C28x 存储器映射部分

     CLA_SOFTINT_REGS 中的两个寄存器与 CLA_ONLY_REGS 中的同名寄存器 (如果您注意到它们引用的地址相同)之间实际上没有真正的区别。 我将 从未来的文档和软件中删除 CLA_SOFTINT_REGS、因为它们是冗余的。

    此致、

    Delaney

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

    尊敬的 Delaney:

    不用担心。  我已经有几个延迟响应自己:^)。

    在 spruii0e 第995页的第8.7.2节中、它指出" CLA 使用与主 CPU 相同的地址来访问数据和寄存器。"。  此语句后面的示例适用于 ePWM。  外设的地址均位于 CLA 的16位寻址范围内。  您是否认为 PieCntrlRegs 是一个例外并且 CLA_SOFTINT_REGS (只可从 CLA 写入)被放置在同一地址?

    谢谢!

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

    尊敬的 Ed:

    我同意 TRM 中的这些句子有点令人困惑。 CPU 和 CLA 可以使用相同的地址 可以访问的外设的寄存器 . 不同的器件各自有自己的情况、其中不同内核之间的地址空间使用不同、尤其是对于具有大量外设的较大器件(例如地址空间更受限的 F2838x)。 我将确保对 TRM 的这一部分进行更改、使其更加准确。

    在这种特定情况下、CLA 无法访问  PieCtrlRegs 、因此无需在 CLA 的(受限)存储器空间中保留其地址。 这些地址可用于访问 CLA_ONLY_REGS 、只有 CLA 可以访问该地址。 如果 CLA 使用 hw_memmap.h 中的定义访问寄存器(例如如下所示)、编译器在为每个内核编译时会处理任何地址更改。

    例如、如果访问.cla 文件中的 CLA1_ONLY_BASE、编译器将使用地址0xC00。 如果您尝试从为 C28x 编译的 C 文件访问此寄存器、编译器将抛出错误、指出 CLA1_ONLY_BASE 未定义、这意味着它不会意外访问 PieCtrlRegs。

    如果此回答有用、请投反对票

    此致、

    Delaney

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

    尊敬的 Delaney:

    现在这很有意义、尤其是"对于两个内核都可以访问的外设寄存器"和"不同器件都有自己的用例、其中不同内核之间的地址空间使用方式不同"这两句话。

    谢谢!