📄 burnflash.h
字号:
// NAME: BurnFlash.h
/*
when who what, where, why
-------- -------- ---------------------------------------------------------------
01/20/05 nony.wu fixed bugs to support baudrate change
============================================================================ */
#ifndef BURN_FLASH_H
#define BURN_FLASH_H
#ifndef __cplusplus
#error "This is a C++ header file; it requires C++ to compile."
#endif
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//--------------------------------------------------------------------------------------------------
// ENUMS
//--------------------------------------------------------------------------------------------------
enum result_type
{
SUCCESS,
ERR_NO_VALID_RAM_FILE,
ERR_NO_VALID_PHONE_FILE,
ERR_NO_VALID_FILE,
ERR_NO_VALID_TARGET_FILE,
ERR_SND_CHG_TO_OFFLINE_CMD,
ERR_SND_DLOAD_CMD,
ERR_SND_RAM_FILE,
ERR_COMM_FAIL,
ERR_ERASE_FLASH_FAIL,
ERR_WRITE_FLASH_FAIL,
ERR_RESET_PHONE_FAIL,
ERR_UNKNOWN
} ;
enum cmd_code_type
{
CMD_WRITE = 0x01, /* Write a block of data to memory (received) */
CMD_ACK = 0x02, /* Acknowledge receiving a packet (transmitted) */
CMD_NAK = 0x03, /* Acknowledge a bad packet (transmitted) */
CMD_ERASE = 0x04, /* Erase a block of memory (received) */
CMD_GO = 0x05, /* Begin execution at an address (received) */
CMD_NOP = 0x06, /* No operation, for debug (received) */
CMD_PREQ = 0x07, /* Request implementation info (received) */
CMD_PARAMS = 0x08, /* Provide implementation info (transmitted) */
CMD_DUMP = 0x09, /* Debug: dump a block of memory (received) */
CMD_RESET = 0x0A, /* Reset the phone (received) */
CMD_UNLOCK = 0x0B, /* Unlock access to secured ops (received) */
CMD_VERREQ = 0x0C, /* Request software version info (received) */
CMD_VERRSP = 0x0D, /* Provide software version info (transmitted) */
CMD_PWROFF = 0x0E, /* Turn phone power off (received) */
CMD_READ_CODE_FLASH = 0x80,
CMD_ERASE_CODE_FLASH = 0x81,
CMD_WRITE_CODE_FLASH = 0x82,
CMD_READ_DATA_FLASH = 0x83,
CMD_ERASE_DATA_FLASH = 0x84,
CMD_WRITE_DATA_FLASH = 0x85,
CMD_CHANGE_BAUD_RATE = 0x90
};
enum baud_rate_type
{
UART_576K_BPS=0,
UART_1152K_BPS=1,
UART_2304K_BPS=2,
UART_4608K_BPS=4
};
//--------------------------------------------------------------------------------------------------
// CLASS
//--------------------------------------------------------------------------------------------------
struct pkt_buffer_type;
class CProcDiag;
class CBurnFlash
{
private:
pkt_buffer_type *m_packet_snd;
BYTE m_rcv_buf[MAX_PACKET_LEN];
CProcDiag* m_pDiag;
public:
CBurnFlash();
virtual ~CBurnFlash();
int LoadData(char* strFile, DWORD dwDstAddr,DWORD dwSpaceSize, BOOL bCode, BOOL bInitial = TRUE);
int EraseFlash(DWORD dwDstAddr, DWORD dwSpaceSize, BOOL bCode, BOOL bInitial = TRUE);
BOOL ResetPhone();
private:
BOOL RAMFileExist();
int LoadRAMFile(char* strFile);
BOOL SendAndWaitRsp();
void FormWriteCMD(DWORD dwDstAddr, BYTE* pBuf, WORD wLen);
void FormGoCMD(DWORD dwDstAddr);
void FormEraseFlashCMD(DWORD dwAddrDst, DWORD dwLen, BOOL bCode);
void FormWriteFlashCMD(DWORD dwAddrDst, BYTE* pBuf, DWORD dwLen, BOOL bCode);
void FormResetCMD();
void FormChangeBaudRateCMD(baud_rate_type baud_rate);
};
extern CBurnFlash theFlash;
//--------------------------------------------------------------------------------------------------
#endif // BURN_FLASH_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -