ZHCUCQ7A January   2025  – July 2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 与 C28x 的区别
    2. 1.2 函数清单格式
  5. 2F29H85x 闪存 API 概述
    1. 2.1 简介
    2. 2.2 API 概述
    3. 2.3 使用 API
      1. 2.3.1 初始化流程
        1. 2.3.1.1 器件上电后
        2. 2.3.1.2 关于系统频率变化
      2. 2.3.2 使用 API 进行构建
        1. 2.3.2.1 目标库文件
        2. 2.3.2.2 分布文件
      3. 2.3.3 闪存 API 使用的关键事实
  6. 3API 函数
    1. 3.1 初始化函数
      1. 3.1.1 Fapi_initializeAPI()
    2. 3.2 闪存状态机函数
      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 读取函数
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
      3. 3.3.3 Fapi_doVerifyByByte()
    4. 3.4 信息函数
      1. 3.4.1 Fapi_getLibraryInfo()
    5. 3.5 实用功能
      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. 4使用闪存 API 对 SECCFG 和 BANKMGMT 编程
    1. 4.1 BANKMGMT 编程
    2. 4.2 SECCFG 编程
  8. 5所有模式允许的编程范围
  9. 6推荐的 FSM 流程
    1. 6.1 新出厂器件
    2. 6.2 推荐的擦除流程
    3. 6.3 推荐的存储组擦除流程
    4. 6.4 推荐的编程流程
  10. 7参考资料
  11.   A 闪存状态机命令
  12.   B typedef、定义、枚举和结构
    1.     B.1 类型定义
    2.     B.2 定义
    3.     B.3 枚举
      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 结构
      1.      B.4.1 Fapi_FlashStatusWordType
      2.      B.4.2 Fapi_LibraryInfoType
  13.   修订历史记录

Fapi_issueAsyncCommandWithAddress()

向闪存状态机发出擦除命令以及用户提供的扇区地址。

概要

Fapi_StatusType Fapi_issueAsyncCommandWithAddress(              
                               Fapi_FlashStateCommandsType oCommand, 
                               uint32_t *pu32StartAddress,
                               uint8_t  u8Iterator,
                               uint32_t u32UserFlashConfig
                                                 )

参数

oCommand [in] 向 FSM 发出的命令。使用 Fapi_EraseSector。
pu32StartAddress [in] 用于擦除操作的闪存扇区地址
u8Iterator [in] 用于对交错组执行编程和擦除操作的迭代器
0:数据闪存/非交错
1:B0 或 B2(取决于提供的地址)
2:B1 或 B3(取决于提供的地址)
uint32 u32UserFlashConfig [in] 用户闪存配置位域

说明

该函数针对用户提供的扇区地址向闪存状态机发出擦除命令。在交错组上操作时,必须调用此函数两次(每个迭代器值调用一次)以擦除两个底层存储体。在这两次调用期间,128 位对齐的起始地址保持不变。该函数不会等到擦除操作结束;它只是发出命令并返回。因此,当使用 Fapi_EraseSector 命令时,该函数始终返回成功状态。用户应用程序必须等待闪存包装程序完成擦除操作,然后才能返回到任何类型的闪存访问。Fapi_checkFsmForReady() 函数可用于监测已发出命令的状态。

注: 该函数在发出擦除命令后不检查 STATCMD。当 FSM 完成擦除操作时,用户应用程序必须检查 STATCMD 值。STATCMD 指示擦除操作期间是否有任何故障发生。用户应用程序可以使用 Fapi_getFsmStatus 函数来获取 STATCMD 值。用户应用程序还可以使用 Fapi_doBlankCheck() 函数来验证闪存是否被擦除。

返回值

  • Fapi_Status_Success(成功)
  • Fapi_Status_FsmBusy(FSM 处于繁忙状态)
  • Fapi_Error_InvalidBaseRegCntlAddress(失败:用户提供的闪存控制寄存器基地址与预期地址不符。)
  • Fapi_Error_FeatureNotAvailable(失败:用户请求的命令不受支持。)
  • Fapi_Error_FlashRegsNotWritable(失败:闪存寄存器写入失败。用户可确保使用正确的 CPU 执行 API。)
  • Fapi_Error_InvalidAddress(失败:用户提供的地址无效。有关有效地址范围的信息,请参阅 F29H85x 和 F29P58x 实时微控制器数据表。)

实现示例

(请参阅 F29H85x SDK 中提供的闪存编程示例“f29h85x-sdk > examples > driverlib > single_core > flash > flash_mode0_128_program”)