ZHCADD5B November   2023  – August 2025 F28377D-SEP , F29H850TU , F29H859TU-Q1 , 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. 软件说明
  8. 乒乓仿真
    1. 5.1 用户配置
      1. 5.1.1 EEPROM_PingPong_Config.h
      2. 5.1.2 F28P65x_EEPROM_PingPong.c
    2. 5.2 测试示例
  9. EEPROM 函数
    1. 6.1  EEPROM_Config_Check
    2. 6.2  Configure_Protection_Masks
    3. 6.3  EEPROM_Write
    4. 6.4  EEPROM_Read
    5. 6.5  EEPROM_Erase
      1. 6.5.1 Erase_Bank
    6. 6.6  EEPROM_GetValidBank
    7. 6.7  EEPROM_UpdateBankStatus
    8. 6.8  EEPROM_UpdatePageStatus
    9. 6.9  EEPROM_UpdatePageData
    10. 6.10 EEPROM_Get_64_Bit_Data_Address
    11. 6.11 EEPROM_Program_64_Bits
    12. 6.12 EEPROM_CheckStatus
    13. 6.13 ClearFSMStatus
  10. 单存储单元仿真
    1. 7.1 用户配置
      1. 7.1.1 EEPROM_Config.h
      2. 7.1.2 F28P65x_EEPROM.c
    2. 7.2 EEPROM 函数
      1. 7.2.1  EEPROM_Config_Check
      2. 7.2.2  Configure_Protection_Masks
      3. 7.2.3  EEPROM_Write
      4. 7.2.4  EEPROM_Read
      5. 7.2.5  EEPROM_Erase
      6. 7.2.6  EEPROM_GetValidBank
      7. 7.2.7  EEPROM_Get_64_Bit_Data_Address
      8. 7.2.8  EEPROM_UpdateBankStatus
      9. 7.2.9  EEPROM_UpdatePageStatus
      10. 7.2.10 EEPROM_UpdatePageData
      11. 7.2.11 EEPROM_Get_64_Bit_Data_Address
      12. 7.2.12 EEPROM_Program_64_Bits
      13. 7.2.13 EEPROM_CheckStatus
      14. 7.2.14 ClearFSMStatus
    3. 7.3 测试示例
  11. 应用集成
    1. 8.1 软件功能和流程
  12. 适配其他第 3 代 C2000 MCU
  13. 10闪存 API
    1. 10.1 闪存 API 检查清单
      1. 10.1.1 使用闪存 API 时的注意事项
  14. 11源文件清单
  15. 12排查
    1. 12.1 通用
  16. 13结语
  17. 14参考资料
  18. 15修订历史记录

EEPROM_Config.h

该头文件包含允许用户更改 EEPROM 配置各个方面的定义。这些方面包括:

  • 定义正在使用的器件型号。这允许在并非所有器件都通用的闪存组中进行 EEPROM 仿真

// Un-comment appropriate definition if one of the following variants is being used
#define F28P65xDKx 1
//#define F28P65xSKx 1
//#define F28P65xSHx 1
  • 在页面模式和 64 位模式之间选择

//#define _64_BIT_MODE 1
#define PAGE_MODE 1
  • 选择要用于仿真的闪存组。默认情况下,闪存 API 和程序从闪存组 0 中存储/运行,因此该闪存组无法用于 EEPROM 仿真。通常,闪存 API 和程序应该从与用于 EEPROM 仿真的闪存组不同的闪存组中存储/运行。

#define FLASH_BANK_SELECT FlashBank1StartAddress
  • 定义闪存扇区大小(单位为 16 位字)。这会因使用的器件而异,请参阅相应的数据表了解详细信息。

#define FLASH_SECTOR_SIZE F28P65x_FLASH_SECTOR_SIZE
  • 定义一个闪存组中有多少个闪存扇区。这会因使用的器件而异,请参阅相应的数据表了解详细信息。

#define NUM_FLASH_SECTORS F28P65x_NUM_FLASH_SECTORS
  • 选择要仿真的 EEPROM 组的数量。

#define NUM_EEPROM_BANKS 4
  • 选择每个 EEPROM 组中有多少个 EEPROM 页面

#define NUM_EEPROM_PAGES 3
  • 选择每个 EEPROM 页面中包含的数据大小(单位为 16 位字)。尽管可以指定任何大小,但该大小将调整为大于或等于指定大小的最接近的四的倍数。例如,每页 6 个 16 位字的指定大小将被编程为每页 8 个 16 位字,最后两个字被视为 0xFFFF。这是为了符合闪存要求(为每个 64 位对齐的闪存存储器地址进行 8 位 ECC 编程)。

#define DATA_SIZE 64