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 load diagnostic functions FLA10 and FLA11 into RAM?

Part Number: TMS570LC4357

Hi experts,

We are trying to load FLA10 and FLA11 into RAM for execution.
We are using the ARM compiler and following this example: https://developer.arm.com/documentation/ka003187/latest

The Problem we are facing is that we get a Prefetch Abort when the function should be called.

What could cause this problem?

Thank you and best regards,
Max

  • Hi Max,

    We are trying to load FLA10 and FLA11 into RAM for execution.

    I am not familiar with Keil tool. If the code to be executed from SRAM, the section which contains the code should be copied from Flash to SRAM manually.

    Do you check if the code has been copied to SRAM? 

    Did you get the prefetch abort when performing code copy or when performing the Flash self-test (FLA10/11)? 

    Please check the status from IFSR and IFAR to determine the type of fault and the address leading to the abort. The prefecth abort is always synchronous. 

  • The Problem we are facing is that we get a Prefetch Abort when the function should be called.

    Some things to check:

    1. Has the MPU been configured to give execute permission to the RAM?
    2. If the processor cache is already enabled when the code is copied to RAM, you need to clean the cache to flush the data cache to RAM before attempting to call the RAM functions. I have seen a prefetch abort calling RAM function is fail to do that, as "stale" data in RAM can be loaded into the instruction cache. See TMS570LC4357: Moving a function to RAM