ZHCADD5A November   2023  – April 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
  5. EEPROM 与片上闪存的区别
  6. 概述
    1. 3.1 基本概念
    2. 3.2 单存储单元方法
    3. 3.3 乒乓方法
    4. 3.4 创建 EEPROM 节(页)和页标识
  7. 软件说明
    1. 4.1 软件功能和流程
  8. 乒乓仿真
    1. 5.1 用户配置
      1. 5.1.1 EEPROM_PingPong_Config.h
      2. 5.1.2 F28P65x_EEPROM_PingPong.c
    2. 5.2 EEPROM 函数
      1. 5.2.1  EEPROM_Config_Check
      2. 5.2.2  Configure_Protection_Masks
      3. 5.2.3  EEPROM_Write
      4. 5.2.4  EEPROM_Read
      5. 5.2.5  EEPROM_Erase
        1. 5.2.5.1 Erase_Bank
      6. 5.2.6  EEPROM_GetValidBank
      7. 5.2.7  EEPROM_UpdateBankStatus
      8. 5.2.8  EEPROM_UpdatePageStatus
      9. 5.2.9  EEPROM_UpdatePageData
      10. 5.2.10 EEPROM_Get_64_Bit_Data_Address
      11. 5.2.11 EEPROM_Program_64_Bits
      12. 5.2.12 EEPROM_CheckStatus
      13. 5.2.13 ClearFSMStatus
    3. 5.3 测试示例
  9. 单存储单元仿真
    1. 6.1 用户配置
      1. 6.1.1 EEPROM_Config.h
      2. 6.1.2 F28P65x_EEPROM.c
    2. 6.2 EEPROM 函数
      1. 6.2.1  EEPROM_Config_Check
      2. 6.2.2  Configure_Protection_Masks
      3. 6.2.3  EEPROM_Write
      4. 6.2.4  EEPROM_Read
      5. 6.2.5  EEPROM_Erase
      6. 6.2.6  EEPROM_GetValidBank
      7. 6.2.7  EEPROM_Get_64_Bit_Data_Address
      8. 6.2.8  EEPROM_UpdateBankStatus
      9. 6.2.9  EEPROM_UpdatePageStatus
      10. 6.2.10 EEPROM_UpdatePageData
      11. 6.2.11 EEPROM_Get_64_Bit_Data_Address
      12. 6.2.12 EEPROM_Program_64_Bits
      13. 6.2.13 EEPROM_CheckStatus
      14. 6.2.14 ClearFSMStatus
    3. 6.3 测试示例
  10. 应用集成
  11. 适配其他第 3 代 C2000 MCU
  12. 闪存 API
    1. 9.1 闪存 API 检查清单
      1. 9.1.1 使用闪存 API 时的注意事项
  13. 10源文件清单
  14. 11故障排除
    1. 11.1 常见问题
  15. 12结语
  16. 13参考资料
  17. 14修订历史记录

创建 EEPROM 节(页)和页标识

为了支持具有不同数据大小(64 位除外)的 EEPROM 仿真,选择用于仿真的闪存扇区被分为称为 EEPROM 组(不要与闪存组相混淆)和页面的格式。首先,闪存扇区(或选定的闪存扇区集)被分为 EEPROM 组。每个 EEPROM 组又被进一步分成页面。组分区展示了该分区。EEPROM 组和页面的分区对于单存储单元和乒乓仿真是相同的。

使用该格式,应用能够:

  • 从在之前保存期间写入的页面中读回数据
  • 将最新数据写入新页面
  • 在应用需要时,从之前存储的任何数据读取
GUID-20231004-SS0I-JTKD-2S3T-DKFJDSLT4WZ2-low.png图 3-3 组分区

每个 EEPROM 组的前 8 个 16 位字保留用于存储 EEPROM 组状态信息,每个页面的前 8 个字保留用于存储页面状态信息。每次向页写入一组新的数据时,都会修改最后一页和下一页的状态位置。使用新 EEPROM 组时,最后一个和当前 EEPROM 组的组状态将被更新。EEPROM 组和页面状态字以相同的方式区分当前 EEPROM 组/页面和已使用的 EEPROM 组/页面。要将 EEPROM 组或页面标记为当前组或页面,可以向前 64 位写入适当的状态代码。要将 EEPROM 组或页面标记为已满组或页面,可以向后 64 位写入适当的状态代码。有关状态代码的更多详细信息,请参阅 EEPROM_GetValidBank

页面布局中所示,所有页面都包含八字页面状态和可配置的数据空间量。第 0 页略有不同,因为该页面还包含 EEPROM 组状态。仅显示了第 0 页和第 1 页,但应注意第 2 页至第 (N-1) 页与第 1 页相同。

GUID-20231004-SS0I-MMG4-PHZM-BM0NHPRC0DGB-low.png图 3-4 页布局