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.

[参考译文] CCS/AM5718:寄存器详细信息不可用、无法用于寄存中断

Guru**** 2800955 points

Other Parts Discussed in Thread: AM5718

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/892340/ccs-am5718-unavailability-of-register-details-for-registering-interrupts

器件型号:AM5718

工具/软件:Code Composer Studio

您好!

我正在使用 AM5718、我使用您的 API 为 McSPI 重建了一个裸机项目、我使用文件 interrupt.c 中的默认 API 注册了中断、但中断 的寄存器详细信息在您的 TRM 中不可用。 我们从何处获取这些详细信息??。请分享有关此内容的文档。

此致、

Shan Muhammad

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

    您是否正在寻找 McSPI IRQ 状态寄存器? 如果是、则器件 TRM 的"24.4.4.7中断"部分(第"24.4章多通道串行外设接口")对其进行了说明

    请告诉我们这是否有帮助、

    谢谢、

    Alex

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

    您好!

    [报价用户="Alex Baskov">您是否正在寻找 McSPI IRQ 状态寄存器? 如果是、则器件 TRM 的"24.4.4.7中断"部分(第"24.4章多通道串行外设接口")对其进行了说明[/引用]

    否则 、您的 TRM 中不提供 API 中的某些寄存器详细信息(INTC_IntPrioritySet)。  

    例如:=

    void intc_IntPrioritySet (uint16_t intrNum、uint16_t priority、uint8_t hostIntRoute)

    uint32_t index、mask;
    uint32_t gicIntraId =(uint32_t) intrNum +(uint32_t) 32U;

    if (intrNum < NUM_INTERRUPTS_EXTERNAL)

    索引=(((uint32_t) gicIntraId >> 2)+ 1U;
    mask =(uint32_t) gicIntraId % 4U;

    /*设置共享外设中断的优先级*/
    HW_WR_REG32 (SOC_INTC_MPU_DIAGER_BASE +(MPU_GICD_IPR0 +(NUM_Bytes_REG *索引))、
    (((priority &(uint32_t) 0xFF)<<(MASK * 8U)));

    此处 、您的 TRM 中不提供 SOC_INTC_MPU_Distributor_BASE +MPU_GICD_IPR0。

    此致

    Shan Muhammad

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

    这不是真正的中断名称、对吧? 在这里、软件只计算要写入的 IRQ 寄存器的物理地址(基址+偏移量)。 如果打印地址、您应该在 TRM 中找到所述的打印地址。  

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

    尊敬的 

    [引用 user="Alex Baskov"]这不是真正的中断名称,对吗?

    是的、这不是真正的中断名称。

    我刚才通过打印计算了物理地址、即0x48211464 (intrNum=65 (McSPI1_CH0))。 但我无法在 您 的 TRM 中找到该地址。

    此致

    Shan Muhammad

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

    您好!

    好的、感谢您提供地址。 这是 MPU_INTC 地址空间。

    [引用用户="TRM"]

    [/报价]

    然后、TRM 不会列出所有特定于 ARM 的寄存器、而是应参阅 Arm 文档。  

    [引用用户="TRM"]

    4.4.3 MPU_INTC 寄存器
    有关 MPU_INTC 寄存器及其说明的信息、请参阅 Arm Cortex-A15 MPCore
    技术参考手册(可在 infocenter.arm.com/help/index.jsp 上找到)。

    [/报价]

    然后我转到并查看了 Arm 文档、偏移量0x1000是通用中断控制器(GIC)分发器  

    [引用 user="Arm doc"]

    [/报价]

    然后、在分配器寄存器@偏移量0x464中、看起来您已经命中该寄存器。

    [引用 user="Arm doc"]

    [/报价]

    我试图带您浏览并展示我是如何调查此地址的、但我自己不太熟悉 Arm 文档、因此希望您能从中了解。

    我仍然不明白为什么您必须深入研究处理器的寄存器。 处理器只是一个处理程序。 您可以直接检查 McSPI 中断状态寄存 器中的错误、例如通过轮询 MCSPI_IRQSTATUS 寄存器。

    无论如何、我希望这对您有所帮助、请告诉我们您的发现以及我们是否可以关闭此主题。

    谢谢、
    Alex