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.

F021 Flash API compiled with ARM tools

Other Parts Discussed in Thread: TMS570LS0432

Hello,

I am using TI's Hercules TMS570LS0432 microcontroller and I need to read and write to flash memory. In order to do that I need to use TI's F021 Flash API (according to the app note: spnu501h). However, my company is currently using ARM Keil tools to compile code, whereas the F021 API is built using TI's code generation tools for ARM. The folks over at ARM support said that the ABI for code compiled with Keil ARM tools is not compatible with the F021 library compiled using TI's tools.

So, I am wondering 2 things: 1) Does it sound accurate that they are not compatible? 2) If that is the case, is there a version of the F021 API that is compiled with Keil ARM tools instead of TI Tools? (Based on a few forum posts it appears that getting source code and compiling it myself is not an option).

Another option would be to use the flash programming algorithms for TMS570LS that come included with Keil. However on page 2 of spna148 (which discusses writing custom program/erase functions) it says,  "The F021 Flash API is still required for Flash initialization and bank selection." Does that mean that I will always have to use those initialization functions from TI's F021 API when using flash on the TMS570LS0432? Or could I use the equivalent functions included with Keil? (For me, the file with those functions is located at:  C:\Keil_v5\ARM\TMS570LS_F021_384KB.FLM)

Thank you very much for your help!

Gawan

  • I can't comment on the Keil tools. The ABI for the F021 library is the ARM EABI though so it sounds odd that an ARM tool can't work with it. Maybe you can ask them specifically about that because the TI ARM compiler follows the ARM standard for object files.
  • The F021 library was built with --abi=eabi, so that it could be used with other build tools. armlink accepts EABI-compliant libraries. In this case, the library generated by TI's compiler is compatible with armlink. Keil's MDK brings in one of these libraries to build the corresponding flash algorithm, so this compatibility is proven by the F035 TI flash algorithm source project in uVision. The default location for this project, after downloading legacy support for ARM7/9/CortexR-4's, is "C:\Keil_v5\ARM\Flash\TMS570LS\".
  • I added the legacy tools to Keil, but the flash library is still the F035. In this post (e2e.ti.com/.../547959) a TI employee said that I must use the F021 API with the Hercules TMS570LS0432. It seems here that you're saying that the F035 API should work. Can someone reconcile these two opinions? Will the F035 API actually work?

    Thanks
  • The first TMS570LS devices that we released were made with the F035 process and they are now NRND.
    www.ti.com/.../TMS570ls20216

    The TMS570LS0432 is an F021 device.