📄 usbjtag.h
字号:
// usbjtag.h: interface for the usbjtag class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_USBJTAG_H__EFD781EB_0138_4A85_8F80_128D4EE48569__INCLUDED_)
#define AFX_USBJTAG_H__EFD781EB_0138_4A85_8F80_128D4EE48569__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// enum type for Open Jtag status
enum OpenJtagType
{
IceOpenSuccess,
IceNotConnection,
IceNotInitialized,
IceNotAvailable,
IceFaile
};
class Cusbjtag
{
private :
// amtxhal API's parameter
char tdiByteBuffer[128];
char tdoByteBuffer[128];
long Status;
long iceHandle;
long vrefLevel;
long vrefVoltage;
// amba scan 's parameter
unsigned int LEON3_IO_AREA ;
unsigned int LEON3_CONF_AREA ;
unsigned int LEON3_AHB_SLAVE_CONF_AREA ;
unsigned int base ;
unsigned int LEON3_AHB_CONF_WORDS ;
unsigned int LEON3_APB_CONF_WORDS ;
unsigned int LEON3_AHB_MASTERS ;
unsigned int LEON3_AHB_SLAVES ;
unsigned int LEON3_APB_SLAVES ;
unsigned int LEON3_APBUARTS ;
private:
// amtxhal new hook
long add_ir_scan_in(long handle, long length, char *buffer);
long add_dr_scan_in(long handle, long length, char *buffer);
long add_dr_scan_in_stay(long handle, long length, char *buffer);
long add_dr_scan_inout(long handle, long length, char *buffer);
long add_dr_scan_inout_stay(long handle, long length, char *buffer);
// LEON specific jtag access
BOOL add_write_ram(int addr,int data);
BOOL add_read_ram(int addr);
BOOL add_write_flash(int addr, int data);
BOOL add_read_flash(int addr);
// Get amba device's vendor ID and device ID
unsigned int amba_vendor(unsigned int x);
unsigned int amba_device(unsigned int x);
public:
// kenichi 04 2007.7.31 >>
long irLength;
long addressCmd;
long dataCmd;
//<<
// amtxhal hook
OpenJtagType OpenJtag();
BOOL CloseJtag();
// UsbJtagWrite hook
BOOL UsbJtagWrite(int addr, int data);
// UsbJtagRead hook
unsigned int UsbJtagRead(int addr);
// FlashWrite hook
BOOL FlashWrite(int addr,int data);
// Flash Read hook
unsigned int FlashRead(int addr);
// amba scan hook
// collect AHB master device
void ReadAhbDevice(int DeviceId[],int VenderId[]);
// collect AHB slave device
void ReadAhbmasterDevice(int DeviceId[],int VenderId[]);
// collect APB slave device
void ReadApbDevice(int DeviceId[],int VenderId[]);
// set jtag frequency
long SetJtagFrequency(long hertz);
long GetjtagFrequency(long *pl_frequencyIsSafe, // O - return AMTXHAL_JTAG_FREQUENCY_IS_SAFE_
long *pl_frequencyIsInCMDQ, // O - return AMTXHAL_JTAG_FREQUENCY_IS_IN_QUEUE_
long *pl_frequencyInCMDQ, // O - return JTAG frequency in the CMDQ if isInCMDQ
long *pl_frequencyInICE);
// execute SVF file
long execute_svf(long portID, char *svfFile);
// get jtag chain info
long GetJtagChainInfo(
// long l_iceHandle, // I - handle returned by AMTXHAL_ICE_Open function
long l_portID, // I - for non-expert, use AMTXHAL_PORT_ID_DEFAULT
long *pl_safeChainStatus, // O - return AMTXHAL_XPLORE_JTAG_CHAIN_STATUS_
long *pl_safeTrstLevel, // O - return the level of the TRST see following note
long *pl_safeFrequency, // O - return maximal frequency in Herz
long *pl_safeTapNum); // O - return the number of TAPs in the JTAG chain
// get TAP ID
long GetTapID(
// long l_iceHandle, // I - handle returned by AMTXHAL_ICE_Open function
long l_portID, // I - for non-expert, use AMTXHAL_PORT_ID_DEFAULT
long l_tapIndex, // I - 0 to(tapNum-1). _XPLORE_JTAG_GetChainInfo->safeTapNum
long *pl_tapStatus, // O - return AMTXHAL_XPLORE_JTAG_TAP_
long *pl_tapID); // O - return TAP ID code on 32 bits
// apply for amontec new hook
bool UsbJtagWriteBlock(int addr, int *data, int size);
bool UsbJtagReadBlock(int addr, int *data, int size);
bool UsbJtagFlashWriteBlock(int addr, int *data, int size);
bool UsbJtagFlashReadBlock(int addr, int *data, int size);
public:
Cusbjtag();
virtual ~Cusbjtag();
};
#endif // !defined(AFX_USBJTAG_H__EFD781EB_0138_4A85_8F80_128D4EE48569__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -