Part Number:TMS320C6678
第一个问题:INTC模块的事件映射到CPU中断INT4-INT15这个过程怎么实现的,通过硬件还是软件?模块里面的INTMUX1-3寄存器负责完成中断事件选择,它是怎么完成把128个事件随机映射到12个CPU中断的呢?在下面这个文档中,有使用软件配置,是否是用这种手动配置方式完成映射呢/cfs-file/__key/communityserver-discussions-components-files/120/7144.Configuring-Interrupts-on-Keystone-Devices.pdf
第二个问题:INTMUX寄存器里INTSELx字段会根据引起中断的事件不同而实时变化吗,如果可以变化这是怎么实现的呢?
希望有大佬帮忙解决,谢谢谢谢谢谢
Gary Lu:
您好,
yifan ? 说:第一个问题:INTC模块的事件映射到CPU中断INT4-INT15这个过程怎么实现的,通过硬件还是软件?
硬件实现,负责管理和分配中断。INTMUX寄存器用于中断事件的选择和映射到CPU中断线。硬件会检测到中断事件并相应地将其映射到特定的CPU中断线(INT4-INT15)
yifan ? 说:第二个问题:INTMUX寄存器里INTSELx字段会根据引起中断的事件不同而实时变化吗,如果可以变化这是怎么实现的呢?
INTMUX寄存器的INTSELx字段是可以在运行时变化的。实现了动态的中断事件选择。当中断事件发生时,INTMUX寄存器会根据事件的优先级或其他配置,动态地更新INTSELx字段,以选择要发送到CPU中断线的特定中断事件。
这个过程是由硬件逻辑实现的,在事件发生时,硬件逻辑会检测所有挂起的中断事件,选择优先级最高的事件,并将相应的信息写入INTMUX寄存器的相应字段,以将该事件映射到特定的CPU中断线。
,
yifan ?:
第一个问题:我使用硬件描述语言描述INTMUX寄存器,例如事件13映射到CPU中断,得到的结果是INTSEL4-15十二个字段都检测到并保存了事件13的编号,但是理论上来说应该是只有一个INT被事件13映射到,怎么实现随机这个过程呢,在INTC模块中,软件需要做哪些工作呢?求大佬回答
,
Gary Lu:
yifan ? 说:软件需要做哪些工作呢
中断初始化配置和中断使能还有中断清除
,
yifan ?:
谢谢您的回答,那么在6678的中断合并功能中,假如多个事件通过EVENT combiner合并为一个EVT2事件 再将EVT2 映射到INTMUX3 对应的INT15;
假如多个事件同时触发,形成INT15的中断,那么INT15会只响应一次吗?如果是根据这些事件优先级依次响应,那么这些被合并的事件优先级如何界定?期待您的解答
,
Gary Lu:
yifan ? 说:假如多个事件同时触发,形成INT15的中断,那么INT15会只响应一次吗?
是的,只响应一次。这是因为中断控制器会在处理完一个中断后立即屏蔽其他同级别的中断,确保中断处理程序能够及时响应
yifan ? 说:如果是根据这些事件优先级依次响应,那么这些被合并的事件优先级如何界定?
不同的事件可能具有不同的优先级,取决于它们的重要性和处理的紧迫程度