65 lines
2.5 KiB
C
65 lines
2.5 KiB
C
/*----------------------------------------------------------------------------
|
|
* 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 <stdint.h>
|
|
#include <stdbool.h>
|
|
#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
|