⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flashtool_handle.h

📁 MTK bin下载工具全部源代码(c++)
💻 H
📖 第 1 页 / 共 2 页
字号:
#define FTHND_RES_DOWNLOAD_SELECT_INCOMPLETE		0x001500
#define FTHND_RES_INCORRECT_FORMAT					0x001600
#define FTHND_JUMPTABLE_INCONSISTENT_WITH_SCAT		0x001700
#define FTHND_JUMPTABLE_INCORRECT_FORMAT			0x001800
#define FTHND_SCAT_ABSOLUTE_REGION_ADDR_CHANGED		0x001900
#define FTHND_UNKNOWN_BBCHIP_TYPE					0x001A00
#define FTHND_UNKNOWN_CUSTOM_NAME					0x001B00
#define FTHND_INPUT_BUFFER_TOO_SMALL				0x001C00
#define FTHND_NO_MATCHED_DA_FOUND					0x001D00
#define FTHND_RES_BASE_ADDR_NOT_MATCH				0x001E00
#define FTHND_BLOADER_INVALID						0x001F00
#define FTHND_DA_INVALID							0x002000
#define FTHND_FILE_NOT_FOUND						0x002100
#define FTHND_BLOADER_INFO_VER_UNKNOWN				0x002200
#define FTHND_SAME_SW_VERSION						0x002300
#define FTHND_NO_MATCHED_DL_FOUND					0x002400
#define FTHND_HANDLE_IN_LIST						0x002500
#define FTHND_DL_BL_IS_EMPTY						0x002600


//------------------------------------------------------------------------------
// BL_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------

typedef struct {
	_BOOL				m_valid;	// _TRUE -> dram setting is valid 
	unsigned int		m_emi_gen_a;
	unsigned int		m_emi_gen_b;
	unsigned int		m_emi_gen_c;
	unsigned int		m_emi_dram_con_i_mode;
	unsigned int		m_emi_dram_con_i_ext_mode;
	unsigned int		m_emi_dram_con_k;
	unsigned int		m_emi_dram_con_l;
} BL_DRAM_SETTING;

typedef struct {
	char				m_version[5];
	char				m_filepath[512];
	unsigned int		m_filesize;
	unsigned int		m_start_addr;
	unsigned int		m_chksum_seed;
	unsigned int		m_chksum;
	BL_DRAM_SETTING		m_dram_cfg;
	_BOOL				m_enable;	// _FALSE -> disbale 
									// _TRUE  -> enable  
} BL_INFO;

struct BL_HANDLE;
typedef struct BL_HANDLE *	BL_HANDLE_T;


//------------------------------------------------------------------------------
// DL_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------
typedef enum {
	ABSOLUTE_ADDR = 0,
	OFFSET_VALUE
} REGION_ADDR_TYPE;

typedef enum {
	NORMAL_ROM = 0x01,
	RESOURCE_BIN = 0x02,
	JUMPTABLE_BIN = 0x04,
	ENFB_BIN = 0x08
} ROM_TYPE;

typedef struct {
	char 				name[64];
	unsigned int 		region_addr;
	REGION_ADDR_TYPE	addr_type;	// ABSOLUTE_ADDR -> region_addr is absolute address 
									// OFFSET_VALUE  -> region_addr is offset value 
	unsigned int 		begin_addr;
	unsigned int 		end_addr;
	char 				filepath[256];
	unsigned int 		filesize;
	unsigned short 		index;

	ROM_TYPE			rom_type;

	_BOOL				enable;	// _FALSE -> disbale 
								// _TRUE  -> enable  
}ROM_INFO;

struct DL_HANDLE;
typedef struct DL_HANDLE *	DL_HANDLE_T;
extern int __stdcall DL_Create(DL_HANDLE_T  *p_dl_handle);
extern int __stdcall DL_Destroy(DL_HANDLE_T  *p_dl_handle);
extern int __stdcall DL_LoadScatter(DL_HANDLE_T  dl_handle, const char *scatter_filepath);
extern int __stdcall DL_SetPacketLength(DL_HANDLE_T  dl_handle, unsigned short length);
extern int __stdcall DL_GetCount(DL_HANDLE_T  dl_handle, unsigned short *p_rom_count);
extern int __stdcall DL_IsReady(DL_HANDLE_T  dl_handle, ROM_INFO  *p_rom_info, _BOOL  check_if_updated);
extern int __stdcall DL_GetJumpTableInfo(DL_HANDLE_T  dl_handle, MTK_JumpTable  *p_jmptbl_info);
extern int __stdcall DL_ResourceProjectIdComparisonSetting(DL_HANDLE_T  dl_handle, _BOOL  enable);
extern int __stdcall DL_AutoLoadByScatRegionName(DL_HANDLE_T  dl_handle, const char *full_filepath, unsigned char allow_rom_type);
extern int __stdcall DL_GetBBChipType(DL_HANDLE_T  dl_handle, BBCHIP_TYPE  *p_bbchip);
extern int __stdcall DL_GetBBChipName(DL_HANDLE_T  dl_handle, char *buf, unsigned int buf_len);
extern int __stdcall DL_GetCustomName(DL_HANDLE_T  dl_handle, char *buf, unsigned int buf_len);
extern int __stdcall DL_Rom_GetInfo(DL_HANDLE_T  dl_handle, unsigned short index, ROM_INFO  *p_rom_info);
extern int __stdcall DL_Rom_GetInfoAll(DL_HANDLE_T  dl_handle, ROM_INFO  *p_rom_info, unsigned short max_rom_count);
extern int __stdcall DL_Rom_GetResInfo(DL_HANDLE_T  dl_handle, unsigned short index, MTK_Resource  *p_res_info);
extern int __stdcall DL_Rom_SetFilepath(DL_HANDLE_T  dl_handle, unsigned short index, const char *rom_filepath);
extern int __stdcall DL_Rom_LoadByFilepath(DL_HANDLE_T  dl_handle, unsigned short index, const char *rom_filepath);
extern int __stdcall DL_Rom_Load(DL_HANDLE_T  dl_handle, unsigned short index);
extern int __stdcall DL_Rom_Unload(DL_HANDLE_T  dl_handle, unsigned short index);
extern int __stdcall DL_Rom_LoadAll(DL_HANDLE_T  dl_handle, ROM_INFO  *p_rom_info);
extern int __stdcall DL_Rom_UnloadAll(DL_HANDLE_T  dl_handle);
extern int __stdcall DL_Rom_SetEnableAttr(DL_HANDLE_T  dl_handle, unsigned short index, _BOOL  attr);
extern int __stdcall DL_IsNFB(DL_HANDLE_T  dl_handle, _BOOL  *p_is_nfb);

struct DL_HANDLE_LIST;
typedef struct DL_HANDLE_LIST *	DL_HANDLE_LIST_T;
extern int __stdcall DL_CreateList(DL_HANDLE_LIST_T * dl_handle_list);
extern int __stdcall DL_DestroyList(DL_HANDLE_LIST_T * dl_handle_list);
extern int __stdcall DL_AddHandleToList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);
extern int __stdcall DL_DeleteHandleFromList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);
extern int __stdcall DL_GetHandleNumber(DL_HANDLE_LIST_T dl_handle_list, int * HandleNumber);
extern int __stdcall DL_CheckHandleInList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);
extern int __stdcall DL_CheckHandleSameSWVersionInList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);
// BL_HANDLE related
extern int __stdcall DL_BL_IsReady(DL_HANDLE_T  dl_handle, BL_INFO  *p_bl_info, _BOOL  check_if_updated);
extern int __stdcall DL_BL_LoadByFilepath(DL_HANDLE_T  dl_handle, const char *bl_filepath);
extern int __stdcall DL_BL_GetInfo(DL_HANDLE_T  dl_handle, BL_INFO  *p_bl_info);
extern int __stdcall DL_BL_SetEnableAttr(DL_HANDLE_T  dl_handle, _BOOL  attr);

//------------------------------------------------------------------------------
// DA_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------

typedef struct {
	char			filepath[256];
	unsigned int	start_addr;
	unsigned char	*buf;
	unsigned int	buf_len;
	unsigned int	main_prog_size;
}DA_INFO;

struct DA_HANDLE;
typedef struct DA_HANDLE *	DA_HANDLE_T;
extern int __stdcall DA_Create(DA_HANDLE_T  *p_da_handle);
extern int __stdcall DA_Destroy(DA_HANDLE_T  *p_da_handle);
extern int __stdcall DA_IsReady(DA_HANDLE_T  da_handle, DA_INFO  *p_da_info, _BOOL  check_if_updated);
extern int __stdcall DA_GetInfo(DA_HANDLE_T  da_handle, DA_INFO  *p_da_info);
extern int __stdcall DA_SetFilepath(DA_HANDLE_T  da_handle, const char *da_filepath);
extern int __stdcall DA_LoadByFilepath(DA_HANDLE_T  da_handle, const char *da_filepath);
extern int __stdcall DA_LoadByFilepathEx(DA_HANDLE_T  da_handle, const char *da_filepath, _BOOL  bDA_Validation);
extern int __stdcall DA_Load(DA_HANDLE_T  da_handle);
extern int __stdcall DA_LoadEx(DA_HANDLE_T  da_handle, _BOOL  bDA_Validation);
extern int __stdcall DA_Unload(DA_HANDLE_T  da_handle);

//------------------------------------------------------------------------------
// RB_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------
typedef struct {
	char				filepath[256];
	unsigned int		readback_addr;
	unsigned int		readback_len;
	_BOOL				enable;	// _FALSE -> disbale 
								// _TRUE  -> enable  

	unsigned short		index;

	NUTL_ReadFlag_E		m_read_flag;

}RB_INFO;

struct RB_HANDLE;
typedef struct RB_HANDLE *	RB_HANDLE_T;
extern int __stdcall RB_Create(RB_HANDLE_T  *p_rb_handle);
extern int __stdcall RB_Destroy(RB_HANDLE_T  *p_rb_handle);
extern int __stdcall RB_SetPacketLength(RB_HANDLE_T  rb_handle, unsigned short length);
extern int __stdcall RB_GetCount(RB_HANDLE_T  rb_handle, unsigned short *p_rb_count);
extern int __stdcall RB_IsReady(RB_HANDLE_T  rb_handle, RB_INFO  *p_rb_info);
extern int __stdcall RB_GetInfo(RB_HANDLE_T  rb_handle, unsigned short index, RB_INFO  *p_rb_info);
extern int __stdcall RB_GetInfoAll(RB_HANDLE_T  rb_handle, RB_INFO  *p_rb_info, unsigned short max_rb_count);
extern int __stdcall RB_Append(RB_HANDLE_T  rb_handle, const char *rb_filepath, unsigned int rb_addr, unsigned int rb_len);
extern int __stdcall RB_Delete(RB_HANDLE_T  rb_handle, unsigned short index);
extern int __stdcall RB_SetFilepath(RB_HANDLE_T  rb_handle, unsigned short index, const char *rb_filepath);
extern int __stdcall RB_SetReadbackFlag(RB_HANDLE_T  rb_handle, unsigned short index, NUTL_ReadFlag_E  flag);
extern int __stdcall RB_SetReadbackAddr(RB_HANDLE_T  rb_handle, unsigned short index, unsigned int rb_addr);
extern int __stdcall RB_SetReadbackLength(RB_HANDLE_T  rb_handle, unsigned short index, unsigned int rb_len);
extern int __stdcall RB_ClearAll(RB_HANDLE_T  rb_handle);
extern int __stdcall RB_SetEnableAttr(RB_HANDLE_T  rb_handle, unsigned short index, _BOOL  attr);



#ifdef	__cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -