Macraigor API ...

Macraigor Systems has a published API (APplication Interface) that works with JUnit in Eclipse and gives you complete control over your target JTAG or BDM connection. Commands are available to access the CPU and fully control it and anything attached to it, as well as to manipulate and analyze the scan chain.

The Macraigor API is installed on your machine when you follow these instructions.

Installed at the same time is a support package, Unsigned Number, and it's description is here.

Create a printable version of this web page


 

 

 

 

SUMMARY: NESTED | FIELD | CONSTR | METHOD

DETAIL: FIELD | CONSTR | METHOD


MacraigorApiPkg
Class MacraigorApi

 
java.lang.Object
  MacraigorApiPkg.MacraigorApi

public final class MacraigorApi

.lang.Object


Field Summary

 long

EMPTY_BREAKPOINT
           

 long

USED_BY_SOFTWARE_BKPT
           

 

Constructor Summary

MacraigorApi()
           

 

 

Method Summary

 java.lang.String

AddressSpaceNameList(int address_space_number)
           

 int

AddressSpaceNameListCount()
           

 boolean

AnalyzeJtagScanChain(int JTAG_speed)
           

 java.lang.String

ApiVersion()
           

 boolean

BreakpointMatchesThisAddress(long address, int[] breakpoint_number, boolean[] software_bkpt)
           

 boolean

ClearHardwareBreakpoint(int number)
           

 boolean

ClearSoftwareBreakpoint(int number)
           

 java.lang.String

ConnectDeviceAddress()
           

 void

ConnectDeviceEepromFlags(byte[] eeprom_flags)
           

 int

ConnectDeviceHardwareFlags()
           

 long

ConnectDeviceSiliconId()
           

 java.lang.String

ConnectDeviceType()
           

 int

CpuStateRegisterListCount()
           

 java.lang.String

CpuStateRegisterNameList(int register_number)
           

 java.lang.String

CurrentEndian()
           

 int

DecodeAddressSpace(java.lang.String address_space_name)
           

 boolean

DoCommand(byte[] command, byte[] reply)
           

 boolean

DownloadImage(java.lang.String filename, int address_space, int write_size)
           

 int

DownloadSpeedTest(long start_address, int block_count, int block_size, int write_size)
           

 java.lang.String

ErrorText()
           

 boolean

FillMemory(long start_address, byte value, int count, boolean verify, int space)
           

 boolean

FillMemory(long start_address, int value, int count, boolean verify, int space)
           

 boolean

FillMemory(long start_address, long value, int count, boolean verify, int space)
           

 boolean

FillMemory(long start_address, long value, int count, int size, boolean verify, int space)
           

 boolean

FillMemory(long start_address, short value, int count, boolean verify, int space)
           

 int

GeneralPurposeRegisterListCount()
           

 java.lang.String

GeneralPurposeRegisterNameList(int register_number)
           

 int

GetActiveDevice()
           

 java.lang.String

GetAssemblyLanguageType(int target_number)
           

 int

GetCpuSize()
           

 java.lang.String

GetDeviceList(int device_number)
           

 int

GetDeviceListCount()
           

 java.lang.String

GetDeviceName(int target_number)
           

 int

GetHardwareBreakpoints(long[] hardware_breakpoint_addresses)
           

 java.lang.String

GetMachineID()
           

 java.lang.String

GetProgramCounterName()
           

 int

GetSoftwareBreakpoints(long[] software_breakpoint_addresses)
           

 boolean

GetStatus()
           

 java.lang.String

GetTargetList(int target_number)
           

 java.lang.String

GetTargetList(java.lang.String vendor, int target_number)
           

 int

GetTargetListCount()
           

 int

GetTargetListCount(java.lang.String vendor)
           

 java.lang.String

GetVendorList(int target_number)
           

 int

GetVendorListCount()
           

 boolean

InitializeTarget(int JTAG_speed, java.lang.String[] targets)
           

 java.lang.String

JtagDriverVersion()
           

 java.lang.String

JtagHardwareVersion()
           

 int

JtagScanChainDeviceCount()
           

 int

JtagScanChainIRLength()
           

 int

JtagScanChainJtagID(int scan_chain_position)
           

 boolean

JTAGScanIO(java.lang.String shift_register, int length_in_bits, byte[] data_in, byte[] data_out)
           

 boolean

JTAGScanIOState(java.lang.String shift_register, java.lang.String final_jtag_state, int length_in_bits, byte[] data_in, byte[] data_out)
           

 long

LoadImageStartsAt(java.lang.String filename)
           

 int

MemoryTest(long start_address, int block_count, int block_size, int write_size)
           

 boolean

MoveMemory(long source_address, int source_space, long destination_address, int destination_space, int count, boolean verify)
           

 boolean

RAMTest(long start_address, int address_space, int size, int byte_count)
           

 boolean

ReadCpuStateRegisters(long[] register_values_list)
           

 boolean

ReadGeneralPurposeRegisters(long[] register_values_list)
           

 boolean

ReadMemory(long start_address, int space, byte[] memory)
           

 boolean

ReadMemory(long start_address, int space, int[] memory)
           

 boolean

ReadMemory(long start_address, int size, int space, byte[] memory)
           

 boolean

ReadMemory(long start_address, int space, long[] memory)
           

 boolean

ReadMemory(long start_address, int space, short[] memory)
           

 boolean

ReadRegister(java.lang.String starting_register_name, long[] register_list)
           

 java.lang.String

RegisterNameList(int register_number)
           

 int

RegisterNameListCount()
           

 boolean

ResetHaltTarget()
           

 boolean

ResetRunTarget()
           

 boolean

RunTargetFromAddress(long address)
           

 boolean

RunTargetFromPC()
           

 boolean

SetActiveDevice(int target_number)
           

 boolean

SetConnection(java.lang.String device, java.lang.String address, java.lang.String license)
           

 void

SetEndian(java.lang.String endian)
           

 boolean

SetHardwareBreakpoint(int number, long address)
           

 boolean

SetJtagDeviceInfo(int target_number, int IR_length, int bypass_instruction, int bypass_length)
           

 boolean

SetRegisterBufferAddress(long address)
           

 boolean

SetSoftwareBreakpoint(int number, int space, long address)
           

 boolean

SetSpeed(int JTAG_speed)
           

 boolean

SingleStep(int count, long[] returned_registers)
           

 java.lang.String

StatusText()
           

 boolean

StopTarget()
           

 boolean

SynchronizeMultipleCommands(java.lang.String command, int[] target_list)
           

 boolean

TargetSpecific(byte[] command)
           

 java.lang.String

TemplateVersion()
           

 boolean

TerminateTarget()
           

 int

UsbDeviceCount()
           

 boolean

UsbLed(boolean on)
           

 boolean

WriteMemory(long start_address, int space, boolean verify, byte[] memory)
           

 boolean

WriteMemory(long start_address, int space, boolean verify, int[] memory)
           

 boolean

WriteMemory(long start_address, int space, boolean verify, long[] memory)
           

 boolean

WriteMemory(long start_address, int space, boolean verify, short[] memory)
           

 boolean

WriteMemory(long start_address, int size, int space, boolean verify, byte[] memory)
           

 boolean

WriteRegister(java.lang.String starting_register_name, long[] register_list)
           

 

Methods inherited from class java.lang.Object

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

 

Field Detail

EMPTY_BREAKPOINT

 
public final long EMPTY_BREAKPOINT

See Also:

Constant Field Values


USED_BY_SOFTWARE_BKPT

 
public final long USED_BY_SOFTWARE_BKPT

See Also:

Constant Field Values

Constructor Detail

MacraigorApi

 
public MacraigorApi()

Method Detail

SetConnection

 
public boolean SetConnection(java.lang.String device,
                             java.lang.String address,
                             java.lang.String license)
 
  // Set type/address of Macraigor Interface Device
  // Returns true if command completed successfully
  //    device [WIGGLER/RAVEN/
  //      Usb2Demon/Usb2Sprite/UsbWiggler/USB/
  //      MPDEMON-ETHERNET/MPDEMON-PARALLEL/
  //            MPDEMON-SERIAL] - string with device name
  //    address - based on device type :
  //       WIGGLER/RAVEN/MPDEMON-PARALLEL     : "LPT1" - "LPT4"
  //       USB/Usb2Demon/Usb2Sprite/UsbWiggler: "USB0" - "USB15"
  //       MPDEMON-SERIAL                     : "COM1" - "COM4"
  //       MPDEMON-ETHERNET                : "xxx.xxx.xxx.xxx"
  //    license - IF device = "WIGGLER" or "RAVEN" :
  //                 string in the format "xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx"
  //                 (where each "x" is a hexidecimal digit)
  //                 license code generated by Macraigor based on MachineID
  //              ELSE (device = "USB" ect) :
  //                 "" (blank string, license not used)
  
Go To Top

AnalyzeJtagScanChain

 
public boolean AnalyzeJtagScanChain(int JTAG_speed)
 
  // Analyzes the JTAG scan chain to determine:
  // 1) the number of devices in the JTAG scan chain
  // 2) the length in bits of the JTAG Instruction Register scan path
  //  which is made up of one or more device's instruction registers
  // 3) the JTAG ID codes of the devices on the scan chain   
  //  JTAG_speed [1 - 8] - indicates JTAG clock rate  
  // Returns:  true - Analysis succeeded, call :
  //        JtagScanChainDevices() - device count/device'(s) JTAG IDs
  //        JtagScanChainIRLength() - length of IR scan chain
  //      false - Analysis failed, call ErrorText() for details
Go To Top

JtagScanChainDeviceCount

 
public int JtagScanChainDeviceCount()
  // Provides information obtained from a previous AnalyzeJtagScanChain() call
  // returns: number of devices on the JTAG scan chain
Go To Top

JtagScanChainJtagID

 
public int JtagScanChainJtagID(int scan_chain_position)
  // Provides information obtained from a previous AnalyzeJtagScanChain() call.
  // Returns the JTAG ID of the device in the caller specified scan chain
  // postion or 0 if the scan_chain_position is equal to or greater than
  // the value returned by JtagScanChainDeviceCount()
  // when called with scan_chain_position = 0 this method with return the
  // JTAG ID of the device closest to TDO, when called with 
  // scan_chain_position = (JtagScanDeviceCount()-1) it will return the
  // JTAG ID of the device closest to TDI
  //  scan_chain_postion [0 - ...] position in the JTAG scan chain of the
  //    device that this method will return the JTAG ID of. 
  //  returns: JTAG ID of device at scan_chain_position
Go To Top

JtagScanChainIRLength

 
public int JtagScanChainIRLength()
  // Provides information objtained from previous AnalyzeJtagScanChain() call
  // returns: length in bits of the JTAG Instruction Register scan chain 
Go To Top

GetMachineID

 
public java.lang.String GetMachineID()
  // Returns string in the format "xxxxxx" where each 'x' is a hexidecimal
  // digit. Wigglers and Ravens require a license code based on MachineID
  // (the host system's MAC address). This call fetches this value so
  // it can be transfered to Macraigor and a license generated for this machine.
Go To Top

GetDeviceList

 
public java.lang.String GetDeviceList(int device_number)
  // Returns list of valid Macraigor JTAG device names, one at a time based on device_number
  // when GetDeviceList() returns  "" the end of the list has been reached
  //     device_number [0 - ...] return this device list entry's name
  //          where 0 = first device in the list,
Go To Top

GetDeviceListCount

 
public int GetDeviceListCount()
  // Returns the number of Macraigor JTAG device names in the device list;
Go To Top

InitializeTarget

 
public boolean InitializeTarget(int JTAG_speed,
                                java.lang.String[] targets)
  // Connects to one our more target cpus on the JTAG scan chain
  // Returns true if command completed successfully
  //    JTAG_speed [1 - 8] - indicates JTAG clock rate
  //    targets[] - array of from 1 to 255 target name strings (name list
  //                supplied by GetTargetList() or "UNKNOWN" if device
  //                is not a CPU supported by the Macraigor Drivers (a FPGA
  //                device for example)
  // Currently supported target names :
  //    Vendor      Target Names
  //  ------      ------------
  //  ALCHEMY   : AU1000, AU1100, AU1200, AU1500, AU1550
  //  AMCC      : PPC405, PPC440EP, AMCC440GP, AMCC440GX
  //  ARM       : ARM7TDMI, ARM920T, ARM922T, ARM925T, ARM926T, ARM940, ARM946T
  //              ARM1136, ARM1176, CORTEX_M3, CORTEX_M3_2WIRE, CORTEXA8
  //  BROADCOM  : BCM-MIPS32, BCM-1250 
  //  CAVIUM    : O1P/CN300x/CN301x, O2P/CN31xx/CN2020, N3/CN38xx/CN36xx, 
  //              O5020/CN502x, O52/CN52xx, O56/CN56xx
  //  CIRRUS    : CS7xxx, CS89712
  //  CISCO     : MIPS3264 
  //  FREESCALE : CPU32, COLDFIRE, COLDFIRE2, DSP563xx, DSP56800,
  //              MAC7111, iMX1, iMXL, iMX21, iMX27, iMX28, iMX31, iMX35, iMX51x, iMX_SJC
  //              MPC5XX, MPC8XX, MPC603RR, MPC740/750, MPC745/755,
  //              MPC5200, MPC5554, MPC8240, MPC8245, MPC8247/8248,
  //              MPC825x/826x, MPC827x/828x, MPC8540/8560  
  //  IBM       : PPC7xx 
  //  INNOVASIC : FIDO1100
  //  INTEL     : 80200, 80219, 80225, 80321, 80331,IOP315, OP321, IOP33x, IXC1100, IXP42x,
  //              IXP43x, IXP46x, IXP23xx, IXP2400, IXP2800, IXP2850, PXA210, PXA25x, PXA26x,
  //              PXA27x, 81341, 81342, IXP23xx, XSCALE-CORE3
  //  INTRINSITY: FASTMATH     
  //  MARVELL   : PXA3xx 
  //  MICROCHIP : PIC32 
  //  MIPS      : MIPS32-4Kc, MIPS32-4Ke, MIPS32-14K, MIPS64-5K 
  //  MORPHOTECH: MS1-16
  //  NETSILICON: NET+ARM, NS7520, NS9360,NS9750,NS9775
  //  PHILLIPS  : PR1900, PR1910
  //  PLX       : IOP480
  //  SHARP     : LH7A4xx, 7952x
  //  VITESSE   : V3000 
  //  XILINX    : PPC405SoftCore 
  //  Unknown   : UNKNOWN
  //  JTAG device
Go To Top

GetVendorList

 
public java.lang.String GetVendorList(int target_number)
  // Returns list of valid CPU vendors names, one at a time based on vendor_number
  // When GetVendorList() returns "" the end of the list has been reached
  //     vendort_number [0 - ...] return this target list entry's name
  //          where 0 = first vendor in the list,
Go To Top

GetVendorListCount

 
public int GetVendorListCount()
  // GetTargetListCount - returns the number of target names in the target
  //   list;
Go To Top

GetTargetList

 
public java.lang.String GetTargetList(java.lang.String vendor,
                                      int target_number)
  // Returns list of valid target names, one at a time based vendor and
  // target_number (ie "ALCHEMY",0 returns "AU1000, "ALCHEMY",1 returns "AU1100")
  // When GetTargetList() returns "" the end of the list has been reached
  //     vendor - vendor name string from list returned by GetVendorList()
  //     target_number [0 - ...] return this target list entry's name
  //          where 0 = first device in the list,
Go To Top

GetTargetListCount

 
public int GetTargetListCount(java.lang.String vendor)
  // GetTargetListCount - returns the number of target names in the target
  //   list for the specified vendor
  //     vendor - vendor name string from list returned by GetVendorList()
Go To Top

GetTargetList

 
public java.lang.String GetTargetList(int target_number)
  // Returns list of all valid target names, one at a time based on
  // target_number.
  // When GetTargetList() returns "" the end of the list has been reached
  //     target_number [0 - ...] return this target list entry's name
  //          where 0 = first device in the list,
Go To Top

GetTargetListCount

 
public int GetTargetListCount()
  // GetTargetListCount - returns the total number of target names in the
  //   list of all devices
Go To Top

SetJtagDeviceInfo

 
public boolean SetJtagDeviceInfo(int target_number,
                                 int IR_length,
                                 int bypass_instruction,
                                 int bypass_length)
  // Supplies JTAG information for a device on a JTAG scan
  // chain that does not have a template but does occupy some number of
  // bits within the JTAG chain (an example of which would be a FPGA device).
  // Returns true if command completed successfully
  //    target_number [0 - ...] - the position of this NO_CPU JTAG device in
  //         the target_list (any values that index to an  NO_CPU target type
  //         are valid). 0 = the first target type in the list.
  //    IR Length - the length in bits of the instruction register into which
  //                the bypass instruction will be written
  //    Bypass Instruction - bit pattern required to place the NO_CPU JTAG
  //                device into bypass mode.
  //    Bypass Length - number of scan chain bits used by this NO_CPU JTAG
  //                device when it is placed in bypass mode (typically 1)
 
Go To Top

SetActiveDevice

 
public boolean SetActiveDevice(int target_number)
  // Set which target CPU on JTAG scan chain will receive all subsequent commands
  // Returns true if command completed successfully
  //    target_number [0 - 254] - detination target, matches array index of
  //                    InitializeTargets(targets[]) parameter
Go To Top

GetActiveDevice

 
public int GetActiveDevice()
 // Returns target number of current target CPU on JTAG scan chain
Go To Top

GetAssemblyLanguageType

 
public java.lang.String GetAssemblyLanguageType(int target_number)
  // Returns the name of the assembly language family used by the
  // target cpu in the target_number position on the JTAG Scan Chain
  // One of the following : "ARM", "PowerPC", "MPCe500", "MIPS"
Go To Top

GetDeviceName

 
public java.lang.String GetDeviceName(int target_number)
  // Returns the name of the target CPU Target in the target_number 
  // position on the JTAG Scan Chain 
Go To Top

GetCpuSize

 
public int GetCpuSize()
  // Returns the address/register field size : 32 or 64. For the 
  // currently selected CPU
Go To Top

GetStatus

 
public boolean GetStatus()
  // Query current selected target's state, a subsequent call to StatusText()
  // will output the results.
  // Returns true if command completed successfully
Go To Top

GetProgramCounterName

 
public java.lang.String GetProgramCounterName()
  // Returns the name of the currently selected target's Program Counter register
Go To Top

TerminateTarget

 
public boolean TerminateTarget()
  // Terminates the connection to the current selected target CPU
  // Returns true if command completed successfully
Go To Top

ConnectDeviceType

 
public java.lang.String ConnectDeviceType()
  // These 5 methods return parameters of currently connected device
  // ConnectDevice:
  //     Type - returns string : WIGGER/RAVEN/Usb2Demon/Usb2Sprite/UsbWiggler/USB/
  //      MPDEMON-ETHERNET/MPDEMON-PARALLEL/MPDEMON-SERIAL
  //     Port          - returns string : LPT<1-4>*/USB<0-15>*/COM<1-4>/Ethernet
 //                      address in the format xxx.xxx.xxx.xxx
 //      SiliconId     - returns 64 bit silicon id
 //      HardwareFlags - returns 32 bit hardware flags
 //      EepromFlags   - returns array of 8 device eeprom flags
Go To Top

ConnectDeviceAddress

 
public java.lang.String ConnectDeviceAddress()
  // These 5 methods return parameters of currently connected device
  // ConnectDevice:
  //     Type - returns string : WIGGER/RAVEN/Usb2Demon/Usb2Sprite/UsbWiggler/USB/
  //      MPDEMON-ETHERNET/MPDEMON-PARALLEL/MPDEMON-SERIAL
  //     Port          - returns string : LPT<1-4>*/USB<0-15>*/COM<1-4>/Ethernet
 //                      address in the format xxx.xxx.xxx.xxx
 //      SiliconId     - returns 64 bit silicon id
 //      HardwareFlags - returns 32 bit hardware flags
 //      EepromFlags   - returns array of 8 device eeprom flags
Go To Top

ConnectDeviceSiliconId

 
public long ConnectDeviceSiliconId()
  // These 5 methods return parameters of currently connected device
  // ConnectDevice:
  //     Type - returns string : WIGGER/RAVEN/Usb2Demon/Usb2Sprite/UsbWiggler/USB/
  //      MPDEMON-ETHERNET/MPDEMON-PARALLEL/MPDEMON-SERIAL
  //     Port          - returns string : LPT<1-4>*/USB<0-15>*/COM<1-4>/Ethernet
 //                      address in the format xxx.xxx.xxx.xxx
 //      SiliconId     - returns 64 bit silicon id
 //      HardwareFlags - returns 32 bit hardware flags
 //      EepromFlags   - returns array of 8 device eeprom flags
Go To Top

ConnectDeviceHardwareFlags

 
public int ConnectDeviceHardwareFlags()
  // These 5 methods return parameters of currently connected device
  // ConnectDevice:
  //     Type - returns string : WIGGER/RAVEN/Usb2Demon/Usb2Sprite/UsbWiggler/USB/
  //      MPDEMON-ETHERNET/MPDEMON-PARALLEL/MPDEMON-SERIAL
  //     Port          - returns string : LPT<1-4>*/USB<0-15>*/COM<1-4>/Ethernet
 //                      address in the format xxx.xxx.xxx.xxx
 //      SiliconId     - returns 64 bit silicon id
 //      HardwareFlags - returns 32 bit hardware flags
 //      EepromFlags   - returns array of 8 device eeprom flags
Go To Top

ConnectDeviceEepromFlags

 
public void ConnectDeviceEepromFlags(byte[] eeprom_flags)
  // These 5 methods return parameters of currently connected device
  // ConnectDevice:
  //     Type - returns string : WIGGER/RAVEN/Usb2Demon/Usb2Sprite/UsbWiggler/USB/
  //      MPDEMON-ETHERNET/MPDEMON-PARALLEL/MPDEMON-SERIAL
  //     Port          - returns string : LPT<1-4>*/USB<0-15>*/COM<1-4>/Ethernet
 //                      address in the format xxx.xxx.xxx.xxx
 //      SiliconId     - returns 64 bit silicon id
 //      HardwareFlags - returns 32 bit hardware flags
 //      EepromFlags   - returns array of 8 device eeprom flags
Go To Top

ApiVersion

 
public java.lang.String ApiVersion()
  // These 4 Methods return software/hardware component version numbers
  //     ApiVersion - returns Macraigor API release version string
  //     TemplateVersion - returns current targets template version string
  //     JtagDriverVersion - returns current JTAG device's driver version string
  //     JtagHardwareVersion - returns current JTAG device's hardware version string
Go To Top

TemplateVersion

 
public java.lang.String TemplateVersion()
  // These 4 Methods return software/hardware component version numbers
  //     ApiVersion - returns Macraigor API release version string
  //     TemplateVersion - returns current targets template version string
  //     JtagDriverVersion - returns current JTAG device's driver version string
  //     JtagHardwareVersion - returns current JTAG device's hardware version string
Go To Top

JtagDriverVersion

 
public java.lang.String JtagDriverVersion()
  // These 4 Methods return software/hardware component version numbers
  //     ApiVersion - returns Macraigor API release version string
  //     TemplateVersion - returns current targets template version string
  //     JtagDriverVersion - returns current JTAG device's driver version string
  //     JtagHardwareVersion - returns current JTAG device's hardware version string
Go To Top

JtagHardwareVersion

 
public java.lang.String JtagHardwareVersion()
  // These 4 Methods return software/hardware component version numbers
  //     ApiVersion - returns Macraigor API release version string
  //     TemplateVersion - returns current targets template version string
  //     JtagDriverVersion - returns current JTAG device's driver version string
  //     JtagHardwareVersion - returns current JTAG device's hardware version string
Go To Top

RunTargetFromPC

 
public boolean RunTargetFromPC()
  // Start currently selected target cpu running from it's PC address
  // Returns true if command completed successfully
Go To Top

RunTargetFromAddress

 
public boolean RunTargetFromAddress(long address)
  // Start currently selected target cpu running from address
  // Returns true if command completed successfully
  //     address [0 - 0xFFFFFFFFFFFFFFFF] - start address
Go To Top

StopTarget

 
public boolean StopTarget()
  // Halt currently selected target
  // Returns true if command completed successfully
Go To Top

SynchronizeMultipleCommands

 
public boolean SynchronizeMultipleCommands(java.lang.String command,
                                           int[] target_list)
  // Execute command simulaneously on multiple CPUs
  // Returns true if command completed successfully
  //    command ["RunTargetFromPC", "StopTarget"] - command to be executed string
  //    target_list - list containing the scan chain indexes of the cpus
  //        that will execute the command ie 0 for first cpu, 1 for second, ect
  //        The length of target_list will determine how many CPUs receive the
  //        command
Go To Top

ResetRunTarget

 
public boolean ResetRunTarget()
  // Reset the currently selected target and start it running
  // Returns true if command completed successfully
Go To Top

ResetHaltTarget

 
public boolean ResetHaltTarget()
  // Reset the currently selected target but halt it at it's reset vector
  // Returns true if command completed successfully
Go To Top

SingleStep

 
public boolean SingleStep(int count,
                          long[] returned_registers)
  // Single step target <count> times and return PC and cause registers
  // Returns true if command completed successfully
  //    count [ - ...] - number of times to single step the target CPU
  //    returned_registers - array of length 2, after the method has completed:
  //      returned_registers[0] = PC - target CPU's PC
  //      returned_registers[1] = CAUSE - target CPU's PC/cause
  //    values at end of step(s)
Go To Top

SetSoftwareBreakpoint

 
public boolean SetSoftwareBreakpoint(int number,
                                     int space,
                                     long address)
  // Writes the software breakpoint opcode to the caller 
  // specified <address> in target memory. If successful
  // it adds the breakpoint address, and the opcode it overwrote
  // to an internal list and returns true, if not it returns false
  // number [0 - 255] - software breakpoint number
  // space [0 - ] - target CPU address space that address parameter lives in
  // address [0 - 0xFFFFFFFFFFFFFFFF] - software breakpoint address
  //         in target memory
Go To Top

ClearSoftwareBreakpoint

 
public boolean ClearSoftwareBreakpoint(int number)
  // Searches internal software breakpoint list for a match on
  // <number>, if it finds one it replaces the software breakpoint
  // in target memory with the opcode it replaced, then returns : true
  // otherwize it returns : false.
  // number [0 - 255] - software breakpoint number to be cleared
Go To Top

GetSoftwareBreakpoints

 
public int GetSoftwareBreakpoints(long[] software_breakpoint_addresses)
  // Returns the number of software breakpoints supported for this CPU type
  // usually either 256 or 0 (if software breakpoints are not supported. 
  // If there are one or more breakpoints in the 
  // list, <software_breakpoint_addresses> will contain they're addresses
  // in memory. 
  //  software_breakpoint_adddresses - array of length 256, after the method
  //  has completed AND return value > 0 :
  //      software_breakpoint_addresses[0] - software breakpoint address OR
  //                     EMPTY_BREAKPOINT
  //      software_breakpoint_addresses[return value - 1] - last soft breakpt addr OR
  //                       EMPTY_BREAKPOINT
    
Go To Top

SetHardwareBreakpoint

 
public boolean SetHardwareBreakpoint(int number,
                                     long address)
  // Attempts to configure the target CPU to set a hardware breakpoint
  // at the caller specified <address>. If successful it adds the 
  // breakpoint address to an internal list and returns true, if 
  // not it returns false
  // number [0 - NUMBER OF HARDWARE BREAKPOINTS - 1] - hardware
  //   breakpoint number to assign breakpoint address to
  // address [0 - 0xFFFFFFFFFFFFFFFF] - hardware breakpoint address
  //         in target memory
 
Go To Top

ClearHardwareBreakpoint

 
public boolean ClearHardwareBreakpoint(int number)
  // Searches internal hardware breakpoint list for a match on
  // <number>, if it finds one it disables the hardware breakpoint
  // at that address, then returns : true
  // otherwize it returns : false.
  // number [0 - NUMBER OF HARDWARE BREAKPOINTS - 1] - hardware 
  //    number to be cleared
Go To Top

GetHardwareBreakpoints

 
public int GetHardwareBreakpoints(long[] hardware_breakpoint_addresses)
  // Returns the the maximim number of hardware breakpoints
  // supported by this CPU's architecture and a 
  // breakpoint address list. If one or more breakpoints are supported, 
  // <hardware_breakpoint_addresses> will contain the current active
  // hardware breakpoint addresses in memory OR -1 if this hardware breakpoint
  // is currently not in use. 
  //  hardware_breakpoint_addresses - array of length 256, after the method
  //      has completed AND return value > 0 :
  //        hardware_breakpoint_addresses[0] - first hdw breakpoint address OR 
  //                       EMPTY_BREAKPOINT
  //        hardware_breakpoint_addresses[N] - last hdw breakpoint address OR 
  //                       EMPTY_BREAKPOINT
Go To Top

BreakpointMatchesThisAddress

 
public boolean BreakpointMatchesThisAddress(long address,
                                            int[] breakpoint_number,
                                            boolean[] software_bkpt)
  // Returns true if the caller supplied address matches a hardware or software
  // breakpoint. If so breakpoint_number[0]/software_bkpt[0] will contain the 
  // matching breakpoint's number and type
  //   address - address to search software and hardware breakpoint tables 
  //          looking for a match
  //   breakpoint_number[1] - one element array used to pass matching breakpoint
  //      number back to the caller in breakpoint_number[0]
  //  software_bkpt[1] - one element array used to pass the breapoint type
  //      back to the caller (true = software/false=hardware) in
  //      software_bkpt[0]  
Go To Top

ReadRegister

 
public boolean ReadRegister(java.lang.String starting_register_name,
                            long[] register_list)
  // Returns list of register values read from currently selected CPU starting
  //   with starting register name and continuing for the length of
  //   register_list.
  // Returns true if command completed successfully
  //   starting_register_name - ascii name of first register to be read (from
  //        RegisterNameList() or GeneralPurposeRegisterNameList() or by typing "names" command
  //    in the OcdCommander), Supported Register Names :
  //      ALCHEMY: AU1000, AU1100, AU1200: AU1500, AU1550 : 
  //      r<0-31>,sr,index,rand,elo<0-1>,ctxt,pgmask,wired,count,badvaddr,
  //      entryhi,compare,status,cause,epc,prid,config,lladdr,lladdr,
  //      watchlo,watchhi,scratch,debug,depc,perfcnt,dtag,itag,errorepc,
  //      desave,config1,iwatchlo,iwatchlo,ddata,idata
  //      AMCC: PPC405 :
  //      XILINX: PPC405SoftCore :
  //      spr<0-1023>,dcr<0-1023>,gpr<0-31>,fpr<0-31>,fpr<0-31>h,cr,fpscr,msr,pc/iar
  //      AMCC: PPC440EP, AMCC440GP, AMCC440GX :
  //       PLX: IOP480 :
  //      spr<0-1023>,dcr<0-1023>,gpr<0-31>,fpr<0-31>,fpr<0-31>h,cr,fpscr,msr,pc/iar
  //      xer,lr,ctr,dec,srr<0-1>,pid,decar,csrr<0-1>,dear,esr,ivpr,usprg0,sprg<1-3>
  //      pir,pvr,dbsr,dbcr<0-2>,iac<1-4>,dac<1-2>,tsr,tcr,ivor<0-15>,inv<0-3>,
  //      itv<0-3>,dnv<0-3>,dtv<0-3>,dvlim,ivlim,rstgfg,dcdbtrl,dcdbtrh,icdbtrl,
  //      icdbtrh,mmucr,ccr0,iddbdr,dbdr
  //      ARM: ARM7TDMI :
  //      CIRRUS: CS7xxx, CS89712 :
  //      FREESCALE: MAC7111 :
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,dccr,dcdr,w<0-1>av,w<0-1>am,
  //      w<0-1>dv,w<0-1>dm,w<0-1>cv,w<0-1>cm,idcode,ctrl,translatetablebase,
  //      domainaccess,fsr,far,fcsepid,dcccontrol,dccdata,dcctimeout
  //      ARM: ARM920T, ARM922T :
  //      FREESCALE : iMX1, iMXL :
  //      SHARP: LH7A4xx :
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,dccr,dcdr,w<0-1>av,w<0-1>am,
  //      w<0-1>dv,w<0-1>dm,w<0-1>cv,w<0-1>cm,idcode,cachetype,ctrl,translatetablebase,
  //      domainaccess,fsr,far,datacachelockdown,instrcachelockdown,datatlblockdown,
  //      instrtlblockdown,fcsepid,dcccontrol,dccdata,dcctimeout
  //      ARM: ARM925T, ARM926T :
  //      FREESCALE: iMX21, iMX27 :
  //      NETSILICON: NS9360,NS9750,NS9775:
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,dccr,dcdr,w<0-1>av,w<0-1>am,
  //      w<0-1>dv,w<0-1>dm,w<0-1>cv,w<0-1>cm,idcode,cachetype,ctrl,translatetablebase,
  //      domainaccess,dfsr,ifsr,far,datacachelockdown,instrcachelockdown,
  //      datatlblockdown,instrtlblockdown,fcsepid,tcmstatus,datatcmregion,
  //      instrtcmregion,contextid,dcccontrol,dccdata,dcctimeout
  //      ARM: ARM940 :
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,dccr,dcdr,w<0-1>av,w<0-1>am,
  //      w<0-1>dv,w<0-1>dm,w<0-1>cv,w<0-1>cm,idcode,cachetype,ctrl,datacacheattr,
  //      intrcacheattr,writebufferctrl,dataspaceprotect,instrspaceprotect,
  //      dataprotectrgn<0-7>,instrprotectrgn<0-7>,datatlblockdown,instrtlblockdown
  //      dcccontrol,dccdata,dcctimeout
  //      ARM: ARM946T :
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,dccr,dcdr,w<0-1>av,w<0-1>am,
  //      w<0-1>dv,w<0-1>dm,w<0-1>cv,w<0-1>cm,idcode,cachetype,ctrl,datacacheattr,
  //      instrcacheattr,writebuffctrl,tcmemorysize,dataaccessprm,instraccesprm,
  //      protectrgn<0-7>,datatlblockdown,instrtlblockdown,tcmdataregion,tcminstrregion,
  //      fcsepid,tracectrl,dcccontrol,dccdata,dcctimeout  
  //      ARM: ARM1136, ARM1176:
  //      FREESCALE: iMX31, iMX35:
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,didr,vcr,bvr<0-5>,bcr<0-5>,
  //      wvr<0-1>,wcr<0-1>,idcode,cachetype,tcm_status,tbl_type,control,aux_control,
  //      coprocessor_access,ttb_<0-1>,ttb_control,domainaccess,data_fault_status,
  //      instr_fault_status,fault_address,watchpt_fault_address,data_cache_lockdown,
  //      instr_cache_lockdown,data_tcm_region,instr_tcm_region,tlb_lockdown,
  //      dma_idstatus_present,dma_idstatus_queued,dma_idstatus_running,
  //      dma_idstatus_interrupt,dma_user_access,dma_channel_number,dma_enable_stop,
  //      dma_enable_start,dma_enable_clear,dma_control,dma_intrnl_start_addr,
  //      dma_extrnl_start_addr,dma_intrnl_end_addr,dma_channel_status,
  //      dma_context_id,fcse_pid,context_id,data_memory_remap,instr_memory_remap,
  //      dma_memory_remap,pport_memory_remap,pmnc,ccnt,pmn<0-1>,data_tag_ram_read_op,
  //      isntr_tag_ram_read_op,instr_cache_data_ram_read_op,data_cache_debug,
  //      isntr_cache_debug,tlb_debug_control,data_microtlb_entry,data_microtlb_va,
  //      data_micortlb_pa,data_microtbl_attrib,instr_microtbl_entry,instr_microtbl_va,
  //      instr_microtbl_pa,instr_microtlb_attrib,main_tbl_entry_read,
  //      main_tlb_entry_write,main_tlb_va,main_tlb_pa,main_tlb_attrib
  //      ARM: CORTEX_M3, CORTEX_M3_2WIRE :
  //      cpsr,r<0-13>,pc,xpsr,msp,psp,raz
  //      FREESCALE: CPU32 :
  //      MORPHOTECH: MS1-16 :
  //      d<0-7>,a<0-7>,returnpc,currentpc,status,usp,ssp,sfc,dfc,atemp,far,vbr
  //      FREESCALE: COLDFIRE, COLDFIRE2 :
  //      d<0-7>,a<0-7>,cacr,acr<0-1>,vbr,sr,pc,rambar,mbar,csr,aatr,tdr,
  //      pbr,pbmr,abhr,ablr,dbr,dbmr
  //      FREESCALE: DSP563xx, DSP56800 :
  //      a<0-2>,b<1-3>,la,lc,m<0-7>,n<0-7>,omr,r<0-7>,sptr,sr,ssh,ssl,x<0-1>,
  //      y<0-1>,ep,sz,sc,vba,oscr,ombc,obcr,omlr<0-1>,ogdbr,otc,otagb<0-7>,
  //      otagbsr,opdbr,opilr,opabfr,opabdr,opabex,opabf<0-11>,gotor,idcode,pc
  //      FREESCALE: MPC5XX, MPC8XX :
  //      spr<0-1023>,gpr<0-31>,fpr<0-31><l/h>,cr,fpscr,msr,pc/iar
  //      FREESCALE: MPC603RR, MPC740/750, MPC745/755, MPC5200, MPC5554, MPC8240,
  //           MPC8245, MPC8247/8248, MPC825x/826x, MPC827x/828x :
  //      IBM: PPC7xx :
  //      spr<0-1023>,gpr<0-31>,fpr<0-31><l/h>,cr,fpscr,msr,pc/iar,sr<0-15>,
  //      tgpr<0-2>,tgpr
  //      FREESCALE: MPC8540/8560:
  //      spr<0-1023>,pc/iarr,gpr<l/h><0-31>,pgmc0,pmlca<0-2>,pmlcb<0-3>,upmc<0-3>,
  //      upmgc0,upmlca<0-3>,upmlcb<0-3>
  //      INNOVASIC: FIDO1100 :
  //      d<0-7>,a<0-6>,a7usp,a7ssp,pc,sr,vbr,sfc,dfc,ccr,mpualloc,maxtime,time,
  //      swintact,swintctrl,claim,pending,inheritance,faultid,currentcontext,
  //      active_context,program_counter,dbgctrlscanchain,si_bist,config_acr,mem_offset
  //        INTEL: 80200, 80219, 80225, 80321, 80331,IOP315"},IOP321, IOP33x, IXC1100, IXP42x,
  //           IXP43x, IXP46x, IXP23xx, IXP2400, IXP2800, IXP2850, PXA210, PXA25x, PXA26x,
  //         PXA27x :
  //      cpsr,r<0-15>,spsvc,chkpt<0-1>,dbcon,dbr<0-1>,ibcr<0-1>,r<8-14>_fiq,spsr_fiq,
  //      r<13-14>_svc,spsr_svc,r<13-14>_abt,spsr_abt,r<13-14>_irq,spsr_irq,r<13-14>_und,
  //      spsr_und,r<13-14>_sys,dcsr,tbreg,ctl,auxctl,idcode,cachtype,translatetablebase,
  //      domainaccess,fsr,far,processid
  //      INTEL: 81341, 81342, IXP23xx, XSCALE-CORE3 :
  //      MARVELL: PXA3xx :
  //      cpsr,r<0-15>,spsvc,chkpt<0-1>,dbcon,dbr<0-1>,ibcr<0-1>,r<8-14>_fiq,spsr_fiq,
  //      r<13-14>_svc,spsr_svc,r<13-14>_abt,spsr_abt,r<13-14>_irq,spsr_irq,r<13-14>_und,
  //      spsr_und,r<13-14>_sys,dcsr,tbreg,ctl,auxctl,idcode,cachtype,
  //      translatetablebase,domainaccess,fsr,far,processid,L2_system_id,L2_cache_type,
  //      cpar,pmnc,ccnt,inten,flasg,evtsel,pmn<0-3>,pwrmode,cclkcfg,errlog,
  //      erradrl,erradru
  //      MICROCHIP: PIC32 :
  //      r<0-31>,hi,lo,badvaddr,cause,compare,config,config<1-3>,count,debug,depc,
  //      desave,ebase,epc,errorepc,hwrena,intctl,prid,srsctl,srsmap,status
  //      MIPS: MIPS32-4Kc, MIPS32-4Ke :
  //      BROADCOM: BCM-MIPS32 :
  //      CISCO: MIPS3264 :
  //      INTRINSITY: FASTMATH :
  //      r<0-31>,hi,lo,index,rand,elo<0-1>,ctxt,pgmask,wired,bad,count,ehi,
  //      compare,sr,cause,epc,prid,config,watchlo,watchhi,debug,depc,taglo,
  //      ,dataloi
  //      MIPS: MIPS64-5K :
  //      BROADCOM : BCM-1250 :
  //      CAVIUM : O1P/CN300x/CN301x, O2P/CN31xx/CN2020, N3/CN38xx/CN36xx, 
  //           O5020/CN502x, O52/CN52xx, O56/CN56xx :
  //      PHILLIPS : PR1900, PR1910 :
  //      r<0-31>,hi,lo,index,rand,elo<0-1>,ctxt,pgmask,wired,badvaddr,count,ehi,
  //      compare,status,cause,epc,prid,config,lladdr,watchlo,watchhi,xcontext,debug,depc,
  //      taglo,taghi,errorepc,desave,config1
  //      NETSILICON: NET+ARM, NS7520 :
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,dccr,dcdr,w<0-1>av,w<0-1>am,
  //      w<0-1>dv,w<0-1>dm,w<0-1>cv,w<0-1>cm,dcccontrol,dccdata,dcctimeout
  //      SHARP: 7952x:
  //      cpsr,r<0-15>,spsr,r<8-14>_fiq,spsr_svc,r<13-14>_svc,spsr_abt,r<13-14>_abt,
  //      spsr_irq,r<13-14>_irq,spsr_und,r<13-14>_und,dccr,dcdr,w<0-1>av,w<0-1>am,
  //      w<0-1>dv,w<0-1>dm,w<0-1>cv,w<0-1>cm,ctrl,idcode,dcccontrol,dccdata,dcctimeout
  //      VITESSE: V3000 :
  //      gpr<0-31>,cp0-depc,cpu-hi,cpu-lo,cp0-status,cp0-cause,epc,hwbkpt<0-2>,idcode
  //
  //   register_list - on completion contains register values from CPU
  //        starting with the value of starting_register_name and continuing
  //        with subsequent values from the registers following
  //        starting_register_name in RegisterNameList()
Go To Top

WriteRegister

 
public boolean WriteRegister(java.lang.String starting_register_name,
                             long[] register_list)
  // Writes one or more register values to the currently selected CPU based on
  // the length of register_list
  // Returns true if command completed successfully
  //   starting_register_name - name of first register to be written to (from
  //        RegisterNameList() (See ReadRegister())
  //   register_list - register values to be written to CPU
  //        starting with the value of starting_register_name and continuing
  //        with subsequent values to be written to the registers following
  //        starting_register_name in RegisterNameList() See ReadRegister() for 
  //    a list of supported cpu register names
 
Go To Top

RegisterNameList

 
public java.lang.String RegisterNameList(int register_number)
  // Returns list of register names for the ActiveDevice CPU, one at a time
  // based on the value of register_number. When RegisterNameList returns ""
  // the end of the register name list has been reached.
  //     register_number [0 - ...] return this register list entry's name
  //          where 0 = first register in the list,
Go To Top

RegisterNameListCount

 
public int RegisterNameListCount()
  // Returns number of register names in the register name list for the
  // currently selected CPU
Go To Top

GeneralPurposeRegisterNameList

 
public java.lang.String GeneralPurposeRegisterNameList(int register_number)
  // Returns list of general purpose register names for the ActiveDevice CPU,
  // one at a time based on the value of register_number. 
  // When RegisterNameList returns "" the end of the register name list 
  // has been reached.
  //     register_number [0 - ...] return this general purpose register 
  //          list entry's name
  //          where 0 = first register in the list,
  //  The current list of supported General Purpose Register names is:
  //      ALCHEMY: AU1000, AU1100, AU1200: AU1500, AU1550 : 
  //      r<1-31>
  //      AMCC: PPC405 :
  //      XILINX: PPC405SoftCore :
  //      AMCC: PPC440EP, AMCC440GP, AMCC440GX :
  //       PLX: IOP480 :
  //      gpr<0-31>
  //      ARM: ARM7TDMI ARM920T, ARM922T ARM925T, ARM926T ARM946T ARM1136, ARM1176:
  //      CIRRUS: CS7xxx, CS89712 :
  //      FREESCALE: MAC7111 iMX1, iMXL, iMX21, iMX27, iMX31, iMX35:
  //      SHARP: LH7A4xx 7952x:
  //      NETSILICON: NS9360,NS9750,NS9775,NET+ARM, NS7520:
  //      r<0-14>
  //      ARM: CORTEX_M3, CORTEX_M3_2WIRE :
  //      r<0-13>
  //      FREESCALE: CPU32 :
  //      MORPHOTECH: MS1-16 :
  //      FREESCALE: COLDFIRE, COLDFIRE2 :
  //      d<0-7>,a<0-7>
  //      FREESCALE: DSP563xx, DSP56800 :
  //      a<0-2>,b<1-3>,la,lc,m<0-7>,n<0-7>,omr,r<0-7>,sptr,sr,ssh,ssl,x<0-1>,
  //      y<0-1>,ep,sz,sc,vba
  //      FREESCALE: MPC5XX, MPC8XX :
  //      FREESCALE: MPC603RR, MPC740/750, MPC745/755, MPC5200, MPC5554, MPC8240,
  //           MPC8245, MPC8247/8248, MPC825x/826x, MPC827x/828x :
  //      IBM: PPC7xx :
  //      gpr<0-31>
  //      FREESCALE: MPC8540/8560:
  //      gpr<l/h><0-31>
  //      INNOVASIC: FIDO1100 :
  //      d<0-7>,a<0-6>,a7usp,a7ssp
  //        INTEL: 80200, 80219, 80225, 80321, 80331,IOP315"},IOP321, IOP33x, IXC1100, IXP42x,
  //           IXP43x, IXP46x, IXP23xx, IXP2400, IXP2800, IXP2850, PXA210, PXA25x, PXA26x,
  //         PXA27x 81341, 81342, IXP23xx, XSCALE-CORE3:
  //      MARVELL: PXA3xx :
  //      r<0-14>
  //      MICROCHIP: PIC32 :
  //      MIPS: MIPS32-4Kc, MIPS32-4Ke :
  //      BROADCOM: BCM-MIPS32 :
  //      CISCO: MIPS3264 :
  //      INTRINSITY: FASTMATH :
  //      MIPS: MIPS64-5K :
  //      BROADCOM : BCM-1250 :
  //      CAVIUM : O1P/CN300x/CN301x, O2P/CN31xx/CN2020, N3/CN38xx/CN36xx, 
  //           O5020/CN502x, O52/CN52xx, O56/CN56xx :
  //      PHILLIPS : PR1900, PR1910 :
  //      r<1-31>
  //      VITESSE: V3000 :
  //      gpr<0-31>
Go To Top

GeneralPurposeRegisterListCount

 
public int GeneralPurposeRegisterListCount()
  // Returns number of register names returned by ReadGeneralPurposeRegisters
  // method so value/name arrays can be sized correctly
Go To Top

ReadGeneralPurposeRegisters

 
public boolean ReadGeneralPurposeRegisters(long[] register_values_list)
  // Returns lists of General purpose register values read from currently 
  // selected CPU starting. Each CPU type has a different general purpose register list
  // Returns true if command completed successfully
  //   register_values_list - on completion array contains General Purpose 
  //        Register values read from the CPU staring with the value of 
  //        the register name returned by GeneralPurposeRegisterNameList(0)
  //        and ending with the value of the register name returned by
  //    GeneralPurposeRegisterNameList(GeneralPurposeRegisterNameCount() - 1)
Go To Top

CpuStateRegisterNameList

 
public java.lang.String CpuStateRegisterNameList(int register_number)
  // Returns list of register names for the registers returned by ReadCpuStateRegisters()
  // (these are the CPU state registers for the ActiveDevice CPU)
  // which are returned one at a time based on the value of register_number. 
  // When RegisterNameList returns "" the end of the register name list 
  // has been reached.
  //     register_number [0 - ...] return this CpuState register 
  //          list entry's name
  //          where 0 = first register in the list,
  // Here is a list of the returned registers for each Vendor/Target type:
  //        ALCHEMY: AU1000, AU1100, AU1200: AU1500, AU1550 : 
  //      depc, debug, sr, cause
  //      AMCC: PPC405 :
  //      XILINX: PPC405SoftCore :
  //      AMCC: PPC440EP, AMCC440GP, AMCC440GX :
  //       PLX: IOP480 :
  //      pc/iar, cr, msr, link, dbsr
  //      ARM: ARM7TDMI ARM920T, ARM922T ARM925T, ARM926T ARM946T ARM1136, ARM1176:
  //      CIRRUS: CS7xxx, CS89712 :
  //      FREESCALE: MAC7111 iMX1, iMXL, iMX21, iMX27, iMX31, iMX35:
  //      SHARP: LH7A4xx 7952x:
  //      NETSILICON: NS9360,NS9750,NS9775,NET+ARM, NS7520:
  //      pc/r15, sp/r13, lr/r14, cpsr
  //      ARM: CORTEX_M3, CORTEX_M3_2WIRE :
  //      no state registers are defined> always returns ""
  //      FREESCALE: CPU32 :
  //      MORPHOTECH: MS1-16 :
  //      FREESCALE: COLDFIRE, COLDFIRE2 :
  //      d<0-7>,a<0-7>
  //      FREESCALE: DSP563xx, DSP56800 :
  //      a<0-2>,b<1-3>,la,lc,m<0-7>,n<0-7>,omr,r<0-7>,sptr,sr,ssh,ssl,x<0-1>,
  //      y<0-1>,ep,sz,sc,vba
  //        FREESCALE: MPC5XX, MPC8XX :
  //      pc/iar, cr, msr, link, icr
  //      FREESCALE: MPC603RR, MPC740/750, MPC745/755, MPC5200, MPC5554, MPC8240,
  //           MPC8245, MPC8247/8248, MPC825x/826x, MPC827x/828x MPC8540/8560:
  //      IBM: PPC7xx :
  //      pc/iar, cr, msr, link
  //      INNOVASIC: FIDO1100 :
  //      d<0-7>,a<0-6>,a7usp,a7ssp
  //        INTEL: 80200, 80219, 80225, 80321, 80331,IOP315"},IOP321, IOP33x, IXC1100, IXP42x,
  //           IXP43x, IXP46x, IXP23xx, IXP2400, IXP2800, IXP2850, PXA210, PXA25x, PXA26x,
  //         PXA27x 81341, 81342, IXP23xx, XSCALE-CORE3:
  //      MARVELL: PXA3xx :
  //      pc/r15, sp/r13, lr/r14, cpsr
  //      MICROCHIP: PIC32 :
  //      MIPS: MIPS32-4Kc, MIPS32-4Ke :
  //      BROADCOM: BCM-MIPS32 :
  //      CISCO: MIPS3264 :
  //      INTRINSITY: FASTMATH :
  //      BROADCOM : BCM-1250 :
  //      PHILLIPS : PR1900, PR1910 :
  //      depc, debug, sr, cause
  //        CAVIUM : O1P/CN300x/CN301x, O2P/CN31xx/CN2020, N3/CN38xx/CN36xx, 
  //               O5020/CN502x, O52/CN52xx, O56/CN56xx :
  //      MIPS: MIPS64-5K :
  //      depc, debug, status, cause  
  //      VITESSE: V3000 :
  //      no state registers are defined always returns ""
Go To Top

CpuStateRegisterListCount

 
public int CpuStateRegisterListCount()
  // Returns number of register names returned by ReadCpuStateRegisters
  // method so value/name arrays can be sized correctly
Go To Top

ReadCpuStateRegisters

 
public boolean ReadCpuStateRegisters(long[] register_values_list)
  // Returns lists of CPU state register values read from currently 
  // selected CPU. Each CPU type has a different set of CPU state registers.
  // The first register in the list will aways be the Program Counter. 
  // CpuStateRegisterListCount() - tells how many registers total will be returned, 
  // CpuStateRegisterListName() - returns the names of the CPU State Registers
  // Thie method returns true if command completed successfully
  //   register_values_list - on completion array contains CpuState 
  //        Register values read from the CPU staring with the value of 
  //        the register name returned by CpuStateRegisterNameList(0)
  //        and ending with the value of the register name returned by
  //    CpuStateRegisterNameList(CpuStateRegisterNameCount() - 1)
Go To Top

AddressSpaceNameList

 
public java.lang.String AddressSpaceNameList(int address_space_number)
  // Returns list of address space names for the ActiveDevice CPU, one at a time
  // based on the value of address_space_number. When AddressSpaceNameList returns ""
  // the end of the register name list has been reached. The string
  // "NOTUSED" can be returned for an address space number that is not used
  // but larger numbers are used.
  //     address_space_number [0 - ...] return this address space list entry's
  //          name where 0 = first address space in the list
  //          This value is used in the 'space' field in ReadMemory(),
  //          WriteMemory(), FillMemory(), and MoveMemory() methods.
Go To Top

AddressSpaceNameListCount

 
public int AddressSpaceNameListCount()
  // Returns the largest valid address space number in the address space
  // name list for the currently selected CPU
Go To Top

DecodeAddressSpace

 
public int DecodeAddressSpace(java.lang.String address_space_name)
  // Returns the address space number (used by ReadMemory/WriteMemory/FillMemory/
  // SetSoftwareBreakpoint) when given a valid address space name
  // (one returned by AddressSpaceNameList). For example to read
  // a 4 byte quantity at 0x100 in the ARM7TDMI CPU's PHYSICAL address space :
  // API.ReadMemory(0x100, 4, API.DecodeAddressSpace("PHYSICAL"), read_buffer);
  // Here is a Vendor/Target specific valid address space names list :
  //    ALCHEMY: AU1000, AU1100, AU1200: AU1500, AU1550 : 
  //      "VIRTUAL"
  //  AMCC: PPC405 :
  //  XILINX: PPC405SoftCore :
  //      "PHYSICAL"
  //  AMCC: PPC440EP, AMCC440GP, AMCC440GX :
  //   PLX: IOP480 :
  //      "VIRTUAL"
  //  ARM: ARM7TDMI, ARM920T, ARM922T, ARM925T, ARM926T, ARM940, ARM946T:
  //  CIRRUS: CS7xxx, CS89712 :
  //  FREESCALE: MAC7111, iMX1, iMXL, iMX21, iMX27 :
  //  SHARP: LH7A4xx, 7952x::
  //   NETSILICON: NET+ARM, NS7520, NS9360,NS9750,NS9775:
  //        "MMU-off","MMU-on","DCC"
  //  ARM: ARM1136, ARM1176:
  //  FREESCALE: iMX31, iMX35:
  //      "PHYSICAL"
  //  ARM: CORTEX_M3, CORTEX_M3_2WIRE :
  //      "PHYSICAL"
  //  FREESCALE: CPU32 :
  //  MORPHOTECH: MS1-16 :
  //      "PHYSICAL"
  //  FREESCALE: COLDFIRE, COLDFIRE2 :
  //      "PHYSICAL"
  //  FREESCALE: DSP563xx, DSP56800 :
  //      "Program","X-MEM","Y-MEM","L-MEM" 
  //  FREESCALE: MPC5XX, MPC8XX :
  //      "PHYSICAL"
  //  FREESCALE: MPC603RR, MPC740/750, MPC745/755, MPC5200, MPC5554, MPC8240,
  //           MPC8245, MPC8247/8248, MPC825x/826x, MPC827x/828x :
  //  IBM: PPC7xx :
  //      "PHYSICAL","Icache","Dcache","VIRTUAL"
  //  FREESCALE: MPC8540/8560:
  //      "PHYSICAL","Nonsnooped-SAP","L1-Icache","L1-Dcache","ELFCore-Physical"};
  //  INNOVASIC: FIDO1100 :
  //      "PHYSICAL"
  //  INTEL: 80200, 80219, 80225, 80321, 80331,IOP315"},IOP321, IOP33x, IXC1100, IXP42x,
  //           IXP43x, IXP46x, IXP23xx, IXP2400, IXP2800, IXP2850, PXA210, PXA25x, PXA26x,
  //         PXA27x, 81341, 81342, IXP23xx, XSCALE-CORE3:
  //  MARVELL: PXA3xx :
  //      "MMU-on","TraceBuffer","MMU-off"
  //  MICROCHIP: PIC32 :
  //  MIPS: MIPS32-4Kc, MIPS32-4Ke, MIPS64-5K :
  //  BROADCOM: BCM-MIPS32, BCM-1250 :
  //  CISCO: MIPS3264 :
  //  INTRINSITY: FASTMATH :
  //    CAVIUM : O1P/CN300x/CN301x, O2P/CN31xx/CN2020, N3/CN38xx/CN36xx, 
  //           O5020/CN502x, O52/CN52xx, O56/CN56xx :
  //  PHILLIPS : PR1900, PR1910 :
  //      "MainMemory","Icache-Tag","Dcache-Tag","Icache-Lines","Dcache-Lines","TLB-entries"
  //  VITESSE: V3000 :
  //      "PHYSICAL"
Go To Top

ReadMemory

 
public boolean ReadMemory(long start_address,
                          int size,
                          int space,
                          byte[] memory)
  // Returns list of bytes values read from the currently selected CPU's memory
  // starting at start_address and continuing for the length of memory[]
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to read
  //   size [0,1,2,4,8] - size in bytes of each memory read operation, where
  //        0 indicates that the template will select the read size
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace() )
  //   memory - array that will be filled with the bytes read from target
  //        memory. It's length specifies how many bytes will be read.
Go To Top

ReadMemory

 
public boolean ReadMemory(long start_address,
                          int space,
                          byte[] memory)
  // These 4 methods return a list of 8/16/32/64 bit values read from the
  // currently selected CPU's memory, 8/16/32/64 bits at a time starting at
  // start_address and continuing for the length of memory[]
  // Return true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to read
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   memory - array that will be filled with 8/16/32/64 bits values read from
  //        target memory. It's length specifies how many values will be read.
Go To Top

ReadMemory

 
public boolean ReadMemory(long start_address,
                          int space,
                          short[] memory)
  // These 4 methods return a list of 8/16/32/64 bit values read from the
  // currently selected CPU's memory, 8/16/32/64 bits at a time starting at
  // start_address and continuing for the length of memory[]
  // Return true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to read
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   memory - array that will be filled with 8/16/32/64 bits values read from
  //        target memory. It's length specifies how many values will be read.
Go To Top

ReadMemory

 
public boolean ReadMemory(long start_address,
                          int space,
                          int[] memory)
  // These 4 methods return a list of 8/16/32/64 bit values read from the
  // currently selected CPU's memory, 8/16/32/64 bits at a time starting at
  // start_address and continuing for the length of memory[]
  // Return true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to read
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   memory - array that will be filled with 8/16/32/64 bits values read from
  //        target memory. It's length specifies how many values will be read.
Go To Top

ReadMemory

 
public boolean ReadMemory(long start_address,
                          int space,
                          long[] memory)
  // These 4 methods return a list of 8/16/32/64 bit values read from the
  // currently selected CPU's memory, 8/16/32/64 bits at a time starting at
  // start_address and continuing for the length of memory[]
  // Return true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to read
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   memory - array that will be filled with 8/16/32/64 bits values read from
  //        target memory. It's length specifies how many values will be read.
Go To Top

WriteMemory

 
public boolean WriteMemory(long start_address,
                           int size,
                           int space,
                           boolean verify,
                           byte[] memory)
  // Writes one or more bytes to the currently selected CPU's memory
  // starting at start_address and continuing for the length of memory[]
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   size [0,1,2,4,8] - size in bytes of each memory write operation, where
  //        0 indicates that the template will select the write size
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   memory - array that is filled with the values to be written to target
  //        memory. It's length specifies how many bytes to write.
Go To Top

WriteMemory

 
public boolean WriteMemory(long start_address,
                           int space,
                           boolean verify,
                           byte[] memory)
  // Write one or more 8/16/32/64 bit values to the currently selected CPU's memory
  // starting at start_address and continuing for the length of memory[]
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   memory - array that is filled with the 8/16/32/64 bit values to be
  //          written to target memory. It's length specifies how many
  //          values to write.
Go To Top

WriteMemory

 
public boolean WriteMemory(long start_address,
                           int space,
                           boolean verify,
                           short[] memory)
  // Write one or more 8/16/32/64 bit values to the currently selected CPU's memory
  // starting at start_address and continuing for the length of memory[]
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   memory - array that is filled with the 8/16/32/64 bit values to be
  //          written to target memory. It's length specifies how many
  //          values to write.
Go To Top

WriteMemory

 
public boolean WriteMemory(long start_address,
                           int space,
                           boolean verify,
                           int[] memory)
  // Write one or more 8/16/32/64 bit values to the currently selected CPU's memory
  // starting at start_address and continuing for the length of memory[]
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   memory - array that is filled with the 8/16/32/64 bit values to be
  //          written to target memory. It's length specifies how many
  //          values to write.
Go To Top

WriteMemory

 
public boolean WriteMemory(long start_address,
                           int space,
                           boolean verify,
                           long[] memory)
  // Write one or more 8/16/32/64 bit values to the currently selected CPU's memory
  // starting at start_address and continuing for the length of memory[]
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   memory - array that is filled with the 8/16/32/64 bit values to be
  //          written to target memory. It's length specifies how many
  //          values to write.
Go To Top

DownloadSpeedTest

 
public int DownloadSpeedTest(long start_address,
                             int block_count,
                             int block_size,
                             int write_size)
  //  Write a series of blocks containing a pattern to memory and determine the
  //  bytes/second download time
  //  Returns bytes/second or zero if download(s) failed
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   block_count [1 - ...] - number of block writes to perform
  //   block_size [1 - 16*1024] - size of block to be written
  //   write_size [1,2,4,8] - size of write operation (byte/half/word/dword)
Go To Top

MemoryTest

 
public int MemoryTest(long start_address,
                      int block_count,
                      int block_size,
                      int write_size)
//  Writes then reads/verifies one or more of blocks containing a unique pattern each time
//  to memory and determines the write/read times in bytes/sec
//  Returns bytes/second or zero if download(s) failed
//   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
//         target memory to written/read
//   block_count [1 - ...] - number of block writes to perform
//   block_size [1 - 16*1024] - size of block to be written
//   write_size [1,2,4,8] - size of write operation (byte/half/word/dword)
Go To Top

FillMemory

 
public boolean FillMemory(long start_address,
                          long value,
                          int count,
                          int size,
                          boolean verify,
                          int space)
  // Fill the currently selected CPU's memory with <value> starting at
  // <start_address> and continuing for <count> number bytes
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   value [0 - 0xFFFFFFFFFFFFFFFF] - value to be written to memory
  //   size [1,2,4,8] - size in bytes of each memory write operation
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
Go To Top

FillMemory

 
public boolean FillMemory(long start_address,
                          byte value,
                          int count,
                          boolean verify,
                          int space)
  // Fill the currently selected CPU's memory with a 8/16/32/64 bit <value>
  // starting at start_address and continuing <count> times
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   value [0 - 0xff/0xFFFF/0xFFFFFFFF/0xFFFFFFFFFFFFFFFF] - value to be
  //         written to memory
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
Go To Top

FillMemory

 
public boolean FillMemory(long start_address,
                          short value,
                          int count,
                          boolean verify,
                          int space)
  // Fill the currently selected CPU's memory with a 8/16/32/64 bit <value>
  // starting at start_address and continuing <count> times
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   value [0 - 0xff/0xFFFF/0xFFFFFFFF/0xFFFFFFFFFFFFFFFF] - value to be
  //         written to memory
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
Go To Top

FillMemory

 
public boolean FillMemory(long start_address,
                          int value,
                          int count,
                          boolean verify,
                          int space)
  // Fill the currently selected CPU's memory with a 8/16/32/64 bit <value>
  // starting at start_address and continuing <count> times
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   value [0 - 0xff/0xFFFF/0xFFFFFFFF/0xFFFFFFFFFFFFFFFF] - value to be
  //         written to memory
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
Go To Top

FillMemory

 
public boolean FillMemory(long start_address,
                          long value,
                          int count,
                          boolean verify,
                          int space)
  // Fill the currently selected CPU's memory with a 8/16/32/64 bit <value>
  // starting at start_address and continuing <count> times
  // Returns true if command completed successfully
  //   start_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to written
  //   value [0 - 0xff/0xFFFF/0xFFFFFFFF/0xFFFFFFFFFFFFFFFF] - value to be
  //         written to memory
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
  //   space [0 - ...] - target CPU's memory space (see DecodeAddressSpace())
Go To Top

MoveMemory

 
public boolean MoveMemory(long source_address,
                          int source_space,
                          long destination_address,
                          int destination_space,
                          int count,
                          boolean verify)
  // Copy <count> bytes starting at <source_address> to the address range 
  // starting at <destination_address>
  // Returns true if command completed successfully
  //   source_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to be read from
  //   source_space [0 - ...] - source address's target CPU's memory space 
  //              (see DecodeAddressSpace())
  //   destination_address [0 - 0xFFFFFFFFFFFFFFFF] - address of first location in
  //         target memory to be copied to
  //   destination_space [0 - ...] - destination address's target CPU's memory space 
  //              (see DecodeAddressSpace())
  //   count [0 - 0xFFFFFFFF] - number of bytes to copy
  //   verify [true/false] - true = read after write and verify write succeeded
  //                         false = write without verify
Go To Top

CurrentEndian

 
public java.lang.String CurrentEndian()
  // returns currently selected CPU's endian configuration either
  // "BIG" or "LITTLE"
Go To Top

SetEndian

 
public void SetEndian(java.lang.String endian)
  // Set current selected CPU's endian state (if possible)
  //    endian ["BIG"/"LITTLE"] - new cpu endian state
Go To Top

JTAGScanIO

 
public boolean JTAGScanIO(java.lang.String shift_register,
                          int length_in_bits,
                          byte[] data_in,
                          byte[] data_out)
  // Use JTAG to scan the stream of bits contained in <data_in> to the
  // <shift_register> of the currently selected CPU and at the same time collect
  // the bits arriving from the CPU in <data_out> leaving the CPU in
  // "RunTestIdle" state at the end of the operation
  // Returns true if command completed successfully
  //   shift_register ["IR"/"DR"] - destination shift register (IR = JTAG
  //         Instruction register, DR = JTAG Data Register
  //   length_in_bits [1 - ...] number of bits to shift in/out of the CPU
  //   data_in[] - array containing the bits to be shifted into the CPU, in
  //         the format [8,7,6,5,4,3,2,1,0] [15,14,13,12,11,10,9,8] ...
  //         where at the end of the scan operation bit 0 will be the bit
  //         closest to SDO and bit N will be the bit closest to SDI
  //   data_out[] - array containing bit scaned in from CPU in the same format
  //         as data_in, where bit byte 0 bit 0 contains the first bit scanned
  //         in from the CPU
Go To Top

JTAGScanIOState

 
public boolean JTAGScanIOState(java.lang.String shift_register,
                               java.lang.String final_jtag_state,
                               int length_in_bits,
                               byte[] data_in,
                               byte[] data_out)
  // Use JTAG to scan the stream of bits contained in <data_in> to the
  // <shift_register> of the currently selected CPU and at the same time collect
  // the bits arriving from the CPU in <data_out> leaving the CPU in
  // <final_jtag_state> at the end of the operation
  // Returns true if command completed successfully
  //   shift_register ["IR"/"DR"] - destination shift register (IR = JTAG
  //         Instruction register, DR = JTAG Data Register
  //   final_jtag_state ["TestLogicReset","RunTestIdle","PauseDR","PauseIR",
  //                     "ShiftDR","ShiftIR"] - JTAG state CPU will be placed
  //         in at the end of the scan operation
  //   length_in_bits [1 - ...] number of bits to shift in/out of the CPU
  //   data_in[] - array containing the bits to be shifted into the CPU, in
  //         the format [8,7,6,5,4,3,2,1,0] [15,14,13,12,11,10,9,8] ...
  //         where at the end of the scan operation bit 0 will be the bit
  //         closest to SDO and bit N will be the bit closest to SDI
  //   data_out[] - array containing bit scaned in from CPU in the same format
  //         as data_in, where bit byte 0 bit 0 contains the first bit scanned
  //         in from the CPU
Go To Top

DoCommand

 
public boolean DoCommand(byte[] command,
                         byte[] reply)
  //  Perform Macraigor API command, returns true if command completed successfully
  //   command[] - array containing the command stream of bytes to be sent
  //     to the currently selected CPU's template
  //   reply[] - array that will be filled with the command reply.
Go To Top

ErrorText

 
public java.lang.String ErrorText()
  //   Returns a string describing the error that occured during the last
  //   command sent to the target or "" if no error occured
Go To Top

StatusText

 
public java.lang.String StatusText()
  //   Returns a string describing the state of the currently selected CPU
  //   as returned by the last command sent to the CPU. This will be one
  //   of the following :
  //   "InReset" - CPU held in reset
  //   "Halted"  - CPU halted
  //   "Stopped" - CPU stopped (in debug mode)
  //   "Running" - CPU running
  //   "PowerFailed" - CPU / JTAG device not seeing VCC
  //   "CableDisconnected" - JTAG device cannot detect CPU
  //   "CheckStop"
  //   "DataWaiting"
  //   "Monitor"
  //   "NotInitialized" - InitializeTarget has not completed successfully
Go To Top

UsbLed

 
public boolean UsbLed(boolean on)
  //  If the current JTAG device is a Usb2Demon/Usb2Sprite or UsbWiggler
  //  the command turns on/off it's LED
  //  Returns true if command completed successfully
  //   on [true/false] - true = turn LED on, false - turn LED off
Go To Top

UsbDeviceCount

 
public int UsbDeviceCount()
  //  Returns the number of Macraigor USB devices currently connected to
  //  the HOST
Go To Top

SetSpeed

 
public boolean SetSpeed(int JTAG_speed)
  //  Sets the JTAG clock rate of the currently connected JTAG device
  //  Returns true if command completed successfully
  //    jtag_speed [1 - 8] - JTAG clock rate setting. The following table
  //      shows JTAG speed and JTAG clock rate for each device, JTAG clock rates
  //       are in MHZ by default.
  //   Speed     mpDemon   Usb2Demon  Usb2Sprite  Raven    Wiggler
  //                                  UsbWiggler
  //      1      18        24         6           8        380 khz
  //      2       9        12         3           4        200 khz
  //      3       5        8          2           4        140 khz
  //      4     4.5        6          1.5         1        100 khz
  //      5       2        4.8        1.2         500 khz  80 khz
  //      6       1        4          1           125 khz  68 khz
  //      7     500 khz    3.5        850 khz     60 khz   59 khz
  //      8     4.5 khz    74 khz     1 khz       30 khz   4 khz
Go To Top

SetRegisterBufferAddress

 
public boolean SetRegisterBufferAddress(long address)
  // Some CPUs require part of on board RAM to use temporarily while in
  // debug mode. This command tells the template where in target RAM to
  // locate this buffer.
  //  Returns true if command completed successfully
  //    address [0 = 0xFFFFFFFFFFFFFFFF] - target RAM address
Go To Top

DownloadImage

 
public boolean DownloadImage(java.lang.String filename,
                             int address_space,
                             int write_size)
  // DownloadImage() 
  // Download a .elf/.s19/.hex format file into target RAM
  //   filename - string containing the full path and name of file to be 
  //         downloaded into target RAM
  //  address_space - target address space to write to
  //    write_size [1,2,4] - size of write operations to use, 1 always works,
  //    4 is faster.
Go To Top

LoadImageStartsAt

 
public long LoadImageStartsAt(java.lang.String filename)
  // Returns the load image start address of a .elf/.s19/.hex format file or
  // 0xFFFFFFFFFFFFFFFF if the file cannot be read.  
  //    filename - string containing the full path and name of file to be 
  //           downloaded into target RAM
Go To Top

RAMTest

 
public boolean RAMTest(long start_address,
                       int address_space,
                       int size,
                       int byte_count)
  // Performs a simple 55's/aa's RAM test with address lines checking, in 
  // the following manner :
  // 1) writes to each address line (offset + 0,2,4,8, ...) it's power of two
  //    then reads it back. This catches "address stuck at's" and "two 
  //    address lines connected" errors 
  // 2) writes alternating 55's aa's to memory then reads back and verifies
  // 3) writes alternating aa's 55's to memory then reads back and verifyies
  // 4) repeats step 1 so when the test completes memory contains:
  //      1) it's power of two written to each memory offset + 0,2,4 ... address
  //    2) all other memory locations contain alternating 0xAA... 0x55... pattern.
  //   start_address - first RAM address to be tested
  //  address_space - target address space to write to
  //    size [1,2,4,8] - size of write operations to use.
  //  byte_count - the number of bytes following start_address to test
Go To Top