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

Returns the value of the STATCMD register for the corresponding FLC (FLC1 or FLC2) based on the address provided

Synopsis

Fapi_FlashStatusType Fapi_getFsmStatus(
                          uint32 u32StartAddress,
                          uint32 u32UserFlashConfig
                                      ) 

Parameters

u32StartAddress [in] 32-bit start address in Flash to program/erase/verify
u32UserFlashConfig [in] User flash configuration bitfield

Description

This function returns the value of the STATCMD register for the corresponding FLC (FLC1 or FLC2) based on the address provided. This register allows the user application to determine whether an erase or program operation is successfully completed or in progress or suspended or failed. Each flash controller (FLC1 and FLC2) has its own STATCMD register. The user application can check the value of the appropriate register to determine if there is any failure after each erase and program operation.

Return Value

Table 3-8 STATCMD Register
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
 
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FAILMISC FAILINVDATA FAILILLADDR FAILVERIFY FAILWEPROT CMDINPROGRESS CMDPASS CMDDONE
RO(1) - 0x0 RO - 0x0 RO - 0x0 RO - 0x0 RO - 0x0 RO - 0x0 RO - 0x0 RO - 0x0
RO – Read Only
Table 3-9 STATCMD Register Field Descriptions
Bit Name Description Reset value
12 FAILMISC Command failed due to error other than write/erase protect violation or verify error.
0: No Fail
1: Fail
0x0
8 FAILINVDATA Program command failed because an attempt was made to program a stored 0 value to a 1.
0: No Fail
1: Fail
0x0
6 FAILILLADDR Command failed due to the use of an illegal address.
0: No Fail
1: Fail
0x0
5 FAILVERIFY Command failed due to verify error.
0: No Fail
1: Fail
0x0
4 FAILWEPROT Command failed due to Write/Erase Protect Sector violation.
0: No Fail
1: Fail
0x0
2 CMDINPROGRESS Command in Progress
0: Command complete
1: Command is in progress
0x0
1 CMDPASS Command Pass - valid when CMD_DONE field is 1
0: Fail
1: Pass
0x0
0 CMDDONE Command Done
0: Command not Done
1: Command Done
0x0