STM32H750XB_RT-THREAD/26-27-LTDC—液晶显示/刷外部FLASH程序(如何恢复字库)/User/res_mgr/res_mgr.h

98 lines
3.5 KiB
C
Raw Permalink Normal View History

2025-07-21 06:34:29 +00:00
#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__*/