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_doVerifyByByte()

Verifies region specified against supplied data by byte

Synopsis

Fapi_StatusType Fapi_doVerifyByByte(
                             uint8_t *pu8StartAddress,
                             uint32_t u32Length,
                             uint8_t *pu8CheckValueBuffer,
                             Fapi_FlashStatusWordType *poFlashStatusWord,
                             uint8_t u8Iterator,
                             uint32_t  u32UserFlashConfig
                             );

Parameters

pu32StartAddress [in] start address for region to verify
u32Length [in] length of region in bytes to verify
pu8CheckValueBuffer [in] address of buffer to verify region against. Data buffer can be 128-bit aligned.
poFlashStatusWord [in/out] returns the status of the operation if result is not Fapi_Status_Success
->au32StatusWord[0] address of first verify failure location
->au32StatusWord[1] data read at first verify failure location
->au32StatusWord[2] value of compare data
->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 verifies the device against the supplied data starting at the specified address for the length of bytes specified. If a location fails to compare, these results 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 verification operations when in SSUMODE2 and SSUMODE3. If a user wants to perform a verify operation in SSUMODE2 or SSUMODE3, the user can provide the necessary read APR permissions. For details on SSU configuration, see the F29H85x and F29P58x Real-Time Microcontrollers Technical Reference Manual.

Please also 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: region specified matches supplied data)
  • Fapi_Error_Fail (failure: region specified does not match supplied data)
  • Fapi_Error_InvalidAddress (failure: User provided an invalid address. For the valid address range, see the F29H85x and F29P58x Real-Time Microcontrollers Data Sheet.