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: TMS570LC4357 with safety library 2.4.0

Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN

Hi all,

I am using the Controller TMS570LC4357 with the safety library 2.4.0 and I have a Problem with the function "SL_SelfTest_DMA(DMA_SOFTWARE_TEST)".

The test fails at Code line "if(sl_dmaSoftwrTestConfig(&dma_test_varA, &dma_test_varB, DMA_PERMISSION_READ_ACCESS, &dmaCTRLPKT))" but I do not understand why.

The return value of function "sl_dmaSoftwrTestConfig" should be true but it my case it is always false, The reason is that the source and destination value is different. Source value is 0x5555 5555 and destination value is Zero, so return value is false.

Best regards

Lars

  • Hello Lars,

    Typically this type of error is caused by the Cache settings. i.e., when the software performs the comparison between the source and destination content, the destination is the cached value and not the actual content of L2SRAM. To prevent this, configure the these memory locations as write through rather than cached.
  • Hi Chuck,

    I set the type of the RAM in HalCoGen, tab "R5-MPU-PMU", Region 3 (RAM area) to "NORMAL_ONIC_NONSHARED". And than it is working. But of course I have one more question. In the safety library 2.4.0 for the TMS570LC4357 processor, file sl_selftest.c, line 4739 should it be

    sl_dmaREG->DMAMPR_L[0U].ENDADD = (uint32)(srcAddr) + sizeof(uint32);

    or

    sl_sl_dmaREG->DMAMPR_L[0U].ENDADD = (uint32)(srcAddr) + sizeof(uint32) - 1U;

     

    Best regards

    Lars