工具/软件:Code Composer Studio
我将 IPCGR 用于 IPC 中断。 在我的项目中、两个内核、例如内核 A 和内核 B、都可能向 内核 C 发送中断。在 C6678数据表中、据说在我写入 IPCGR 寄存器之前、我必须解锁 kicker 机制、我的问题是: 如果内核 A 和内核 B 尝试同时解锁 kicker 机制、会发生什么情况? 我想可能有两种情况。
情况1: KICK0和 KICK1寄存器不关心谁解锁了 kicker 机制。 一旦任一内核将其解锁、IPCGR 寄存器将变为可写。 然后内核 A 和内核 B 都可以为 内核 C 写入 IPCGR 寄存器。在这种情况下、内核 C 是否会错过其中一个中断?
案例2: KICK0和 KICK1寄存器知道谁解锁了 kicker 机制。 如果内核 A 解锁、则内核 B 无法再次解锁、 直到内核 A 锁定 kicker 机制。 如果正确、可能会发生以下情况:Core A 解锁 kicker -> Core B 尝试解锁 kicker、但被阻止。 因此、内核 B 将停止 ->内核 A 将锁定 kicker ->内核 B 将恢复执行并解锁 kicker。
C6678在哪种情况下是正确的? 谢谢你。
祝你一切顺利!