FileSys.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*****************************************************************************
  2. FileSys.h
  3. *****************************************************************************/
  4. #ifndef _FILE_SYS_H
  5. #define _FILE_SYS_H
  6. /*****************************************************************************/
  7. #include <stm32f0xx.h>
  8. #define STORAGE_MARK 0x8abcdef8
  9. #define FILE_INDEX_ADDR 0x00000000 //4KB 000000~000FFF 保存文件索引信息
  10. #define FILE_DATA_ADDR 0x00001000 //~2MB 001000~1FFFFF 所有文件数据存储的首地址
  11. #define FILE_DATA_ADDR_END 0x001FFFFF
  12. #define FILE_COUNT_MAX 90 //文件最大个数 文件索引表所占空间:sizeof(SUT_FILE_INFO)*FILE_COUNT_MAX+8=44*90+8=3968B=3.9KB
  13. #define FILE_NAME_LEN_MAX 20 //文件名最长字节数 应预留结束符0 因此实际文件名长度应控制在FILE_NAME_LEN_MAX-1
  14. #define FILE_ALL_DATA_LEN_MAX (FILE_DATA_ADDR_END-FILE_DATA_ADDR+1) //文件数据最大长度
  15. typedef struct SUT_FILE_INFO
  16. {
  17. char FileName[FILE_NAME_LEN_MAX];
  18. char FileMD5[16];
  19. unsigned long FileLen;
  20. unsigned long FileAddr;
  21. }__attribute__((packed)) SUT_FILE_INFO;//20+16+4+4=44
  22. typedef struct SUT_FILE_LIST
  23. {
  24. unsigned long Mark;
  25. unsigned long FileCount;//文件个数
  26. SUT_FILE_INFO FileInfo[FILE_COUNT_MAX];//文件信息列表
  27. }__attribute__((packed)) SUT_FILE_LIST;
  28. extern SUT_FILE_LIST g_sutFilesList;
  29. int FileSysInit();
  30. void FileSysSaveIndex(void);
  31. void FileSysReadIndex(void);
  32. int FileCheckMD5(int FileIndex);
  33. /*****************************************************************************/
  34. #endif
  35. /*****************************************************************************/