SPRUJE7A January   2025  – July 2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Differences From C28x
    2. 1.2 Function Listing Format
  5. 2F29H85x 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 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
  6. 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_setupBankSectorEnable()
      3. 3.2.3  Fapi_issueAsyncCommandWithAddress()
      4. 3.2.4  Fapi_issueBankEraseCommand()
      5. 3.2.5  Fapi_issueProgrammingCommand()
      6. 3.2.6  Fapi_issueAutoEcc512ProgrammingCommand()
      7. 3.2.7  Fapi_issueDataAndEcc512ProgrammingCommand()
      8. 3.2.8  Fapi_issueDataOnly512ProgrammingCommand()
      9. 3.2.9  Fapi_issueEccOnly64ProgrammingCommand()
      10. 3.2.10 Fapi_issueAsyncCommand()
      11. 3.2.11 Fapi_checkFsmForReady()
      12. 3.2.12 Fapi_getFsmStatus()
    3. 3.3 Read Functions
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
      3. 3.3.3 Fapi_doVerifyByByte()
    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_getUserConfiguration()
      5. 3.5.5 Fapi_setFlashCPUConfiguration()
      6. 3.5.6 Fapi_issueProgBankMode()
  7. 4SECCFG and BANKMGMT Programming Using the Flash API
    1. 4.1 BANKMGMT Programming
    2. 4.2 SECCFG Programming
  8. 5Allowed Programming Ranges for All Modes
  9. 6Recommended FSM Flows
    1. 6.1 New Devices From Factory
    2. 6.2 Recommended Erase Flow
    3. 6.3 Recommended Bank Erase Flow
    4. 6.4 Recommended Program Flow
  10. 7References
  11.   A Flash State Machine Commands
  12.   B Typedefs, Defines, Enumerations and Structure
    1.     B.1 Type Definitions
    2.     B.2 Defines
    3.     B.3 Enumerations
      1.      B.3.1 Fapi_FlashProgrammingCommandsType
      2.      B.3.2 Fapi_FlashBankType
      3.      B.3.3 Fapi_FlashStateCommandsType
      4.      B.3.4 Fapi_StatusType
      5.      B.3.5 Fapi_ApiProductionStatusType
      6.      B.3.6 Fapi_BankID
      7.      B.3.7 Fapi_FLCID
      8.      B.3.8 Fapi_BankMode
      9.      B.3.9 Fapi_CPU1BankSwap
      10.      B.3.10 Fapi_CPU3BankSwap
      11.      B.3.11 Fapi_FOTAStatus
      12.      B.3.12 Fapi_SECVALID
      13.      B.3.13 Fapi_BankMgmtAddress
    4.     B.4 Structures
      1.      B.4.1 Fapi_FlashStatusWordType
      2.      B.4.2 Fapi_LibraryInfoType
  13.   Revision History

Fapi_doBlankCheck()

Verifies region specified is erased value

Synopsis

Fapi_StatusType Fapi_doBlankCheck( 
                        uint32 *pu32StartAddress, 
                        uint32 u32Length,
                        Fapi_FlashStatusWordType *poFlashStatusWord,
                        uint8 u8Iterator,
                        uint32 u32UserFlashConfig
                                )

Parameters

pu32StartAddress [in] Start address for region to blank check
u32Length [in] Length of region in 32-bit words to blank check
poFlashStatusWord [in/out] Returns the status of the operation if result is not Fapi_Status_Success
->au32StatusWord[0] Address of first non-blank location
->au32StatusWord[1] Data read at first non-blank location
->au32StatusWord[2] Value of compare data (always 0xFFFFFFFF)
->au32StatusWord[3] N/A
u8Iterator [in] Iterator for program and erase operations on interleaved banks.
0: Data Flash/non-interleaved
1: B0 or B2 (dependent on provided address)
2: B1 or B3 (dependent on provided address)
u32UserFlashConfig [in] User flash configuration bitfield

Description

This function checks if the flash is blank (erased state) starting at the specified address for the length of 32-bit words specified. If a non-blank location is found, corresponding address and data are returned in the poFlashStatusWord parameter. When operating on interleaved banks, this function must be called twice (once with each iterator value, the start address stays the same).

Users cannot perform blank check operations when in SSUMODE2 and SSUMODE3. If a user wants to perform a blank check operation in SSUMODE2 or SSUMODE3, the user can provide the necessary read APR permissions. Refer to the F29H85x and F29P58x Real-Time Microcontrollers Technical Reference Manual for details on SSU configuration.

Note that Flash state machine also internally performs a verify operation after an erase/program pulse to validate the success of the operation. Successive program/program verify loops (or erase/erase verify loops) using the provided functions are done as needed to verify proper erase/programming. If the flash Wrapper state machines fail to completely program or erase all target bits in the flash within the number of program/erase pulses configured in the maximum pulse count setting, the FAILVERIFY bit is set in the STATCMD register.

Restrictions

None

Return Value

  • Fapi_Status_Success (success) - specified Flash locations are found to be in erased state
  • Fapi_Error_Fail (failure: region specified is not blank)
  • Fapi_Error_InvalidAddress (failure: User provided an invalid address. For the valid address range), see the F29H85x and F29P58x Real-Time Microcontrollers Data Sheet.