ZHCUBW5 April   2024

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 参考资料
    2. 1.2 函数清单格式
  5. 2TMS320F28P55x 闪存 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.2.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. 5与安全相关的软件应用程序使用假设
  9.   A 闪存状态机命令
  10.   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
  11.   参考资料

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_AsyncIncorrectEccBufferLength(失败:指定的数据缓冲区大小不正确)
  • Fapi_Error_FlashRegsNotWritable(失败:闪存寄存器写入失败。用户应确保 API 从与闪存操作的目标地址相同的区域执行,或者用户应在闪存操作之前解锁。)
Fapi_Error_InvalidAddress(失败:用户提供的地址无效。对于 TMS320F28P55x,有关有效地址范围,请参阅 TMS320F28P55x 实时微控制器数据手册