ZHCUAO0C November   2022  – November 2023 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1

 

  1.   1
  2.   商标
  3. 1引言
    1. 1.1 参考书籍
    2. 1.2 函数清单格式
  4. 2TMS320F28003x 闪存 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 FMC 和存储体设置
        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 使用的关键事实
  5. 3API 函数
    1. 3.1 初始化函数
      1. 3.1.1 Fapi_initializeAPI()
    2. 3.2 闪存状态机函数
      1. 3.2.1 Fapi_setActiveFlashBank()
      2. 3.2.2 Fapi_issueAsyncCommandWithAddress()
      3. 3.2.3 Fapi_issueBankEraseCommand()
      4. 3.2.4 Fapi_issueProgrammingCommand()
      5. 3.2.5 Fapi_issueProgrammingCommandForEccAddresses()
      6. 3.2.6 Fapi_issueFsmSuspendCommand()
      7. 3.2.7 Fapi_issueAsyncCommand()
      8. 3.2.8 Fapi_checkFsmForReady()
      9. 3.2.9 Fapi_getFsmStatus()
    3. 3.3 读取函数
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
      3. 3.3.3 Fapi_calculatePsa()
      4. 3.3.4 Fapi_doPsaVerify()
    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()
  6. 4推荐的 FSM 流程
    1. 4.1 新出厂器件
    2. 4.2 推荐的擦除流程
    3. 4.3 推荐的存储体擦除流程
    4. 4.4 推荐的编程流程
  7. 5与安全相关的软件应用程序使用假设
  8.   A 闪存状态机命令
    1.     A.1 闪存状态机命令
  9.   B 编译器版本和构建设置
  10.   C 目标库函数信息
    1.     C.1 TMS320F28003x 闪存 API 库
  11.   D typedef、定义、枚举和结构
    1.     D.1 类型定义
    2.     D.2 定义
    3.     D.3 枚举
      1.      D.3.1 Fapi_FlashProgrammingCommandsType
      2.      D.3.2 Fapi_FlashBankType
      3.      D.3.3 Fapi_FlashStateCommandsType
      4.      D.3.4 Fapi_FlashReadMarginModeType
      5.      D.3.5 Fapi_StatusType
      6.      D.3.6 Fapi_ApiProductionStatusType
    4.     D.4 结构
      1.      D.4.1 Fapi_FlashStatusWordType
      2.      D.4.2 Fapi_LibraryInfoType
  12.   E 并行签名分析 (PSA) 算法
    1.     E.1 函数详细信息
  13.   F ECC 计算算法
    1.     F.1 函数详细信息
  14.   G 勘误
  15.   修订历史记录

API 概述

表 2-1 初始化函数汇总
API 函数 说明
Fapi_initializeAPI() 为供首次使用或更改频率,对 API 进行初始化
表 2-2 闪存状态机 (FSM) 函数汇总
API 函数 说明
Fapi_setActiveFlashBank() 对闪存控制器 (FMC) 和闪存存储体进行初始化从而执行擦除或编程命令

Fapi_issueBankEraseCommand()

在应用扇区屏蔽后,针对给定的存储体地址向闪存状态机发出存储体擦除命令。

Fapi_issueAsyncCommandWithAddress() 针对给定地址向 FSM 发出擦除扇区命令
Fapi_issueProgrammingCommand() 设置编程所需的寄存器并向 FSM 发出命令
Fapi_issueProgrammingCommandForEccAddress() 将 ECC 地址重新映射到主数据空间,然后调用 Fapi_issueProgrammingCommand() 对 ECC 进行编程
Fapi_issueFsmSuspendCommand() 暂停 FSM 命令 Program Data 和 Erase Sector
Fapi_issueAsyncCommand() 向 FSM 发出命令(Clear Status、Program Resume、Erase Resume、Clear_More),用于进行无需地址的操作
Fapi_checkFsmForReady() 返回闪存状态机 (FSM) 是否处于就绪或繁忙状态
Fapi_getFsmStatus() 返回闪存控制器的 FMSTAT 状态寄存器值
表 2-3 读取函数汇总
API 函数 说明
Fapi_doBlankCheck() 根据擦除状态验证指定的闪存范围
Fapi_doVerify() 根据提供的值验证指定的闪存范围
Fapi_calculatePsa() 计算指定闪存范围的 PSA 值
Fapi_doPsaVerify() 根据提供的 PSA 值验证指定的闪存范围
注:

为了提升闪存 API 读取函数中的闪存读取性能,在读取函数中启用了闪存包装程序(闪存模块控制器 (FMC))的数据缓存。在启用数据缓存之前,读取函数会保存数据缓存以前的配置(由用户应用程序使用 DriverLib 中的闪存初始化例程设置)并在此类函数中的闪存读取完成后恢复相同的配置。

表 2-4 信息函数汇总
API 函数 说明
Fapi_getLibraryInfo() 返回特定于 API 库编译版本的信息
表 2-5 实用程序函数汇总
API 函数 说明
Fapi_flushPipeline() 刷新 FMC 中的数据缓存
Fapi_calculateEcc() 计算所提供地址和 64 位字的 ECC
Fapi_isAddressEcc() 确定地址是否在 ECC 范围内
Fapi_remapEccAddress() 将 ECC 地址重新映射到相应的主地址
Fapi_calculateFletcherChecksum() 函数计算指定内存范围的 Fletcher 校验和

请注意,TMS320F28003x 闪存 API 中删除了 Fapi_getDeviceInfo() 和 Fapi_getBankSectors(),因为用户可以从器件特定技术参考手册中提供的其他资源中获取该信息(例如,存储体数量、引脚数、扇区数等等)。

不再提供 Fapi_UserDefinedFunctions.c 文件,因为该文件中的函数现已合并到闪存 API 库中。有关在使用闪存 API 时维护看门狗功能的信息,请查看闪存 API 使用的关键事实