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

📄 usbjtag.h

📁 usb-jtag转换,sparc芯片反汇编,sparc芯片调试的工具,可以对芯片内的gpio,sdram,flash进行读写,还可以一次下载64K大小的数据,反汇编,在线调试.
💻 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 + -