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.

TMS320F280039C: codestart question

Part Number: TMS320F280039C
Other Parts Discussed in Thread: C2000WARE

Hi Team,

There's an issue from the customer need your help:

280039C A problem was found in the process of jumping APP program of personal bootload program.

Put the boot program in the first 4 sectors of flash, and put APP in the remaining flash

If the codestart of the app is set to the 0xAFFFE, the boot will not be able to jump, and the boot simulation will report the following error

And moving forward one or more address bits can be successful, and I would like to ask for the specific reason for this

Best Regards,

Ben

  • Hello Ben,

    This error is occurring because you're placing your entry function at the end of the Flash. Because the prefetch mode is enabled, the CPU will attempt to prefetch beyond that address into invalid memory space, and this results in an uncorrectable error. Please see the note in the device TRM, under Flash Module > Flash Read Interface > Prefetch Mode (6.7.1.2). This is also documented in the device errata document ("Memory: Prefetching beyond valid memory").

  • Hi Ibukun,

    I still don’t understand. After reading this part of the explanation, because of the prefetching mechanism of flash, it is generally not recommended to use the last 16 addresses of flash. But why can the same configuration jump successfully on 280025C? The same It is placed in the penultimate address bit. Comparing the configurations of the two flashes, there is no difference. And why is it okay to put it on 0xAFFFD in 280039c?

    Best Regards,

    Ben

  • Ben,

    It appears there is some boundary condition that affects whether or not the prefetch mechanism is being activated and triggering the error. Regardless, on both F28002x and F28003x, you should not be putting executable code into the last row of Flash. The provided linker command files in C2000Ware (e.g. device_support/f28003x/common/cmd/28003x_generic_flash_lnk.cmd) explicitly reserve the last row for this reason.

    Best regards,
    Ibukun