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.

[参考译文] 错误信令模块(ESM)的中断寄存

Guru**** 2481465 points
Other Parts Discussed in Thread: SK-AM62P-LP, AM62P

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1459263/interrupt-registration-for-error-signaling-module-esm

器件型号:SK-AM62P-LP
主题中讨论的其他器件: AM62P

工具与软件:

专家、您好!

董事会:SK-AM62P-LP

操作系统: Processor SDK Linux RT AM62P Debian Trixie -版本: 10.00.07.04.

MCU+SDK:版本:10.00.07.04

我从 SDK 中导入了 DCC 工程并阅读了 TRM 中的 ESM 部分。 我尝试为 ESM (唤醒和主)注册中断。 TRM 提到 ESM 中的事件总数为1024、分为32组。

对于 WAKEUP_ESM:TRM 中提到的事件总数为92个、我还观察到 SDK 定义了92个事件。

对于 MAIN_ESM:TRM 中提到的事件总数为248+1、我观察到 SDK 定义了249个事件


#define SOC_WKUP_ESM_MAX_NUM_EVENTS (SDLR_WKUP_ESM0_ESM_PLS_EVENT2_WKUP_MCU_GPIOMUX_INTROUTER0_OUTP_11+1U)
#define SOC_MAIN_ESM_MAX_NUM_EVENTS (SDLR_ESM0_ESM_PLS_EVENT2_RTI15_INTR_WWD_0+1U)


但在 SDK 的 DCC 示例代码中、它们注册在 limit 后面。正如我在下面的代码片段中提到的。

SDL_ESM_config DCC_Test_esmInitConfig_Inst =
{

     /**< All high priority events to error pin */
        .esmErrorConfig = {1u, 8u}, /* Self test error config */
    .enableBitmap = {0x00000000u, 0x00000006bu, 0x00000000u, 0x00003000u,
                 0x00000000u, 0x00000380u,

                },
     /**< All events enable: except clkstop events for unused clocks
      *   and PCIE events */
    .priorityBitmap = {0x00000000u, 0x00000006bu, 0x0000000u, 0x00003000u,
                 0x00000000u, 0x00000380u,

                        },
    /**< All events high priority: except clkstop events for unused clocks
     *   and PCIE events */
    .errorpinBitmap = {0x00000000u, 0x00000006bu, 0x00000000u, 0x00003000u,
                 0x00000000u, 0x00000380u,

                      },
    /**< All events high priority: except clkstop for unused clocks
     *   and PCIE events */


};
SDL_ESM_config DCC_Test_esmInitConfig_Main =
{


  /**< All high priority events to error pin */
        .esmErrorConfig = {1u, 8u}, /* Self test error config */
    .enableBitmap = {0x00000000u, 0x000000078u, 0x00008000u,0x003f3000u,
                 0x00000000u, 0x00000380u,

                },
     /**< All events enable: except clkstop events for unused clocks
      *   and PCIE events */
    .priorityBitmap = {0x00000000u, 0x000000078u, 0x00008000u,0x003f3000u,
                 0x00000000u, 0x00000380u,
                        },
    /**< All events high priority: except clkstop events for unused clocks
     *   and PCIE events */
    .errorpinBitmap = {0x00000000u, 0x000000078u, 0x00008000u,0x003f3000u,
                 0x00000000u, 0x00000380u,

                      },
    /**< All events high priority: except clkstop for unused clocks
     *   and PCIE events */


 };


在上述代码片段中、假设enableBitmap[0]表示32个错误事件、每个位对应一个错误。 如果我错了、请更正我。 enableBitmap[1]将寄存中断 ID 32、33、34、37和38。 除37之外、所有中断 ID 都与 ECC 相关。 在 DCC 检查中注册这些 ECC 中断真的有必要吗?
此外、priorityBitmap[1]具有36位。 这怎么可能呢?
esmErrorConfig"那有什么用?"

谢谢!

Raj。