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

Configures Write(program)/Erase protection for the sectors.

Synopsis

Fapi_StatusType Fapi_setupBankSectorEnable( 
                              uint32_t *pu32StartAddress,
                              uint32_t u32UserFlashConfig,
                              uint32_t reg_address,
                              uint32_t value 
                                          )

Parameters

pu32StartAddress [in]

Flash memory address being written to

u32UserFlashConfig [in]

User flash configuration bitfield

reg_address [in]

Register address for Write/Erase protection configuration. Protection masks apply to both banks in an interleaved pair.

Use FLASH_NOWRAPPER_O_CMDWEPROTA for the first 32 (0-31) sectors.

Use FLASH_NOWRAPPER_O_CMDWEPROTB for the remaining main-array (32-128) sectors.

Use FLASH_NOWRAPPER_O_CMDWEPROTNM for BANKMGMT and SECCFG

value [in]

32-bit mask indicating which sectors to mask from the erase and program operations.

Description

On this device, all of the flash main and nonmain (BANKMGMT, and SECCFG) sectors are protected from the erase and program operations by default. User applications must disable the protection for the sectors on which they want to perform erase and/or program operations. This function can be used to enable/disable the protection. This function must be called before each erase and program command as shown in the flash API usage example provided in the F29H85x SDK.

First input parameter for this function can be the address of any of these three registers: FLASH_NOWRAPPER_O_CMDWEPROTA, FLASH_NOWRAPPER_O_CMDWEPROTB, FLASH_NOWRAPPER_O_CMDWEPROTNM

CMDWEPROTA register is used to configure the protection for the first 32 sectors (0 to 31) of a bank. Each bit in this register corresponds to one sector of an interleaved bank. Therefore, when programming, users must configure this register twice (once for each bank in the bank pair B0/2 or B1/3). For example: Bit 0 of this register is used to configure the protection for Sector 0 and Bit 31 of this register is used to configure the protection for Sector 31. A 32-bit user-provided sector mask (second parameter passed to this function) indicates which sectors the user wants to mask from the erase and program operations, that is, sectors that are not erased and programmed. If a bit in the mask is 1, that particular sector is not erased/programmed. If a bit in the mask is 0, that particular sector is erased or programmed.

CMDWEPROTB register is used to configure the protection for interleaved sectors 32 – 127 in the main-array flash bank. Each bit in this register is used to configure protection for eight sectors together. This means bit 0 is used to configure the protection for all of the sectors 32 to 39 together, bit 1 is used to configure the protection for all of the sectors 40 to 47 together, and so on. A 32-bit user-provided sector mask (second parameter passed to this function) indicates which sectors the user wants to mask from the erase and program operations, that is, sectors that are not erased and programmed. If a bit in the mask is 1, that particular set of sectors is not erased/programmed. If a bit in the mask is 0, that particular set of sectors is erased/programmed.

CMDWEPROT_NM register is used to configure the protection for the BANKMGMT and SECCFG regions. Only bit 0 in this register is used to configure the protection. If bit 0 is configured as 1, BANKMGMT and SECCFG are not programmed. If bit 0 is configured as 0, the region(s) is programmed. Other bits of this register can be configured as 1s. Both the BANKMGMT and SECCFG regions can both be erased and programmed.

Note: There are no separate dedicated CMDWEPROT_x registers for each bank. Hence, these registers must be configured before each and every flash erase and program command for any bank.

Return Value

  • Fapi_Status_Success (success)

Sample Implementation

(Refer to the flash programming example provided in the F29H85x SDK at “f29h85x-sdk > examples > driverlib > single_core > flash > flash_mode0_128_program”)