8 #ifndef _EEPROM_EMULATION_H
9 #define _EEPROM_EMULATION_H
20 #define E2P_DEBUG_LEVEL_TRACE (0)
21 #define E2P_DEBUG_LEVEL_INFO (1)
22 #define E2P_DEBUG_LEVEL_WARN (2)
23 #define E2P_DEBUG_LEVEL_ERROR (3)
25 #ifndef E2P_DEBUG_TRACE
26 # if E2P_DEBUG_LEVEL <= E2P_DEBUG_LEVEL_TRACE
27 # define E2P_TRACE(fmt, ...) printf("%s: %d: debug: "fmt"%s\n", __func__, __LINE__, __VA_ARGS__)
28 # define e2p_trace(...) E2P_TRACE(__VA_ARGS__, "")
30 # define e2p_trace(...)
34 #ifndef E2P_DEBUG_INFO
35 # if E2P_DEBUG_LEVEL <= E2P_DEBUG_LEVEL_INFO
36 # define E2P_INFO(fmt, ...) printf(""fmt"%s\n", __VA_ARGS__)
37 # define e2p_info(...) E2P_INFO(__VA_ARGS__, "")
39 # define e2p_info(...)
43 #ifndef E2P_DEBUG_WARN
44 # if E2P_DEBUG_LEVEL <= E2P_DEBUG_LEVEL_WARN
45 # define E2P_WARN(fmt, ...) printf(""fmt"%s\n", __VA_ARGS__)
46 # define e2p_warn(...) E2P_WARN(__VA_ARGS__, "")
48 # define e2p_warn(...)
52 #ifndef E2P_DEBUG_ERROR
53 # if E2P_DEBUG_LEVEL <= E2P_DEBUG_LEVEL_ERROR
54 # define E2P_ERR(fmt, ...) printf(""fmt"%s\n", __VA_ARGS__)
55 # define e2p_err(...) E2P_ERR(__VA_ARGS__, "")
61 #define E2P_MAX_VAR_CNT (100)
62 #ifdef EEPROM_MAX_VAR_CNT
63 #undef E2P_MAX_VAR_CNT
64 #define E2P_MAX_VAR_CNT EEPROM_MAX_VAR_CNT
113 uint32_t (*flash_read)(uint8_t *buf, uint32_t addr, uint32_t
size);
114 uint32_t (*flash_write)(uint8_t *buf, uint32_t addr, uint32_t
size);
115 void (*flash_erase)(uint32_t start_addr, uint32_t
size);
127 #define E2P_MAGIC_ID (0x48504D43)
129 #define E2P_VALID_STATE (0xFFFFFFF0)
130 #define E2P_EARSED_ID (0xFFFFFFFF)
131 #define E2P_EARSED_VAR (0xFF)
133 #define E2P_FLUSH_TRY (0)
134 #define E2P_FLUSH_BEGIN (1)
135 #define E2P_CRITICAL_ENTER() e2p_enter_critical()
136 #define E2P_CRITICAL_EXIT() e2p_exit_critical()
e2p_valid_state
Definition: eeprom_emulation.h:75
@ e2p_invalid
Definition: eeprom_emulation.h:76
@ e2p_valid
Definition: eeprom_emulation.h:77
@ e2p_earsed
Definition: eeprom_emulation.h:78
@ E2P_ERROR_BAD_ADDR
Definition: eeprom_emulation.h:87
@ E2P_ERROR_MUL_VAR
Definition: eeprom_emulation.h:88
@ E2P_STATUS_OK
Definition: eeprom_emulation.h:82
@ E2P_ERROR_INIT_ERR
Definition: eeprom_emulation.h:85
@ E2P_ERROR_NO_MEM
Definition: eeprom_emulation.h:84
@ E2P_ERROR
Definition: eeprom_emulation.h:83
@ E2P_ERROR_BAD_ID
Definition: eeprom_emulation.h:86
hpm_stat_t e2p_read(uint32_t block_id, uint16_t length, uint8_t *data)
eeprom emulation read
Definition: eeprom_emulation.c:466
void e2p_clear(void)
format whole area, 0xFF
Definition: eeprom_emulation.c:489
uint32_t e2p_generate_id(const char *name)
generate custom id
Definition: eeprom_emulation.c:499
hpm_stat_t e2p_flush(uint8_t flag)
eeprom emulation flush whole area, remove redundancy
Definition: eeprom_emulation.c:377
@ e2p_state_valid
Definition: eeprom_emulation.h:68
@ e2p_state_start
Definition: eeprom_emulation.h:71
@ e2p_state_write
Definition: eeprom_emulation.h:70
@ e2p_state_finish
Definition: eeprom_emulation.h:69
@ e2p_state_invalid
Definition: eeprom_emulation.h:72
void e2p_enter_critical(void)
Definition: hpm_nor_flash.c:13
void e2p_show_info(void)
show e2p instance info include config info and store info
Definition: eeprom_emulation.c:505
hpm_stat_t e2p_config(e2p_t *e2p)
eeprom emulation config
Definition: eeprom_emulation.c:316
void e2p_exit_critical(void)
Definition: hpm_nor_flash.c:18
hpm_stat_t e2p_write(uint32_t block_id, uint16_t length, uint8_t *data)
eeprom emulation write
Definition: eeprom_emulation.c:452
uint32_t hpm_stat_t
Definition: hpm_common.h:123
static void size
Definition: hpm_math.h:6899
Definition: eeprom_emulation.h:98
uint32_t block_id
Definition: eeprom_emulation.h:99
uint32_t crc
Definition: eeprom_emulation.h:103
uint16_t length
Definition: eeprom_emulation.h:101
uint16_t valid_state
Definition: eeprom_emulation.h:102
uint32_t data_addr
Definition: eeprom_emulation.h:100
Definition: eeprom_emulation.h:107
uint16_t erase_size
Definition: eeprom_emulation.h:110
uint32_t start_addr
Definition: eeprom_emulation.h:108
uint32_t sector_cnt
Definition: eeprom_emulation.h:109
uint32_t version
Definition: eeprom_emulation.h:111
Definition: eeprom_emulation.h:118
uint32_t remain_size
Definition: eeprom_emulation.h:124
uint32_t p_data
Definition: eeprom_emulation.h:122
uint32_t p_info
Definition: eeprom_emulation.h:123
nor_flash_config_t nor_config
Definition: eeprom_emulation.h:120
e2p_config_t config
Definition: eeprom_emulation.h:119
Definition: hpm_nor_flash.h:27