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.

TMS570LC4357: SDL ESM Configuration (Error Signaling Module)

Part Number: TMS570LC4357

Hi,

I have combined all of the SDL examples and now I only want to use a single callback and configuration functions. So, I am trying to fully understand the ESM configuration.

This link helps with ESM configuration, but I seem to need more help. https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1265594/faq-am64x-am62x-am62ax-configuring-the-esm-module-from-sdl-and-setting-the-esm-bit-fields-to-enable-the-esm-error-events

First, I am unsure what this is used for. It is not discussed in the link.  .esmErrorConfig = {1u, 8u}, /*Error event to be used for self test */

Second, from the link, I understand that there are 177 ESM Interrupts in the MAIN domain and 64 in the MCU Domain. I am a bit confused because the examples seem to enable more than just the 177 interrupts. This is what I think the configuration would look like if I were to enable the 177 interrupts in the MAIN domain and 64 interrupts in the MCU domain.

/* Main Domain */

.enableBitmap = {0xffffffffu, 0xffffffffu, 0xffffffffu, 0xffffffffu, //128
0xffffffffu, 0x0001ffffu, 0x00000000u, 0x00000000u, //256
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //384
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //512
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //640
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //768
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //896
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //1024
},

/* MCU Domain */

.enableBitmap = { 0xffffffffu, 0xffffffffu, 0x00000000u, 0x00000000u, //128
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //256
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //384
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //512
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //640
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //768
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //896
0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, //1024
},

Third, I received a high priority interrupt from grpChannel 5, index 2, intSrc 65.  Now, I am trying to figure out where that interrupt came from. I believe it maps to RTI11_INTR_WWD_0 if I am not mistaken.

Lastly, I am not sure what intSrc means. (I am referring to the callback )

int32_t ESM_callback(SDL_ESM_Inst esmInstType,
SDL_ESM_IntType esmIntType,
uint32_t grpChannel,
uint32_t index,
uint32_t intSrc,
void *arg)

Thank you,

  • Hi Christopher,

    I started working on your thread and will provide you an update ASAP.

    --
    Thanks & Regards,
    Jagadish.

  • Hi Christopher,

    My sincere apologies for the delay in late response, we got couple of holidays in the last week and i also have so many other issues to gone through in this mean time.

    Actually, there will only two ESM interrupts in general.

    They are "esmHighInterrupt" and "esmLowInterrupt".

    But there will be ESM channels of 160.

    And each of these error channel can be configured to either High interrupt or low interrupt.

    If we configure one channel into the ESM high interrupt then it will be routed to the routine "esmHighInterrupt" and if we configured it into ESM low interrupt then it will be routed to the routine "esmLowInterrupt".

    From these routines we can call some notification functions and can handle the interrupts in those notification functions as below

    --
    Thanks & regards,
    Jagadish.