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.

[参考译文] IOMM/Pinmux 寄存器写入未生效

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1366478/iomm-pinmux-register-write-not-taking-effect

器件型号:TMS570LS1224
主题中讨论的其他器件: HALCOGEN

工具与软件:

我正在尝试实现对用于 Zephyr 的 TMS570LS1224的支持、并且我目前正在开发 SCI 驱动程序。 我能够使 SCI/LIN 模块正常工作、但另一个 SCI 模块无法工作、因为我无法配置 IOMM。

当写入 KICK 寄存器时、写入操作似乎没有任何效果、因为我正在读取 kick0和 kick1的0x0 (使用 GDB)。 当尝试写入 PINMMR 寄存器时、由于它们保持不变、这些寄存器看起来不会产生任何效果。 我已检查 CPU 是否在特权模式(系统模式)下运行、并且 ESM 寄存器未报告任何错误(FFFF F558h 为0x0)。 是否有必要执行初始化步骤、让 IOMM 模块正常工作、但我遗漏了该步骤?

目前、在尝试设置 IOMM 寄存器之前完成的设置是:

* PLL/时钟初始化

* PSPWRDWNCLR0-3清零(写入0xffffffff)

*设置 PERIENA 位

任何帮助都会被赞赏,因为我不知道为什么它目前不工作。 如果有任何帮助、可以从 github.com/.../zephyr-hw 获取我正在使用的存储库。 如果需要、我会很高兴地发布任何其他信息、但 Im 不知道现在发布哪些内容是相关的。

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

    Sigmund、您好!

    在写入 kick 寄存器时、由于我正在读取 kick0和 kick1的0x0 (使用 GDB)、写入操作似乎没有任何效果。 在尝试写入 PINMMR 寄存器时,由于它们保持不变,它们似乎没有任何效果。

    读取 KICK 寄存器始终只读为零。 请参阅以下主题:

    (1) TMS570LC4357:从用户模式提高特权模式-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    您可以尝试写入解锁序列、而无需验证 KICK 寄存器值、如下所示:

    如果仍然无法正常工作、请与问题分享一个最简单的项目、在最后进行调试。

    --
    谢谢。此致、
    Jagadish。

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

    您好!

    感谢您的答复。 经过大量调试后、我发现 TRM 中 PINMMR 寄存器的偏移量似乎是错误的。 在 TRM 中、它指出
    PINMMR 的偏移量为 B10h (来自基地址 FFFF EA00h)。 但是、实际偏移似乎为110h。 我怀疑错误可能是 FFFF EA00h + 110h = FFFF EB10h 这一事实所致。

    使用110h 后、该功能现在可按预期运行。

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

    Sigmund、您好!

    您是对的。

    根据 HALCoGen 驱动程序、PINMMR 寄存器从 0xFFFFEB10U 地址开始。 这意味着 PINMMR0位于 0xFFFFEB10U 上。

    因此、它的偏移量等于0x110 (0xFFFFEB10 - 0xFFFFEA00)。 TRM 错误地提及0xB10。

    感谢您的这一发现、我在此记录了 TRM 的这一错字、我们将在下一个文档版本中更正此问题。

    --

    谢谢。此致、
    Jagadish。