工具与软件:
尊敬的 TI Supposrt:
关于 SDL DCC 示例、例如 UC5、我想知道为什么调用 SDL_DCCAppRegisterIsr? 启用相关 ESM 事件是否足够? 发生 DCC 错误时、会调用哪个 ISR handler?
谢谢
马西
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.
工具与软件:
尊敬的 TI Supposrt:
关于 SDL DCC 示例、例如 UC5、我想知道为什么调用 SDL_DCCAppRegisterIsr? 启用相关 ESM 事件是否足够? 发生 DCC 错误时、会调用哪个 ISR handler?
谢谢
马西
尊敬的 Massi:
调用 SDL_DCCAppRegisterIsr、以注册特定 DCC 实例的中断处理程序。 这会注册 SDL_DCCAppDoneIntrISR 例程。
调用 SDL_DCCAppDoneIntrISR 和 SDL_ESM_applicationCallbackFunction。 SDL_DCCAppDoneIntrISR 用于清除 CTRL 寄存器上的 DCC 错误并禁用 DONE 标志。

而 SDL_ESM_applicationCallbackFunction 用于禁用 ESM 中断并清除 ESM 寄存器中的错误状态。


此致、
Josiitaa.
Josiitaa、感谢您的及时响应。 您不能在 ESM 中断中同时进行吗? 这是否只是举个例子? 我的印象是、作为诊断任务的一部分、我们需要启用 DCC 和 ESM 事件、然后处理 ESM 中断中出现的任何问题。
我还注意到、在一些示例(例如 UC3)中、中断 ID 为 SDLR_MCU_R5FSS0_CORE0_INTR_MCU_DCC0_INTR_DONE_LEVEL_0、在 DCC 完成时调用是有意义的。 但是、我不知道为什么在 UC5和 UC6示例中、中断 ID 是 SDLR_ESM0_ESM_LVL_EVENT_DCC0_INTR_ERR_LEVEL_0、这似乎也是相应的 ESM 中断。 如果您能提供更多详细信息、我将不胜感激。
您好!
单比特模式下预期的 DCC 完成中断不是 ESM 事件。 它通过 DCC 本身提供。 因此、您必须在 DCC ISR 中对其进行处理。
DCC 错误中断由 ESM 回调发出通知。
此外、我注意到在一些示例中、例如 UC3、中断 ID 为 SDLR_MCU_R5FSS0_CORE0_INTR_MCU_DCC0_INTR_DONE_LEVEL_0、这是在 DCC 完成时调用的。 但是、我不知道为什么在 UC5和 UC6示例中、中断 ID 是 SDLR_ESM0_ESM_LVL_EVENT_DCC0_INTR_ERR_LEVEL_0、这似乎也是相应的 ESM 中断。 如果您能提供更多详细信息、我将不胜感激。
SDL DCC 示例有多个用例- https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/sdl/sdl_docs/userguide/j721e/examples/dcc.html
根据用例、您将看到针对单次模式的 DONE_LEVEL 中断和针对强制错误触发用例的 ERR_LEVEL 中断。
此致、
Josiitaa.