Other Parts Discussed in Thread: AM5718
工具/软件:Code Composer Studio
您好!
我正在使用 AM5718、我使用您的 API 为 McSPI 重建了一个裸机项目、我使用文件 interrupt.c 中的默认 API 注册了中断、但中断 的寄存器详细信息在您的 TRM 中不可用。 我们从何处获取这些详细信息??。请分享有关此内容的文档。
此致、
Shan Muhammad
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.
您好!
[报价用户="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
尊敬的 Alex Baskov:
[引用 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