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.
器件型号:AM64x/AM62x/AM62Ax
这个常见问题解答主要解释了如何在 SDL 中配置 ESM 模块以及启用触发 ESM 中断的错误事件。
它还显示了如何为一个 ESM 事件设置中断优先级并且为相应事件启用一个外部错误引脚。
以下说明适用于 AM64x、AM62x 和 AM62Ax 器件。
在配置之前、您需要了解 ESM 模块是如何工作的 ECC_Test_esmInitConfig_main 位字段。
为此、请查看 ESM 寄存器组和 ESM 模块的中断架构。
ESM0中断映射
错误信令模块(ESM)
请浏览 ESM0_MCU 表、其中指定了有多少中断路由到主 Interrupt_Map 或 MCU ESM。
在 AM64X 中、我们有177个事件路由到 ESM0模块、92个事件路由到 MCU ESM。
同样、您可以浏览 AM62x TRM 中的表10-2和表10-3、分别查看路由到 Main 和 WESM kup 的事件
现在,如果您查看 ESM 寄存器,您主要需要检查3个寄存器。
我已经从 AM64X TRM 中捕获了这些寄存器。
阅读 上述信息后、您可以在位图配置中看到代码。
ESM 错误事件分为 每组32个 。 所以 ESM 中断映射表中的事件0-31将在组0中、32-63在组1中、依此类推。 enableBitmap、priorityBitmap、errorpinBitmap 结构的每个条目都与特定 ESM 组相对应。
主要有3位映射字段。
enableBitmap:
您可以从 TRM 中检查中断映射表并识别需要关注的事件。 要启用该特定错误事件、您可以在 enableBitmap 结构中将与该事件编号对应的位设置为1。
优先级位图 :
对于每个错误事件、您可以将中断的优先级设置为高或低。 在 priorityBitmap 结构中、我们设置了启用的 ESM 事件的中断优先级。 为了给特定的 ESM 事件配置高优先级中断、我们可以将与 ESM 事件相对应的位设置为1。 同样、要配置低优先级中断、您可以将该位设置为0。
所有事件的优先级默认设置为0。
errorpinBitmap :
在 errorpinbitmap 中、您可以启用外部引脚以外部监控 ESM 事件的状态。 您可以通过将寄存器中的位
ESM 事件命名为1。
示例 :假设我想为 WWD_0外设启用 ECC 聚合器 ,中断号值为
(屏幕截图来自 AM64X TRM)
DMSC0_RTI_0_INTR_WWD_0 -> 5
优先级 >高
错误引脚事件:>禁用
上述事件应在 组0 因此,应配置所有位图字段的突出显示位置。
现在、您可以在组0的第5个位置只保留1个值。
即 .enableBitmap ={ 0x00000020u 、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、
}、
.priorityBitmap ={ 0x00000020u 、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、
}、
.errorpinBitmap ={ 0x00000000u 、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、0x00000000u、0x00000000u、0x00000000u、
0x00000000u、
}、
上述说明对于 MCU ESM 和唤醒 ESM 模块是相同的、 对于 AM64X 和 AM62X 器件也是相同的方法。