#ifndef BSP_FDB_H_ #define BSP_FDB_H_ #ifdef __cplusplus extern "C" { #endif #include "kit_macro.h" #include "drv_flash.h" typedef struct { uint8_t data_cnt; uint32_t area_size; uint32_t *data_addr; uint32_t main_area; uint32_t sub_area; uint32_t write_addr; }FdbItem; #define FDB_STATIC_INIT(_name, _data_cnt, _area_size, _main_area, _sub_area) \ uint32_t _name##_data_addr[_data_cnt]; \ FdbItem _name = \ { \ (_data_cnt), \ (_area_size), \ (_name##_data_addr), \ (_main_area), \ (_sub_area), \ } void bsp_fdb_init(FdbItem *item); uint32_t bsp_fdb_get_data_addr(FdbItem *item, uint8_t data_idx); uint16_t bsp_fdb_read_data(FdbItem *item, uint8_t data_idx, uint8_t *buf); bool bsp_fdb_write_data(FdbItem *item, uint8_t data_idx, uint8_t *buf, uint16_t len); uint16_t bsp_fdb_read_raw_data(FdbItem *item, uint8_t data_idx, uint8_t *buf); bool bsp_fdb_write_raw_data(FdbItem *item, uint8_t data_idx, uint8_t *buf, uint16_t len); #ifdef __cplusplus } #endif #endif