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

根据提供的数据按字节验证指定的区域

概要

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

参数

pu32StartAddress [in] 要验证区域的起始地址
u32Length [in] 要验证的区域长度
pu8CheckValueBuffer [in] 用于验证区域的缓冲区地址。数据缓冲区可以为 128 位对齐。
poFlashStatusWord [in/out] 如果结果不是 Fapi_Status_Success,则返回操作的状态
-> au32StatusWord[0] 第一个验证失败位置的地址
-> au32StatusWord[1]在首次验证失败位置处读取的数据
-> au32StatusWord[2] 比较数据的值
-> au32StatusWord[3] 不适用
u8Iterator [in] 用于对交错组执行编程和擦除操作的迭代器
0:数据闪存/非交错
1:B0 或 B2(取决于提供的地址)
2:B1 或 B3(取决于提供的地址)
u32UserFlashConfig [in] 用户闪存配置位域

说明

该函数在从指定地址开始的指定长度的区域内,根据提供的数据验证器件。如果位置比较失败,这些结果会在 poFlashStatusWord 参数中返回。在交错组上操作时,必须调用此函数两次(每个迭代器值调用一次,起始地址保持不变)。

用户无法在 SSUMODE2 和 SSUMODE3 下执行验证操作。如果用户希望在 SSUMODE2 或 SSUMODE3 下执行验证操作,则用户可以提供必要的读取 APR 权限。有关 SSU 配置的详细信息,请参阅 F29H85x 和 F29P58x 实时微控制器技术参考手册

另请注意,闪存状态机还会在擦除/编程脉冲后执行内部验证操作,以验证操作是否成功。根据需要,使用提供的函数完成连续编程/编程验证循环(或擦除/擦除验证循环),以便对擦除/编程进行验证。如果闪存包装程序状态机未能在最大脉冲计数设置中配置的编程/擦除脉冲数内完全编程或擦除闪存中的所有目标位,则将在 STATCMD 寄存器中设置 FAILVERIFY 位。

限制

返回值

  • Fapi_Status_Success(成功:指定的区域与提供的数据匹配)
  • Fapi_Error_Fail(失败:指定区域与提供的数据不匹配)
  • Fapi_Error_InvalidAddress(失败:用户提供的地址无效。有关有效地址范围的信息,请参阅 F29H85x 和 F29P58x 实时微控制器数据表