ZHCUBW3 April   2024

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 参考书籍
    2. 1.2 函数清单格式
  5. 2TMS320F28P65x 闪存 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 闪存封装器和闪存组设置
        3. 2.3.1.3 关于系统频率变化
      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_issueProgrammingCommandForEccAddresses()
      7. 3.2.7  Fapi_issueAutoEcc512ProgrammingCommand()
      8. 3.2.8  Fapi_issueDataAndEcc512ProgrammingCommand()
      9. 3.2.9  Fapi_issueDataOnly512ProgrammingCommand()
      10. 3.2.10 Fapi_issueEccOnly64ProgrammingCommand()
      11. 3.2.11 Fapi_issueAsyncCommand()
      12. 3.2.12 Fapi_checkFsmForReady()
      13. 3.2.13 Fapi_getFsmStatus()
    3. 3.3 读取函数
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
    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_remapEccAddress()
      5. 3.5.5 Fapi_calculateFletcherChecksum()
  7. 4推荐的 FSM 流程
    1. 4.1 新出厂器件
    2. 4.2 推荐的擦除流程
    3. 4.3 推荐的闪存组擦除流程
    4. 4.4 推荐的编程流程
  8.   A 闪存状态机命令
  9.   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
    4.     B.4 结构
      1.      B.4.1 Fapi_FlashStatusWordType
      2.      B.4.2 Fapi_LibraryInfoType
  10.   C 从 v3.00.01 到 v3.00.02 的变更摘要

Fapi_issueProgrammingCommandForEccAddresses()

将 ECC 地址重新映射到数据地址并调用 Fapi_issueProgrammingCommand()。

概要

Fapi_StatusType Fapi_issueProgrammingCommandForEccAddresses( 
                                           uint32 *pu32StartAddress, 
                                           uint16 *pu16EccBuffer, 
                                           uint16 u16EccBufferSizeInBytes 
                                                           )

参数

pu32StartAddress [in]闪存中 ECC 的起始地址,用于对 ECC 进行编程
pu16EccBuffer [in]指向 ECC 缓冲区地址的指针
u16EccBufferSizeInBytes [in]ECC 缓冲区中的字节数。如果字节数为 1,则对 LSB(针对低 64 位的 ECC)进行编程。无法使用该函数单独对 MSB 进行编程。如果字节数为 2,则将对 ECC 的 LSB 和 MSB 字节进行编程。

说明

该函数会将 ECC 存储空间中的地址重新映射到对应的数据地址空间,然后调用 Fapi_issueProgrammingCommand() 对提供的 ECC 数据进行编程。使用 Fapi_EccOnly 模式的 Fapi_issueProgrammingCommand() 的限制同样也适用于该函数。pu16EccBuffer 的 LSB 与主阵列的低 64 位相对应,pu16EccBuffer 的 MSB 与主阵列的高 64 位相对应。

注:

pu16EccBuffer 的长度不可超过 2。

注:

该函数在发出编程命令后不检查 STATCMD。当 FSM 完成编程操作时,用户应用程序必须检查 STATCMD 值。STATCMD 指示编程操作期间是否有任何故障发生。用户应用程序可以使用 Fapi_getFsmStatus 函数来获取 STATCMD 值。

注:

Fapi_EccOnly 模式不应该用于闪存组 0 DCSM OTP 空间。如果使用,将返回错误。对于 DCSM OTP 空间,应使用 Fapi_AutoEccGeneration 或 Fapi_DataAndEcc 编程模式。

返回值

  • Fapi_Status_Success(成功)

  • Fapi_Status_FsmBusy(FSM 处于繁忙状态)

  • Fapi_Error_InvalidBaseRegCntlAddress(失败:用户提供的闪存控制寄存器基地址与预期地址不匹配)

  • Fapi_Error_AsyncIncorrectEccBufferLength(失败:指定的数据缓冲区大小不正确)

  • Fapi_Error_FlashRegsNotWritable(失败:闪存寄存器写入失败。用户应确保 API 从与闪存操作的目标地址相同的区域执行,或者用户应在闪存操作之前解锁。)

  • Fapi_Error_InvalidAddress(失败:用户提供的地址无效。有关有效地址范围的信息,请参阅 TMS320F28P65x 微控制器数据手册。)