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

📄 debug.h

📁 GM5621原代码
💻 H
字号:
/*
	$Workfile:   Debug.h  $
	$Revision:   1.4  $
	$Date:   Aug 12 2003 09:01:36  $
*/
#ifndef __DEBUG_H__
#define __DEBUG_H__
//******************************************************************************
//
//              Copyright (C) 2002.  GENESIS MICROCHIP INC.                 
//      All rights reserved.  No part of this program may be reproduced.    
//
//     Genesis Microchip Inc., 165 Commerce Valley Dr. West                 
//     Thornhill, Ontario, Canada, L3T 7V8                                  
//
//==============================================================================
//
// MODULE:      debug.h
//
// USAGE:       Header file for gProbe debug definition
//
//******************************************************************************

//******************************************************************************
//  G L O B A L    D E F I N I T I O N S                                      
//******************************************************************************

#define MaxFirmwareVersionSize	10		// Firmware version number length

//
// gProbe command codes
//
#define CMD_GetStatus			0		// DDC2Bi command
// #define                 		0x01    // unused
// #define                 		0x02    // unused
// #define                 		0x03    // unused
// #define                 		0x04    // unused
// #define                 		0x05    // unused
#define CMD_gmRead        		0x06	// read  host reg
#define CMD_gmWrite     		0x07    // write host reg
#define CMD_GetVersion      	0x08    // get firmware version
#define CMD_TurnOffSwitcher 	0x09    // set firmware in DEBUG  mode
#define CMD_TurnOnSwitcher  	0x0A    // set firmware in NORMAL mode
// #define                 		0x0B	// unused
// #define                 		0x0C	// unused
#define CMD_PRINTIT        		0x0D    // print command
 #define CMD_I2C_READ       	0x0E    // read I2C
 #define CMD_I2C_WRITE      	0x0F    // write I2C
// #define                 		0x10    // unused
//#define CMD_SetParam        	0x11    // custom command
//#define CMD_AppsTest        	0x12    // custom command
#define CMD_BurstRAMWr      	0x13    // burst write RAM buffer
#define CMD_BurstNextRAMWr  	0x14    // burst write RAM buffer from last address
//#define CMD_WrNvramBlock    	0x15    // write NVRAM from RAM buffer
//#define CMD_WrNvram         	0x16    // write NVRAM from data packet
//#define CMD_RdNvram         	0x17    // read back NVRAM
//#define CMD_BurstRegWr      	0x18    // burst reg write
//#define CMD_FlashErase      	0x19    // erase FLASH sector
//#define CMD_FlashWrite      	0x1A    // write FLASH from RAM buffer
//#define CMD_FlashRead       	0x1B 	// read  FLASH
//#define CMD_FlashCRC        	0x1C    // get FLASH CRC
#define CMD_RamExecute			0x1D	// execute code from RAM
#define CMD_SetTranslOffset		0x1E	// meaningful just for ddc2bi
#define CMD_Reset				0x20	// force execution in internal rom
#define CMD_GetInfo				0x40	// get info record - get versiom type supported
#define CMD_MemoryWrite			0x41    // full 32 bit linear address
#define	CMD_MemoryRead			0x42	// full 32 bit linear address

//
// get info command codes
//
enum GetInfoEnum
{
	GetVersion,
	GetSupportedFunctions,
	GetRegInfo,
	GetMemInfo
};

	
//
// response codes.
//
#define CMD_NAK             	0x0B
#define CMD_ACK             	0x0C
#define CMD_INVALID         	0xFF

//******************************************************************************
//		   D E B U G   C O M M A N D   S T R U C T U R E S
//******************************************************************************

// command packet to read gm register
typedef struct ReadBrCmdStruct
{
	BYTE length; // length of packet
	BYTE cmd;
	BYTE addr_hi;
	BYTE addr_lo;
	BYTE chk;
}ReadBrCmd_t;

// response packet for read gm command
typedef struct RdBrCmdPktStruct
{
	BYTE	length;								// length of this response packet
	BYTE	cmd;								// response packet type
	BYTE	addr_hi;							// address of register read
	BYTE	addr_lo;
	BYTE	value_hi;							// value read from register
	BYTE 	value_lo;
	BYTE	chk;								// checksum of packet
}RdBrCmdPkt_t;


typedef struct ReadI2CRegCmdStruct
{
	BYTE	length;								// Packet length
	BYTE	cmd;								// Command
	BYTE	DeviceAddr;							// I2C device address
	BYTE	RegisterNumber;						// Number of register to access
	BYTE	RegisterAddr_hi;					// Register address
	BYTE	RegisterAddr_lo;
	BYTE	chk;								// checksum of packet
} ReadI2CRegCmd_t;

// read I2C command structure
typedef struct Resp_ReadI2CRegCmdStruct
{
	BYTE	length;								// Packet length
	BYTE	cmd;								// Command
	BYTE	RegisterNumberRead;					// Number of register have read
	BYTE	DeviceAddr;							// I2C device address
	BYTE	RegisterNumber;						// Number of register to access
	BYTE	RegisterAddr_hi;					// Register address
	BYTE	RegisterAddr_lo;
	BYTE 	value[SIO_RxBufLen-9];				// values array 
} Resp_ReadI2CRegCmd_t;

// write I2C command structure
typedef struct WriteI2CRegCmdStruct
{
	BYTE	length;								// Packet length
	BYTE	cmd;								// Command
	BYTE	DeviceAddr;							// I2C device address
	BYTE	RegisterNumber;						// Number of register to access
	BYTE	RegisterAddr_hi;					// Register address
	BYTE	RegisterAddr_lo;
	BYTE 	value[SIO_RxBufLen-8];				// values array
} WriteI2CRegCmd_t;


// command packet to write gm register
typedef struct WriteBrCmdStruct
{
	BYTE	length; // length of packet
	BYTE	cmd;
	BYTE	addr_hi;
	BYTE	addr_lo;
	BYTE	value_hi;
	BYTE	value_lo;
	BYTE	chk;
}WriteBrCmd_t;

// command packet for burst write to RAM
typedef struct BurstWriteRAM
{
	BYTE 	length; // length of packet
	BYTE	cmd;
	BYTE	addr_hi;
	BYTE	addr_lo;
	BYTE	value[SIO_RxBufLen-6];
}BurstWrRAMCmd_t;

// command packet for burst write to RAM from last address
typedef struct BurstWriteNextRAM
{
	BYTE 	length; // length of packet
	BYTE	cmd;
	BYTE	value[SIO_RxBufLen-4];
}BurstWrNextRAMCmd_t;

// response packet for read packet command
typedef struct RdCmdPktStruct
{
    BYTE   length;						// length of this response packet
    BYTE   cmd;							// response packet type
    BYTE   value[SIO_RxBufLen-3];		// value read from register
    BYTE   chk;							// checksum of packet
} RdCmdPkt_t;

// command packet for burst write to register (with increment or without increment)
typedef struct BurstWriteReg
{
    BYTE   cmd;
    BYTE   optype;
    BYTE   regaddrhi;
    BYTE   regaddrlo;
    BYTE   value[SIO_RxBufLen-7];
} BurstWrRegCmd_t;

// command packet for RAM patch execute
typedef struct RamExecuteCmd
{
	BYTE 	length; // length of packet
	BYTE	cmd;
	BYTE	addr_hi;
	BYTE	addr_lo;
}RamExecuteCmd_t, *pRamExecuteCmd_t;

// ddc2bi translation command packet
typedef struct TranslCmdPktStruct
{
    BYTE   length;                 	// length of this response packet
    BYTE   cmd;                    	// response packet type
    BYTE   newCmd;					// translation command
    BYTE   chk;                    	// checksum of packet
} TranslCmdPkt_t;

// response packet for get status command
typedef struct ResponseGetStatusCmdPktStruct
{
    BYTE   length;                 	// length of this response packet
    BYTE   cmd;                    	// response packet type
	BYTE   status;					// translation command
    BYTE   chk;                    	// checksum of packet
} ResponseGetStatusCmdPkt_t;


// command packet to read gm register
typedef struct ResetCmdStruct
{
	BYTE length; // length of packet
	BYTE cmd;
	BYTE operation_opcode;
	BYTE chk;
}ResetCmd_t;


// command packet to Get Info
typedef struct GetInfoCmd_t
{
	BYTE length; // length of packet
	BYTE cmd;
	BYTE type;
	BYTE chk;
}GetInfoCmd_t;

// response packet for get info, type=getversion
typedef struct GetVersionStruct
{
	BYTE	length;								// length of this response packet
	BYTE	cmd;								// response packet type
	BYTE	FamilyID_Hi;
	BYTE	FamilyID_Lo;
	BYTE    ChipID_Hi;
	BYTE    ChipID_Lo;
	BYTE	IROM_Major;
	BYTE	IROM_Minor;
	BYTE	IROM_Build_Hi;
	BYTE	IROM_Build_Lo;
	BYTE	FW_Major;
	BYTE	FW_Minor;
	BYTE	FW_Build_Hi;
	BYTE	FW_Build_Lo;
	BYTE	chk;								// checksum of packet
}GetVersion_t;

// command packet for Memory read
typedef struct MemWriteCmdStruct
{
	BYTE length; // length of packet
	BYTE cmd;
	BYTE type;
	BYTE Address_3;
	BYTE Address_2;
	BYTE Address_1;
	BYTE Address_0;
	BYTE data_hi;
	BYTE data_lo; // only support BYTE and WORD types
	BYTE chk;
}MemWriteCmd_t;

// command packet for Memory read
typedef struct MemReadCmdStruct
{
	BYTE length; // length of packet
	BYTE cmd;
	BYTE type;
	BYTE Address_3;
	BYTE Address_2;
	BYTE Address_1;
	BYTE Address_0;
	BYTE count;
	BYTE memdata[1]; // place holder for data to be returned
}MemReadCmd_t;



typedef BYTE debugCmd_t;

// possible parameters for ParseCommand() function
typedef enum HANDLER_USE
{
	SERIAL_USE,
	DDC2BI_USE
}HANDLER_USE_t;

// commands delegated  to the external rom code handle
typedef enum PARSER_STATUS
{
	NO_MSG_PARSED,
	MSG_PARSED,
	UNKNOWN_MSG_CMD
}PARSER_STATUS_t;


// do not change this enumaration !
typedef enum MODE_STATUS
{
	EXTERNAL_ROM_MODE = 0,
	INTERNAL_ROM_MODE,
	ISP_RAM_MODE,	
}MODE_STATUS_t;



//******************************************************************************
//  G L O B A L    F U N C T I O N    P R O T O T Y P E S
//******************************************************************************

PARSER_STATUS_t far gmi_SystemDebug			(void);	
PARSER_STATUS_t far gmi_GprobeCmdParser		(HANDLER_USE_t B_whichHandler);
void  far gmi_WriteCmdPkt					(BYTE far*, HANDLER_USE_t);
void  far gmi_StopRcvMsg		 			(void);
void  far gmi_StartRcvMsg					(void);
void  far gmi_Print 			 			(const far char *Bp_Str, WORD value);
BYTE* far gmi_GetCommBuf					(void);
void far gmi_Uart_SetRcvCnt 				(WORD W_RcvCount);
WORD far gmi_Uart_GetRcvCnt 				(void);
void far gmi_SetRunModeStatus				(MODE_STATUS_t NewStatus);
MODE_STATUS_t far gmi_GetRunModeStatus (void);


//******************************************************************************
//  G L O B A L    V A R I A B L E S
//******************************************************************************

  #ifndef __DEBUG_C__
	extern BYTE 		gB_DebugOnly;
	extern debugCmd_t	*gDebugCmdPtr;		// made public for ddc2bi usage
	extern const far 	BYTE NakPkt[];
  #endif

#endif //#ifndef __DEBUG_H__
//*********************************  END  **************************************

⌨️ 快捷键说明

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