hello,
when i used FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_STATUS_QUERY, 0x00u, &status) to check the sectorEraseCount, but always equal 0, the test code is as the following,
typedef struct
{
uint8_t brownOutCode; /*!< Brown-out detection code */
uint16_t numOfRecordReqMaintain; /*!< Number of EEPROM quick write records requiring maintenance */
uint16_t sectorEraseCount; /*!< EEPROM sector erase count */
} flash_eeprom_status_t;
if (flashSSDConfig.EEESize == 0u)
{
ret = FLASH_DRV_DEFlashPartition(&flashSSDConfig, 0x02u, 0x08u, 0x0u, false, true);
DEV_ASSERT(STATUS_SUCCESS == ret);
/* Re-initialize the driver to update the new EEPROM configuration */
ret = FLASH_DRV_Init(&Flash_InitConfig0, &flashSSDConfig);
DEV_ASSERT(STATUS_SUCCESS == ret);
/* Make FlexRAM available for EEPROM */
ret = FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_ENABLE, 0x00u, NULL);
DEV_ASSERT(STATUS_SUCCESS == ret);
}
else
{
/* Make FlexRAM available for EEPROM, make sure that FlexNVM and FlexRAM
* are already partitioned successfully before */
ret = FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_ENABLE, 0x00u, NULL);
DEV_ASSERT(STATUS_SUCCESS == ret);
}
#define EEPROM_START_ADDR 0x14000000u
uint32_t InitData = 0xFFFFFFFF;
flash_eeprom_status_t status = {0};
ret = FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_STATUS_QUERY, 0x00u, &status);
DEV_ASSERT(STATUS_SUCCESS == ret);
ret = FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_ENABLE, 0x00u, NULL);
DEV_ASSERT(STATUS_SUCCESS == ret);
for(i=0; i<1024; i++)
{
FLASH_DRV_EEEWrite(&flashSSDConfig, EEPROM_START_ADDR + i*4, 4, (uint8_t *)&InitData);
}
FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_STATUS_QUERY, 0x00u, &status);
My question is why status.sectorEraseCount is always equal 0?
What's the use of this data(sectorEraseCount )?
when will this variable increase itself?
wish your help, thanks in advance!