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.

TMS570LS3137: F021 Flash API source available?

Part Number: TMS570LS3137

I have a bootloader in my project, so I am updating the image during run-time. I have a reproducible scenario where post-new code load, the first call to Fapi_initializeFlashBanks will corrupt (at least one) file-scope variable (that was already initialized). 

I saw a prior post that the API-source was unavailable. If that is still true, can I get the source to Fapi_initializeFlashBanks?

If I cannot get the function or API source, can you tell me about global / file-scope variables Fapi_initializeFlashBanks is using -- where in memory are they stored, and can I see them in the map-file?

Also is Fapi_initializeFlashBanks using linker-generated pointer-constants (like __TI_PINIT_Base)?

Something in Fapi_initializeFlashBanks is not being updated properly after writing a new flash-image (during run-time).

Thanks,

Jim

  • A little more information, if you can look at your Fapi_initializeFlashBanks source for me. Near the end of the map-file, there are 4 variables assigned memory locations, that are not in my source (so presumably in a TI library): _lock, _unlock, u32MainFclkScale, and u32EEFclkScale. My known-to-be-corrupt variable is located next to u32EEFclkScale. Are any of these assigned by the linker or dynamic in size?

    Thanks,
    Jim
  • I have verified that the F021 Flash API includes at least 2 initialized global variables (in the .data segment) that are written to by the call to Fapi_initializeFlashBanks -- the problem is that after a new firmware-update, the .data segment can move a bit, so now the Flash API library is stepping on my variables. Now I need to locate the F021 Flash API library into a dedicated and fixed Flash and RAM location. In the linker-command file, I know how to locate the API library into a specific area of flash (and execute out of a specific area of RAM) -- but do you know how to locate the Flash API globals into a specific location of RAM?

    Thanks,

    Jim

  • Hi Jim,

    I am sorry for late reply. The source code of the F021 library is not available. There is an example in bootloader project to place flash API to a specific RAM location. I don't know how to place the API global variables to a specific location in .bss, I even don't know the global variables used in F021 API.