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

配置扇区的写入(编程)/擦除保护。

概要

Fapi_StatusType Fapi_setupBankSectorEnable(
                    uint32 WEPROT_register, 
                    uint32 oSectorMask
                                          )

参数

pu32StartAddress [in]

用于写/擦除保护配置的寄存器地址。

对前 32 个 (0-31) 扇区使用 FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTA

对其余的主阵列 (32-127) 扇区使用 FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTB

对 USER OTP 使用 FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROT_UO

OSectorMask [in]32 位掩码,指示擦除和编程操作中要屏蔽的扇区。

说明

在此器件上,默认情况下,所有闪存主阵列扇区和 USER OTP 均受到保护,无法对其执行擦除和编程操作。用户应用程序必须禁用想要对其执行擦除和/或编程操作的扇区的保护。该函数可用于启用/禁用保护。应在每次擦除和编程命令之前调用该函数,如 C2000Ware 中提供的闪存 API 使用示例所示。

该函数的第一个输入参数可以是以下三个寄存器中任何一个的地址:CMDWEPROTA、CMDWEPROTB、CMDWEPROT_UO

CMDWEPROTA 寄存器用于配置前 32 个扇区(0 至 31)的保护。此寄存器中的每个位对应每个扇区 - 例如:此寄存器的位 0 用于配置扇区 0 的保护,该寄存器的位 31 用于配置扇区 31 的保护。用户提供的 32 位扇区掩码(传递给该函数的第二个参数)指示用户想要屏蔽擦除和编程操作的扇区,即不会被擦除和编程的扇区。如果掩码中的某个位为 1,则不会擦除/编程该特定扇区。

CMDWEPROTB 寄存器用于配置对主阵列闪存存储体中 32 - 127 个扇区的保护。但请注意,此寄存器中的每个位用于一起配置对 8 个扇区的保护。这意味着,位 0 用于一起配置对所有扇区 32 至 39 的保护,位 1 用于一起配置对所有扇区 40 至 47 的保护,依此类推。用户提供的 32 位扇区掩码(传递给该函数的第二个参数)指示用户想要屏蔽擦除和编程操作的扇区,即不会被擦除和编程的扇区。如果掩码中的某个位为 1,则不会擦除/编程该组特定扇区。如果掩码中的某个位为 0,则会擦除/编程该组特定扇区。

CMDWEPROT_UO 寄存器用于配置 USER OTP 保护。此寄存器中的位 0 用于配置 USER OTP 保护。这意味着,如果位 0 配置为 1,则 USER OTP 不会被擦除/编程。其他位可配置为 1。由于 USER OTP 不可擦除,因此 CMDWEPROT_UO 寄存器保护不适用于擦除操作。应该只针对所需的编程操作进行配置。

返回值

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

实现示例(请参阅 C2000Ware 中提供的闪存编程示例,对于 TMS320F28P55x,该示例位于“C2000Ware_.....\driverlib\f28p55x\examples\flash\flashapi_128bit_programming.c”。请参阅 C2000Ware 中提供的闪存编程示例,对于 TMS320F28P55x,该示例位于“C2000Ware_.....\driverlib\f28p55x\examples\flash\flashapi_512bit_programming.c”。)