/*---------------------------------------------------------------------------- * Copyright (c) Fenda Technologies Co., Ltd. 2020. All rights reserved. * * Description: flash flash_api.h * * Author: saimen * * Create: 2020-09-25 *--------------------------------------------------------------------------*/ #ifndef FLASH_API_H #define FLASH_API_H #include #include #ifdef __cplusplus extern "C" { #endif enum { FLASH_TYPE_NULL, FLASH_TYPE_NOR, FLASH_TYPE_NAND, FLASH_TYPE_EMMC, }; //***************************************************************************** // // External function definitions. // //***************************************************************************** extern void flash_api_create_lock(void); extern uint32_t flash_api_get_status(void); extern uint32_t flash_api_get_type(void); extern uint32_t flash_api_get_chip_id(void); extern uint32_t flash_api_get_expect_id(void); extern uint32_t flash_api_get_total_size(void); extern uint32_t flash_api_get_read_unit_size(void); extern uint32_t flash_api_get_write_unit_size(void); extern uint32_t flash_api_get_erase_unit_size(void); extern uint32_t flash_api_get_spare_unit_size(void); extern uint32_t flash_api_get_fs_memory_base(void); extern uint32_t flash_api_get_fs_memory_size(void); extern int flash_api_init(void); extern int flash_api_deinit(void); extern int flash_api_open(void); extern int flash_api_close(void); extern int flash_api_enter_low_power(void); extern int flash_api_exit_low_power(void); extern int flash_api_erase_chip(void); extern int flash_api_erase(uint32_t ui32_addr); extern int flash_api_read_ex(uint32_t ui32_addr, void *p_data, uint32_t ui32_length); extern int flash_api_read(uint32_t ui32_addr, void *p_data, uint32_t ui32_length); extern int flash_api_write(uint32_t ui32_addr, void *p_data, uint32_t ui32_length); //api lfs extern int flash_api_lfs_erase(void *c, uint32_t block); extern int flash_api_lfs_read(void *c, uint32_t block, uint32_t offset, void *buffer, uint32_t size); extern int flash_api_lfs_write(void *c, uint32_t block, uint32_t offset, void *buffer, uint32_t size); //api yaffs extern int flash_api_yaffs_switch_ecc(bool sw); extern int flash_api_yaffs_erase(uint32_t ui32_addr); extern int flash_api_yaffs_read(uint32_t page_offset, uint16_t addr_offset, uint8_t *buffer, uint16_t len); extern int flash_api_yaffs_write(uint32_t page_offset, uint16_t addr_offset, uint8_t *buffer, uint16_t len); #endif