This commit is contained in:
andrea
2025-12-08 13:48:52 +01:00
parent 792e63b21c
commit 3db6a38a2b
59 changed files with 73522 additions and 48789 deletions

View File

@@ -24,12 +24,18 @@ extern "C" {
typedef enum
{
EE_OK = 0,
EE_ERROR,
EE_NOT_FOUND,
EE_NO_SPACE
EE_STATUS_OK = 0,
EE_STATUS_ERROR,
EE_STATUS_NOT_FOUND,
EE_STATUS_NO_SPACE
} EE_Status;
/* For compatibility with ST style uint16_t return codes */
#define EE_OK ((uint16_t)EE_STATUS_OK)
#define EE_ERROR ((uint16_t)EE_STATUS_ERROR)
#define EE_NOT_FOUND ((uint16_t)EE_STATUS_NOT_FOUND)
#define EE_NO_SPACE ((uint16_t)EE_STATUS_NO_SPACE)
/* Flash parameters for STM32F103C8T6 */
#define EE_FLASH_BASE_ADDR 0x08000000U
#define EE_PAGE_SIZE 0x400U /* 1 kB pages */
@@ -59,30 +65,27 @@ typedef enum
#define EE_NUM_VIRTUAL_ADDR 32U
#define EEW_ADDR(i) (uint16_t)(0x0001 + (i)) // i = 0..31
/* Virtual address table (defined in eeprom.c, can be customized) */
extern const uint16_t EE_VirtAddrs[EE_NUM_VIRTUAL_ADDR];
/* Public API */
EE_Status EE_Init(void);
EE_Status EE_ReadVariable(uint16_t VirtAddress, uint16_t *Data);
EE_Status EE_WriteVariable(uint16_t VirtAddress, uint16_t Data);
/* Public API now using uint16_t like ST examples */
uint16_t EE_Init(void);
uint16_t EE_ReadVariable(uint16_t VirtAddress, uint16_t *Data);
uint16_t EE_WriteVariable(uint16_t VirtAddress, uint16_t Data);
/* Pseudo-array accessor */
static inline EE_Status EEW_Read(uint8_t idx, uint16_t *value)
/* Pseudo-array accessor EEW[idx] */
static inline uint16_t EEW_Read(uint8_t idx, uint16_t *value)
{
return EE_ReadVariable(EEW_ADDR(idx), value);
}
static inline EE_Status EEW_Write(uint8_t idx, uint16_t value)
static inline uint16_t EEW_Write(uint8_t idx, uint16_t value)
{
return EE_WriteVariable(EEW_ADDR(idx), value);
}
#ifdef __cplusplus
}
#endif
#endif /* __EEPROM_H */