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.

unresolved symbols in the F021 flash library

Other Parts Discussed in Thread: HALCOGEN

hi, I need to emulate EEPROM and downloaded the F021 library. I'm getting linker errors for:

symbol in file
--------- ----------------
Fapi_doBlankCheck ./source/ti_fee_util.obj
Fapi_enableEepromBankSectors ./source/ti_fee_ini.obj
Fapi_initializeFlashBanks ./source/ti_fee_ini.obj
Fapi_issueAsyncCommandWithAddress ./source/ti_fee_util.obj
Fapi_setActiveFlashBank ./source/ti_fee_util.obj

Am I missing some other library?

  • Hello Tony,

    Based on your linker errors, it appears like you have not included the correct F021 Flash API library into your project or have not installed the F021 Flash API.

    For RM42 devices this would be F021_API_CoretexR4_LE.lib

    For RM46/RM48 devices it would be F021_API_CoretexR4_LE_V3D16.lib if using floating point or F021_API_CoretexR4_LE.lib if not.

    For TMS570LS0xxx devices this would be F021_API_CoretexR4_BE.lib

    For TMS570LS1xxx/21xx/31xx devices it would be F021_API_CoretexR4_BE_V3D16.lib if using floating point or F021_API_CoretexR4_BE.lib if not.

  • The TI_FEE wiki entry said:

    Step 7: Include Corresponding F021 library and necessary include files from F021.

    But did not explain how this is done, hence my question.

     I was able to include the FEE /include directory using Project->properties->CCS Build->ARM Compiler->Include options, but I could not get the linker to find the path to the .lib file.

    So I did a Project->Add Files... to add the .lib and that made the linker happy.

    The other thing omitted from the TI FEE wiki would be a list of the FEE API commands; the F021 library doc does not seem to explain how to use the functions beginning with TI_Fee_*(), just the Fapi_*() functions.

  • The FEE driver and the F021 Flash API are 2 separate products, with the FEE driver using Flash API when it needs to modify the Flash.

    The documentation for the FEE driver can be found within HALCoGen.

  • Looking over the TI FEE documentation, it's not clear to me how this should work.

    In most EEPROMs, a location can be written/read repeatedly without clearing it first.

    in TI FEE-land, once a block is written, can it be overwritten, or must the block be cleared first, then written?

  • The FEE driver emulates a normal EEPROM by handling the need for erasing, etc. in the background.  This allows you to write a block without worrying about clearing it first.  Periodic calls to the FEE management function will determine when it needs to switch to a new Flash sector, copying the latest version of all the data to that sector.  Once the data has been copied, it will then erase the old Flash sector, preparing it to be used again by the driver when needed.