123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- /**
- * @file
- * @author chipsea
- * @brief Contains all functions support for spi driver
- * @version 0.1
- * @date 2020-11-30
- * @copyright Copyright (c) 2020, CHIPSEA Co., Ltd.
- * @note
- */
- /*******************************************************************************
- * @file fs.h
- * @brief Contains all functions support for spi driver
- * @version 0.0
- * @date 18. Oct. 2017
- * @author
- *
- *
- *******************************************************************************/
- #ifndef __FS_H__
- #define __FS_H__
- #include "types.h"
- /**************************************************************************************
- * @fn hal_fs_init
- *
- * @brief initialize fs.
- * if fs is new,use fs_start_address and sector_num to config fs.
- * if fs is not new,read fs every sector head data and check with fs_start_address and sector_num,
- * if same,the fs is valid,else is invalid.
- *
- * input parameters
- *
- * @param fs_start_address:
- * fs zone start address,4Kbyte align.
- *
- * sector_num:
- * fs zone sector number,one sector = 4Kbyte,its minimal size is 2.
- *
- * output parameters
- *
- * @param None.
- *
- * @return
- * ERR_NONE fs init success.
- * ERR_FS_UNINITIALIZED fs has not been inited.
- * ERR_INVALID_PARAM parameter error,check your parameter.
- * ERR_FS_CONTEXT fs has data but different with your parameter.
- * ERR_FS_WRITE_FAILED flash cannot write.
- * ERR_FS_RESERVED_ERROR reserved error.
- **************************************************************************************/
- int hal_fs_init(uint32_t fs_start_address,uint8_t sector_num);
- /**************************************************************************************
- * @fn hal_fs_item_read
- *
- * @brief read a file from fs.
- *
- * input parameters
- *
- * @param id:file id,it should be unique.
- *
- * buf:file buf to be read.
- *
- * buf_len:file buf len.
- *
- * len:*len is the file length after read from fs.
- *
- * output parameters
- *
- * @param None.
- *
- * @return
- * ERR_NONE file write success.
- * ERR_FS_IN_INT write later beyond int processing.
- * ERR_FS_UNINITIALIZED fs has not been inited.
- * ERR_FS_PARAMETER parameter error,check it.
- * ERR_FS_BUFFER_TOO_SMALL buf is too small.
- * ERR_FS_NOT_FIND_ID there is no this file in fs.
- **************************************************************************************/
- int hal_fs_item_read(uint16_t id,uint8_t* buf,uint16_t buf_len,uint16_t* len);
- /**************************************************************************************
- * @fn hal_fs_item_write
- *
- * @brief write a file to fs.
- *
- * input parameters
- *
- * @param id:file id,it should be unique.
- *
- * buf:file buf.
- *
- * len:file length.
- *
- * output parameters
- *
- * @param None.
- *
- * @return
- * ERR_NONE file write success
- * ERR_FS_IN_INT write later beyond int processing
- * ERR_FS_UNINITIALIZED fs has not been inited
- * ERR_FS_PARAMETER parameter error,check it
- * ERR_FS_NOT_ENOUGH_SIZE there is not enouth size to write this file
- * ERR_FATAL there is a same id file,when delete it,occur a error
- **************************************************************************************/
- int hal_fs_item_write(uint16_t id,uint8_t* buf,uint16_t len);
- /**************************************************************************************
- * @fn hal_fs_get_free_size
- *
- * @brief get fs free size.
- * just file data not include file head.
- * for example,16bytes=4byte+12byte,free size is 12byte.
- *
- * input parameters
- *
- * @param None.
- * output parameters
- *
- * @param None.
- *
- * @return
- * free size
- **************************************************************************************/
- uint32_t hal_fs_get_free_size(void);
- /**************************************************************************************
- * @fn hal_fs_get_garbage_size
- *
- * @brief get fs garbage size.
- * some deleted files is in garbage,its size is garbage sise.
- * only after garbage collect the garbage will be released to free.
- * just file data not include file head.
- * for example,16bytes=4byte+12byte,garbage size is 12byte.
- *
- * input parameters
- *
- * @param None.
- * output parameters
- *
- * @param garbage_file_num:deleted file number
- *
- * @return
- * garbage size
- **************************************************************************************/
- int hal_fs_get_garbage_size(uint32_t* garbage_file_num);
- /**************************************************************************************
- * @fn hal_fs_item_del
- *
- * @brief delete a file from fs.
- *
- * input parameters
- *
- * @param id:file id,it should be unique.
- * output parameters
- *
- * @param None.
- *
- * @return
- * ERR_NONE file delete success
- * ERR_FS_IN_INT delete later beyond int processing
- * ERR_FS_UNINITIALIZED fs has not been inited
- * ERR_FS_NOT_FIND_ID not find this file in fs
- **************************************************************************************/
- int hal_fs_item_del(uint16_t id);
- /**************************************************************************************
- * @fn hal_fs_garbage_collect
- *
- * @brief release all deleted file zone to free
- *
- * input parameters
- *
- * @param None.
- * output parameters
- *
- * @param None.
- *
- * @return
- * ERR_NONE collect success
- * ERR_FS_IN_INT delete later beyond int processing
- * ERR_FS_UNINITIALIZED fs has not been inited
- * ERR_FS_WRITE_FAILED flash cannot write.
- * ERR_FS_UNINITIALIZED fs has not been inited.
- * ERR_FS_CONTEXT fs has data but different with your parameter.
- * ERR_FS_RESERVED_ERROR reserved error.
- **************************************************************************************/
- int hal_fs_garbage_collect(void);
- /**************************************************************************************
- * @fn hal_fs_format
- *
- * @brief format fs.all fs data will be clean.
- *
- * input parameters
- *
- * @param fs_start_address:
- * fs zone start address,4Kbyte align.
- *
- * sector_num:
- * fs zone sector number,one sector = 4Kbyte,its minimal size is 3.
- *
- * output parameters
- *
- * @param None.
- *
- * @return
- * ERR_NONE fs format and init success.
- * ERR_FS_IN_INT delete later beyond int processing
- * ERR_FS_UNINITIALIZED fs has not been inited.
- * ERR_INVALID_PARAM parameter error,check your parameter.
- * ERR_FS_CONTEXT fs has data but different with your parameter.
- * ERR_FS_WRITE_FAILED flash cannot write.
- * ERR_FS_RESERVED_ERROR reserved error.
- **************************************************************************************/
- int hal_fs_format(uint32_t fs_start_address,uint8_t sector_num);
- /**************************************************************************************
- * @fn hal_fs_initialized
- *
- * @brief fs has been initialized or not.
- * if not,fs is disable,please use hal_fs_init to initialize it.
- *
- * input parameters
- *
- * @param none.
- *
- * output parameters
- *
- * @param None.
- *
- * @return
- * TRUE
- * FALSE
- **************************************************************************************/
- bool hal_fs_initialized(void);
- #endif
|