ZHDU167 August   2026 TMS320F28P551SG

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 参考资料
    2. 1.2 函数清单格式
  5. 2 TMS320F28P551x 闪存 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
                                          )

参数

表 3-3 Fapi_setupBankSectorEnable 参数
参数说明
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 个扇区的保护。但请注意,此寄存器中的每个位用于一起配置对八个扇区的保护。这意味着,位 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 中提供的闪存编程示例,对于 TMS320F28P551x,该示例位于“C2000Ware_.....\driverlib\f28p551x\examples\flash\flashapi_128bit_programming.c”。

请参阅提供的闪存编程示例,对于 TMS320F28P551x,该示例位于 C2000Ware_.....\driverlib\f28p551x\examples\flash\flashapi_512bit_programming.c