#ifndef _DRV_FLASH_ #define _DRV_FLASH_ #ifdef __cplusplus extern "C" { #endif #include "kit_core.h" typedef struct { uint32_t start_page; uint32_t page_cnt; }FlashItem; #define FLASH_STATIC_INIT(_name, _start_page, _page_cnt) \ FlashItem _name = \ { \ (_start_page), \ (_page_cnt), \ } KitResult flash_read_u16(FlashItem *item, uint32_t addr, uint16_t *data); KitResult flash_read_u32(FlashItem *item, uint32_t addr, uint32_t *data); KitResult flash_write_u32(FlashItem *item, uint32_t addr, uint32_t value); KitResult flash_write_buf(FlashItem *item, uint32_t addr, uint8_t *buff, uint32_t len); KitResult flash_series_erase_page(FlashItem *item, uint32_t addr, uint32_t cnt); uint32_t flash_get_page_size(FlashItem *item); void flashJump(uint32_t dest_addr, NoArgCall call); void flashJumpNew(uint32_t dest_addr, NoArgCall call); #ifdef __cplusplus } #endif #endif