📄 debug.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 + -