STM32H750XB_RT-THREAD/26-27-LTDC—液晶显示/刷外部FLASH程序(如何恢复字库)/User/res_mgr/res_mgr.h
2025-07-21 14:34:29 +08:00

98 lines
3.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __RES_MGR__
#define __RES_MGR__
#ifdef __cplusplus
extern "C"{
#endif
#include "stm32h7xx.h"
#include "ff.h"
//SD卡及flash的根目录
#define SD_ROOT "0:"
#define FLASH_ROOT "1:"
/* 资源在SD卡中的路径 */
#define RESOURCE_DIR "0:/srcdata"
/* 资源烧录到的FLASH基地址目录地址 */
#define RESOURCE_BASE_ADDR (16*1024*1024)
/* 存储在FLASH中的资源目录大小 */
#define CATALOG_SIZE (8*1024)
/* 生成的烧录信息文件名 */
#define BURN_INFO_NAME "burn_info.txt"
/* 完整烧录信息文件名*/
#define BURN_INFO_NAME_FULL (RESOURCE_DIR "/" BURN_INFO_NAME)
/* 记录忽略的文件名 */
#define IGNORE_NAME "ignore.txt"
/* 完整忽略文件名*/
#define IGNORE_NAME_FULL (RESOURCE_DIR "/" IGNORE_NAME)
/*=========================================================================================*/
/* 目录信息类型 */
typedef struct
{
char name[40]; /* 资源的名字 */
uint32_t size; /* 资源的大小 */
uint32_t offset; /* 资源相对于基地址的偏移 */
}CatalogTypeDef;
/*=========================================================================================*/
/*信息输出*/
#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__*/