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.

[FAQ] [参考译文] [常见问题解答] TDA4VM:使用 OSAL 的 R5F 的 PDK 中断注册

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1158072/faq-tda4vm-pdk-interrupt-registration-for-r5f-using-osal

器件型号:TDA4VM

本文档旨在介绍 TI PDK 中使用的 R5F 内核的中断注册过程

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

    配置中断、中断路由和在内核中注册中断有两个步骤。 TI PDK 使用 sci 客户端调用将中断路由到内核、并使用 OSAL 层来寄存内核中断并将所需的 ISR 与中断挂钩。 本文档介绍了注册过程。 本文档解释了 OSAL 寄存器如何适用于 R5F、并解释了所涉及的寄存器集。

    寄存器集说明

    对于 R5F 内核、矢量中断管理器(VIM)、聚合器件中断并将其发送到 R5F 内核。 VIM 支持每个 R5F 内核512个中断输入。 只要一个中断输入变为高电平、如果中断被启用、它将导致一个 IRQ 被置为有效。 本节介绍了一些重要的 VIM 寄存器、这些寄存器在调试 R5F 中断问题时非常有用。

    R5FST_VIM_RAW_j  (0-F)

    这是组 M 的原始状态寄存器。所有512个中断被分成16个组、每个组32个中断。 R5Fss_VIM_RAW_j 寄存器的每个位代表该组的相应中断。 例如:内核中断33将由 R5FIS_VIM_RAW_2寄存器的第1位表示。 如果该位被置位、则表示内核中断33是有效的或挂起的。 这是一个很好的指示器、可以知道中断路由是否正确。

    R5Fss_VIM_STS_j (0-F)

    该寄存器指示屏蔽后的组中断状态。 任何位读数1都表示相应的中断被启用、位读数0表示中断被屏蔽/禁用。 可以读取该寄存器以确保启用所需的中断。

    R5FST_VIM_INTR_EN_SET_j (0-F)

    用于启用组中的中断。 向任何位写入1都会启用给定组的相应中断。 确保中断被启用以触发 IRQ。

     

    R5FSTS_VIM_INTR_EN_CLR_j (0-F)

    用于禁用组中的中断。 向任何位写入1都会禁用给定组的相应中断。

    R5FST_VIM_INTTYPE_j (0-F)

    用于指示给定组的中断类型、电平或脉冲。  0表示电平中断、1表示它是脉冲

    R5Fss_VIM_PRI_INT_j (0-1FF)

    用于设置中断的优先级。 每个寄存器(0-1FF)都包含相应中断的优先级设置。 优先级可以是0-Fh、0是最高优先级。

     

    R5Fss_VIM_VEC_INT_j (0-1FF)

    用于存储相应 ISR 的地址。

     

    R5FST_VIM_ACTIRQ

    存储有关活动 IRQ 的信息。 可以检查该寄存器的位0-9以了解当前有效的 IRQ 编号。 这是检查中断寄存器配置是否正确的良好指示。

    中断注册流程: