mcu_hi3321_watch/tjd/driver/nandflash/flash_api.h
2025-05-26 20:15:20 +08:00

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