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.

[参考译文] AM6442:PRU INTC 启用

Guru**** 2540720 points
Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1243416/am6442-pru-intc-enable

器件型号:AM6442

两个问题:

1.在 AM6442的版本 F TRM 中、页3208提供了一组配置 PRU 中断控制器的步骤(第6.4.7.2节)。 第5步讨论了对 ICSS_INTC_HIN_ENABLE_SET_INDEX_REG 的写入、但未讨论对 ICSS_INTC_ENABLE_SET_INDEX_REG 的写入。 我的理解是、"hint_enable_set"寄存器启用主机中断、而"enable_set"寄存器启用该通道。

我们是否 需要写入 ICSS_INTC_ENABLE_SET_INDEX_OFF? 如果是、是否从第6.4.7.2节的列表中遗漏了此内容?

注意这也在6.4.7.1.2.1.1节之前的几页中讨论,其中规定我们应写入 ICSS_INTC_ENABLE_SET_INDEX_OFF。

  ICSS_INTC_HINT_ENABLE_SET_INDEX_REG 和 ICSS_INTC_ENABLE_SET_INDEX_REG 的定义都显示了0-9位用于启用、10-31位保留。 但这只允许启用主机中断(或通道) 0-9。 由于 PRU 有20个通道/20个主机中断、我们如何启用中断10-20?

该中断在尝试为 RTU 启用主机中断11 (映射到 R31位31)时出现。

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

    我能够通过试错来解决这个问题。  

    ICSS_INTC_HIN_ENABLE_SET_INDEX_REG 启用主机中断。 向该寄存器写入0将启用中断0、写入1将启用中断1、一直到中断19 (总共20个主机中断)。

    ICSS_INTC_ENABLE_SET_INDEX_OFF 不启用通道、而是启用事件(PRU INTC 的中断输入)。 在 AM6442上、有160个事件/源中断。 写入值0将启用事件0、写入值1将启用事件1、一直到事件159。

    特别令人困惑的是、TRM 使用"中断"一词来指代"主机中断"(PRU  INTC 的中断输出)和"系统事件"( PRU INTC 的中断输入)。 对于 所讨论的中断类型、通常很少或没有明确说明。   如果将术语 标准化以避免这些混淆,将会澄清很多。 例如、TRM 有时将 PRU INTC 的中断输入称为"事件"。   当提到 PRU INTC 的中断输入时、如果在整个 TRM 中一致使用了"事件"、那么理解起来会容易得多。

    TRM 还缺乏 上下文或其他信息、无法在代码不工作时帮助确定存在什么错误。 例如、通过试错、我发现写入索引(侧注:"index"从未在 TRM 中定义;什么的索引? 主机中断? 源中断? 系统事件? 信道编号?) 更改了"ICSS_INTC_HIN_ENABLE_SET_INDEX_REG0"  、说明了如何在 ICSS_INTC_ENABLE_HIN_REG0中设置相应的位。 同样、向 ICSS_INTC_ENABLE_SET_INDEX_OFF 写入索引 会导致在 ICSS_INTC_ENABLE_REG0-4中设置相应的"事件"位。 但 TRM 中从未详述这一点。

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

    尊敬的 Steven Hansen:

    感谢您对此进行操作并更新了该主题。

    祝你度过美好的一天!

    此致、

    斯里尼瓦萨