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: How to Verify Idle Status of the Three NPU Controllers on TMS570

Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN

Tool/software:

Hello,

I am working with the TMS570LC43x series microcontrollers and need to set up the MPU (Memory Protection Unit) regions for the three NPU (Nucleus Processing Unit) controllers. I am referring to the process detailed in the Technical Reference Manual (TRM) on page 467, which mentions:

**"Following is the recommended generic software sequence to setup the MPU regions:

  1. Make sure the bus master is idle and not sending any transaction. Please follow the bus master TRM on how to idle the bus interface. It will be different from one bus master to another."**

I need some clarification regarding the following points to understand this process correctly:

  1. When it states, "Make sure the bus master is idle and not sending any transaction," should we specifically check the idle status of the bus master (e.g., the EMAC DMA) itself, ensuring it is not initiating any transactions?
  2. Conversely, the statement "Please follow the bus master TRM on how to idle the bus interface" suggests we need to ensure the bus itself (e.g., AXI, AMBA, AHB, APB) used by the NPU is idle. Should we also verify if the bus is free of any transactions, regardless of the master?

This has created some ambiguity about whether to focus on the bus master or the bus interface for verifying idle status. Could you please provide detailed guidance on:

  • The specific steps or registers to check for ensuring each NPU bus master is idle.
  • Any references for how to confirm the idle status of the bus interfaces used by these NPUs.

Any guidance, including relevant sections of the TRM, application notes, or example codes illustrating this process, would be greatly appreciated.

Thank you for your assistance.

  • Hi,

    In our HALCoGen generated code we are calling _mpuInit_ after immediately after performing system initializations in startup code which is after power ON and before calling main.

    Here i don't find any code related to bus idle before MPU initializations, this is probably because of no other masters will do any communications because the other bus masters like DMA will not get activated at this time.

    So, my suggestion would be you don't need to check any other bus masters idle state if you are calling MPU initializations in startup code, maybe you want to call this MPU initializations during run time of the application then you might need to check whether other bus masters are idle or not.

    --
    Thanks & regards,
    Jagadish.