SPRUJ27C November   2022  – November 2023 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1

 

  1.   1
  2.   Trademarks
  3. 1Introduction
    1. 1.1 Reference Material
    2. 1.2 Function Listing Format
  4. 2TMS320F28003x Flash API Overview
    1. 2.1 Introduction
    2. 2.2 API Overview
    3. 2.3 Using API
      1. 2.3.1 Initialization Flow
        1. 2.3.1.1 After Device Power Up
        2. 2.3.1.2 FMC and Bank Setup
        3. 2.3.1.3 On System Frequency Change
      2. 2.3.2 Building With the API
        1. 2.3.2.1 Object Library Files
        2. 2.3.2.2 Distribution Files
      3. 2.3.3 Key Facts For Flash API Usage
  5. 3API Functions
    1. 3.1 Initialization Functions
      1. 3.1.1 Fapi_initializeAPI()
    2. 3.2 Flash State Machine Functions
      1. 3.2.1 Fapi_setActiveFlashBank()
      2. 3.2.2 Fapi_issueAsyncCommandWithAddress()
      3. 3.2.3 Fapi_issueBankEraseCommand()
      4. 3.2.4 Fapi_issueProgrammingCommand()
      5. 3.2.5 Fapi_issueProgrammingCommandForEccAddresses()
      6. 3.2.6 Fapi_issueFsmSuspendCommand()
      7. 3.2.7 Fapi_issueAsyncCommand()
      8. 3.2.8 Fapi_checkFsmForReady()
      9. 3.2.9 Fapi_getFsmStatus()
    3. 3.3 Read Functions
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
      3. 3.3.3 Fapi_calculatePsa()
      4. 3.3.4 Fapi_doPsaVerify()
    4. 3.4 Informational Functions
      1. 3.4.1 Fapi_getLibraryInfo()
    5. 3.5 Utility Functions
      1. 3.5.1 Fapi_flushPipeline()
      2. 3.5.2 Fapi_calculateEcc()
      3. 3.5.3 Fapi_isAddressEcc()
      4. 3.5.4 Fapi_remapEccAddress()
      5. 3.5.5 Fapi_calculateFletcherChecksum()
  6. 4Recommended FSM Flows
    1. 4.1 New Devices From Factory
    2. 4.2 Recommended Erase Flow
    3. 4.3 Recommended Bank Erase Flow
    4. 4.4 Recommended Program Flow
  7. 5Software Application Assumptions of Use Related to Safety
  8.   A Flash State Machine Commands
    1.     A.1 Flash State Machine Commands
  9.   B Compiler Version and Build Settings
  10.   C Object Library Function Information
    1.     C.1 TMS320F28003x Flash API Library
  11.   D Typedefs, Defines, Enumerations and Structures
    1.     D.1 Type Definitions
    2.     D.2 Defines
    3.     D.3 Enumerations
      1.      D.3.1 Fapi_FlashProgrammingCommandsType
      2.      D.3.2 Fapi_FlashBankType
      3.      D.3.3 Fapi_FlashStateCommandsType
      4.      D.3.4 Fapi_FlashReadMarginModeType
      5.      D.3.5 Fapi_StatusType
      6.      D.3.6 Fapi_ApiProductionStatusType
    4.     D.4 Structures
      1.      D.4.1 Fapi_FlashStatusWordType
      2.      D.4.2 Fapi_LibraryInfoType
  12.   E Parallel Signature Analysis (PSA) Algorithm
    1.     E.1 Function Details
  13.   F ECC Calculation Algorithm
    1.     F.1 Function Details
  14.   G Errata
  15.   Revision History

Fapi_issueProgrammingCommandForEccAddresses()

Remaps an ECC address to data address and calls Fapi_issueProgrammingCommand().

Synopsis

Fapi_StatusType Fapi_issueProgrammingCommandForEccAddress(
         uint32 *pu32StartAddress,
         uint16 *pu16EccBuffer,
         uint16   u16EccBufferSizeInBytes)

Parameters

pu32StartAddress [in] ECC start address in Flash for the ECC to be programmed
pu16EccBuffer [in] pointer to the ECC buffer address
u16EccBufferSizeInBytes [in] number of bytes in the ECC buffer
If the number of bytes is 1, LSB (ECC for lower 64 bits) gets programmed. MSB alone cannot be programmed using this function. If the number of bytes is 2, both LSB and MSB bytes of ECC get programmed.

Description

This function will remap an address in the ECC memory space to the corresponding data address space and then call Fapi_issueProgrammingCommand() to program the supplied ECC data. The same limitations for Fapi_issueProgrammingCommand() using Fapi_EccOnly mode applies to this function. The LSB of pu16EccBuffer corresponds to the lower 64 bits of the main array and the MSB of pu16EccBuffer corresponds to the upper 64 bits of the main array.

Note: The length of the pu16EccBuffer cannot exceed 2.
Note: This function does not check FMSTAT after issuing the program command. The user application must check the FMSTAT value when FSM has completed the program operation. FMSTAT indicates if there is any failure occurrence during the program operation. The user application can use the Fapi_getFSMStatus function to obtain the FMSTAT value.
Note: Fapi_EccOnly mode should not be used for Bank0 DCSM OTP space. If used, an error will be returned. For the DCSM OTP space, either Fapi_AutoEccGeneration or Fapi_DataAndEcc programming modes should be used.

Return Value

  • Fapi_Status_Success (success)
  • Fapi_Error_InvalidBaseRegCntlAddress (failure: Flash control register base address provided by user does not match the expected address)
  • Fapi_Error_AsyncIncorrectEccBufferLength (failure: Data buffer size specified is incorrect)
  • Fapi_Error_FlashRegsNotWritable (failure: Flash register writes failed. The user should make sure that the API is executing from the same zone as that of the target address for flash operation OR the user should unlock before the flash operation.
  • Fapi_Error_InvalidAddress (failure: User provided an invalid address. For the valid address range, see the TMS320F28003x Microcontrollers Data Manual.