98 lines
3.5 KiB
C
98 lines
3.5 KiB
C
|
|
|||
|
#ifndef __RES_MGR__
|
|||
|
#define __RES_MGR__
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C"{
|
|||
|
#endif
|
|||
|
|
|||
|
#include "stm32h7xx.h"
|
|||
|
#include "ff.h"
|
|||
|
|
|||
|
//SD<53><44><EFBFBD><EFBFBD>flash<73>ĸ<EFBFBD>Ŀ¼
|
|||
|
#define SD_ROOT "0:"
|
|||
|
#define FLASH_ROOT "1:"
|
|||
|
|
|||
|
/* <20><>Դ<EFBFBD><D4B4>SD<53><44><EFBFBD>е<EFBFBD>·<EFBFBD><C2B7> */
|
|||
|
#define RESOURCE_DIR "0:/srcdata"
|
|||
|
/* <20><>Դ<EFBFBD><D4B4>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>FLASH<53><48><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>Ŀ¼<C4BF><C2BC>ַ<EFBFBD><D6B7> */
|
|||
|
#define RESOURCE_BASE_ADDR (16*1024*1024)
|
|||
|
/* <20>洢<EFBFBD><E6B4A2>FLASH<53>е<EFBFBD><D0B5><EFBFBD>ԴĿ¼<C4BF><C2BC>С */
|
|||
|
#define CATALOG_SIZE (8*1024)
|
|||
|
|
|||
|
|
|||
|
/* <20><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD>¼<EFBFBD><C2BC>Ϣ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> */
|
|||
|
#define BURN_INFO_NAME "burn_info.txt"
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>Ϣ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>*/
|
|||
|
#define BURN_INFO_NAME_FULL (RESOURCE_DIR "/" BURN_INFO_NAME)
|
|||
|
/* <20><>¼<EFBFBD><C2BC><EFBFBD>Ե<EFBFBD><D4B5>ļ<EFBFBD><C4BC><EFBFBD> */
|
|||
|
#define IGNORE_NAME "ignore.txt"
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>*/
|
|||
|
#define IGNORE_NAME_FULL (RESOURCE_DIR "/" IGNORE_NAME)
|
|||
|
|
|||
|
/*=========================================================================================*/
|
|||
|
/* Ŀ¼<C4BF><C2BC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD> */
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
char name[40]; /* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
uint32_t size; /* <20><>Դ<EFBFBD>Ĵ<EFBFBD>С */
|
|||
|
uint32_t offset; /* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD>ַ<EFBFBD><D6B7>ƫ<EFBFBD><C6AB> */
|
|||
|
}CatalogTypeDef;
|
|||
|
|
|||
|
/*=========================================================================================*/
|
|||
|
|
|||
|
/*<2A><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>*/
|
|||
|
#define BURN_DEBUG_ON 1
|
|||
|
#define BURN_DEBUG_FUNC_ON 1
|
|||
|
#define BURN_DEBUG_ARRAY_ON 1
|
|||
|
|
|||
|
#define BURN_INFO(fmt,arg...) printf("<<-BURN-INFO->> "fmt"\n",##arg)
|
|||
|
#define BURN_ERROR(fmt,arg...) printf("<<-BURN-ERROR->> "fmt"\n",##arg)
|
|||
|
#define BURN_DEBUG(fmt,arg...) do{\
|
|||
|
if(BURN_DEBUG_ON)\
|
|||
|
printf("<<-BURN-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\
|
|||
|
}while(0)
|
|||
|
|
|||
|
#define BURN_DEBUG_ARRAY(array, num) do{\
|
|||
|
int32_t i;\
|
|||
|
uint8_t* a = array;\
|
|||
|
if(BURN_DEBUG_ARRAY_ON)\
|
|||
|
{\
|
|||
|
printf("<<-BURN-DEBUG-ARRAY->>\n");\
|
|||
|
for (i = 0; i < (num); i++)\
|
|||
|
{\
|
|||
|
printf("%02x ", (a)[i]);\
|
|||
|
if ((i + 1 ) %10 == 0)\
|
|||
|
{\
|
|||
|
printf("\n");\
|
|||
|
}\
|
|||
|
}\
|
|||
|
printf("\n");\
|
|||
|
}\
|
|||
|
}while(0)
|
|||
|
|
|||
|
#define BURN_DEBUG_FUNC() do{\
|
|||
|
if(BURN_DEBUG_FUNC_ON)\
|
|||
|
printf("<<-BURN-FUNC->> Func:%s@Line:%d\n",__func__,__LINE__);\
|
|||
|
}while(0)
|
|||
|
/*=========================================================================================*/
|
|||
|
|
|||
|
int GetResOffset(const char *res_name);
|
|||
|
FRESULT Make_Catalog (char* path, uint8_t clear) ;
|
|||
|
uint8_t Read_CatalogInfo( uint32_t file_index,
|
|||
|
CatalogTypeDef *dir,
|
|||
|
char *full_name);
|
|||
|
void Burn_Catalog(void);
|
|||
|
FRESULT Burn_Content(void);
|
|||
|
FRESULT Check_Resource(void);
|
|||
|
|
|||
|
|
|||
|
/*=========================================================================================*/
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#endif /*__RES_MGR__*/
|
|||
|
|