PSOC™ C1 Emulated EEPROM Middleware Library
Data Structures

General Description

This section describes the data structures defined by the Emulated EEPROM.

Data Structures

struct  E_EEPROM_PSC1_BLOCK_t
 Data structure to configure the Data Block parameters. More...
 
struct  E_EEPROM_PSC1_BLOCK_HEADER_t
 Data structure to hold the header information about a particular user data block. More...
 
struct  E_EEPROM_PSC1_CACHE_STATUS_t
 Bit field data structure holds the overall information about a particular user data block. More...
 
struct  E_EEPROM_PSC1_CACHE_t
 Data structure to hold the information about the physical address and status of a user data block. More...
 
struct  E_EEPROM_PSC1_TRAVERSE_BLOCK_RESULT_t
 Data structure to hold the count of flash physical blocks and status of a user data block. More...
 
struct  E_EEPROM_PSC1_DATA_t
 Data structure to hold the complete state data information of Emulation APP (Run Time Handler) More...
 
struct  E_EEPROM_PSC1_t
 Data structure to configure the APP properties. More...
 

Typedefs

typedef E_EEPROM_PSC1_t * E_EEPROM_PSC1_HANDLE_PTR_t
 Defines a pointer to APP Handle.
 

Data Structure Documentation

◆ E_EEPROM_PSC1_BLOCK_t

struct E_EEPROM_PSC1_BLOCK_t
Data Fields
uint8_t block_number Logical block number (Block ID)
uint32_t size Size of the logical block.

◆ E_EEPROM_PSC1_BLOCK_HEADER_t

struct E_EEPROM_PSC1_BLOCK_HEADER_t
Data Fields
uint8_t block_number User data block number.
uint8_t status User data block status.

◆ E_EEPROM_PSC1_CACHE_STATUS_t

struct E_EEPROM_PSC1_CACHE_STATUS_t
Data Fields
uint32_t valid: 1 Indicates the data block stored in the flash is valid or invalid.
uint32_t consistent: 1 Indicates the data block stored in the flash is faulty or not.
uint32_t copied: 1 Indicates the data blocks are copied or not to free bank during GC.
uint32_t crc: 1 Indicates if the block is enabled with a valid 16 bit CRC.
uint32_t unused: 28 unused

◆ E_EEPROM_PSC1_CACHE_t

struct E_EEPROM_PSC1_CACHE_t
Data Fields
uint32_t address It has the actual physical address of the flash where the written data block starts.
E_EEPROM_PSC1_CACHE_STATUS_t status Status information of the written user data block (Valid/Consistent/CRC)

◆ E_EEPROM_PSC1_TRAVERSE_BLOCK_RESULT_t

struct E_EEPROM_PSC1_TRAVERSE_BLOCK_RESULT_t
Data Fields
uint32_t block_count Number of physical flash blocks required for a particular data block.
E_EEPROM_PSC1_CACHE_STATUS_t status status of the user data block

◆ E_EEPROM_PSC1_DATA_t

struct E_EEPROM_PSC1_DATA_t
Data Fields
E_EEPROM_PSC1_CACHE_t * block_info User data block information.
E_EEPROM_PSC1_TRAVERSE_BLOCK_RESULT_t block_result get previous data block read result information
uint32_t current_bank Stores the current Bank on which blocks write operation will be done.
uint32_t gc_dest_addr Destination address for copying data during GC.
uint32_t gc_src_addr Source address from which data needs to be copied during GC.
uint32_t curr_bank_end_addr Current bank end address.
uint32_t prev_bank_end_addr previous bank end address
uint32_t next_free_block_addr Stores the next available flash address for next block write.
uint32_t curr_bank_src_addr Used for cache update and later stores the current Bank base address.
uint32_t gc_block_counter Tracks number of flash blocks read/written during GC process.
uint32_t written_block_counter Keeps track of the number of flash blocks written for an user data block.
uint8_t read_write_buffer[E_EEPROM_PSC1_FLASH_BLOCK_SIZE] Internal buffer to load and store single block.
uint32_t crc_buffer Keeps track the CRC 16 bit CRC value.
uint8_t page_write_buffer[E_EEPROM_PSC1_FLASH_PAGE_SIZE] Internal buffer to load and store single page.
uint32_t user_write_bytes_count Keeps track of the number of bytes written.
uint32_t gc_state State variable to keep track of the current state of the garbage collection procedure.
uint32_t init_gc_state Stores the current state for initialization process.
uint32_t gc_log_block_count Tracks the number of logical blocks covered during GC process.
uint32_t cache_state Stores current state of the cache update process.
uint32_t updated_cache_index Keeps track of the current block for which cache update is ongoing.
uint32_t user_write_state Current status of the user write.
uint32_t read_start_address Current flash starting address to read the data.

◆ E_EEPROM_PSC1_t

struct E_EEPROM_PSC1_t
Data Fields
E_EEPROM_PSC1_BLOCK_t * block_config_ptr Pointer to user block configurations.
E_EEPROM_PSC1_DATA_t * data_ptr Pointer to the state variable data structure.
E_EEPROM_PSC1_STATUS_t state Current state of the APP instance.
const uint8_t block_count Number of configured user data blocks.
const uint8_t erase_all_auto_recovery Erase Complete emulation area and recover to default state.
const uint8_t data_block_crc Allow to calculate CRC for each data block on write.
const uint8_t garbage_collection Enables garbage collection when no space available for new write.