您好!
2018年3月的 TRM SPNU563A 在第§19.5.3章中规定
仅在使用矢量中断的情况下才需要对 VIM RAM 矢量表进行初始化、并且索引中断管理不需要初始化该表。
根据 TRM 和我们计划使用 IRQ 索引中断模式(SCTRL.VE-0)、我们特意跳过了 RAM VIM 初始化、并在 首次 发生未屏蔽的 IRQ 时遇到锁步 VIM 总线比较错误(ESM 2.25)(我们案例中的第一个实时周期的 RTI 比较)。
在分析后、我注意到、即使在系统控制寄存器 SCTLR.VE 位设置为零的情况下、仍可以访问该表来更新 IRQVECREG 和 FIQVECREG 以及 IRQINDEX、这可以解释比较错误、因为 VIM RAM 表在上电后处于未知状态。
在我看来、 如果 SCTLR.VE 设置为零、寄存器矢量模式被激活、从而导致访问 VIM RAM 表以更新 xxxVECREG 寄存器。
您能否确认 VIM RAM 应该被无条件地初始化以避免 VIM 总线比较错误?
如果已确认,以下位置可能需要更新:SPNU563A 末尾§19.4.2和§19.5.3
感谢您的支持、
此致、
弗朗克。