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_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,则不会擦除/编程该特定扇区。如果掩码中的某个位为 0,则会擦除/编程该组特定扇区。

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

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

注:

每个闪存组没有单独的专用 CMDWEPROT_x 寄存器。因此,对于任何闪存组,应在每个闪存擦除和编程命令之前配置这些寄存器。

返回值

  • Fapi_Status_Success(成功)

实现示例

(请参阅 C2000Ware 中提供的闪存编程示例,该示例位于“C2000Ware_.....\driverlib\F28P65x\examples\....\flash\flashapi_128bit_programming\flashapi_cpu1_128bitprogramming.c”)