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

根据提供的地址返回相应 FLC(FLC1 或 FLC2)的 STATCMD 寄存器值

概要

Fapi_FlashStatusType Fapi_getFsmStatus(
                          uint32 u32StartAddress,
                          uint32 u32UserFlashConfig
                                      ) 

参数

u32StartAddress [in] 闪存中用于编程/擦除/验证的 32 位起始地址
u32UserFlashConfig [in] 用户闪存配置位域

说明

此函数根据提供的地址返回相应 FLC(FLC1 或 FLC2)的 STATCMD 寄存器值。该寄存器允许用户应用程序确定擦除或编程操作是成功完成、正在进行、暂停还是失败。每个闪存控制器(FLC1 和 FLC2)都有自己的 STATCMD 寄存器。用户应用程序可以检查相应寄存器的值,以确定每次擦除和编程操作后是否存在任何故障。

返回值

表 3-8 STATCMD 寄存器
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 - 只读
表 3-9 STATCMD 寄存器字段说明
名称 说明 复位值
12 FAILMISC 由于出现除写/擦除保护违例或验证错误以外的其他错误,命令失败。
0:未出现失败
1:失败
0x0
8 FAILINVDATA 因为尝试将存储的 0 值编程为 1,编程命令失败。
0:未出现失败
1:失败
0x0
6 FAILILLADDR 由于使用了非法地址,命令失败。
0:未出现失败
1:失败
0x0
5 FAILVERIFY 由于验证错误,命令失败。
0:未出现失败
1:失败
0x0
4 FAILWEPROT 由于写/擦除保护扇区违例,命令失败。
0:未出现失败
1:失败
0x0
2 CMDINPROGRESS 命令进行中
0:命令完成
1:命令进行中
0x0
1 CMDPASS 命令成功 - 当 CMD_DONE 字段为 1 时有效
0:失败
1:通过
0x0
0 CMDDONE 命令完成
0:命令未完成
1:命令完成
0x0