Macraigor Systems has a published API (APplication Interface) that works with C++ and/or 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 entire API is shown below, or you can download the .pdf version.

Method Type Method Interface

BOOLEAN_TYPE

MacraigorApi_AnalyzeJtagScanChain(unsigned int JTAG_speed)

BOOLEAN_TYPE

MacraigorApi_BreakpointMatchesThisAddress(UINT64 address,unsigned int *bkpt_number_ptr, BOOLEAN_TYPE *is_software_bkpt_ptr)

BOOLEAN_TYPE

MacraigorApi_ClearHardwareBreakpoint(unsigned int number)

BOOLEAN_TYPE

MacraigorApi_ClearSoftwareBreakpoint(unsigned int number)

BOOLEAN_TYPE

MacraigorAPi_ConnectDeviceType(unsigned char *device_ptr, UINT64*silicon_id_ptr, unsigned int*hardware_flags_ptr, unsigned char *eeprom_flags_ptr)

Char *

MacraigorApi_CurrentEndian(void)

 Unsigned int

MacraigorApi_DecodeAddressSpace(char *address_space_name)

BOOLEAN_TYPE

MacraigorApi_DownloadImage(char *filename, unsigned int address_space, unsigned int write_size)

Char *

MacraigorApi_ErrorText()

BOOLEAN_TYPE

MacraigorApi_FillMemory(UINT64 start_address, UINT64 value, unsigned int count, unsigned int size,BOOLEAN_TYPE verify, unsigned int space)

Unsigned int

MacraigorApi_GetActiveDevice(void)

Unsigned int

MacraigorApi_GetCpuSize(void)

unsigned int

MacraigorApi_GetHardwareBreakpoints(BREAKPOINT_ADDRESS_LIST_TYPE *bkpt_addresses)

 Char *

MacraigorApi_GetProgramCounterName(void)

Unsigned int

MacraigorApi_GetSoftwareBreakpoints(BREAKPOINT_ADDRESS_LIST_TYPE *bkpt_addresses)

BOOLEAN_TYPE

MacraigorApi_GetStatus(void)

BOOLEAN_TYPE

MacraigorApi_InitializeTarget(unsigned int JTAG_speed,
unsigned int target_count,TARGET_NAME_LIST_TYPE *targets)

BOOLEAN_TYPE

MacraigorApi_GetMacraigorVersion(unsigned short *api_release_version_ptr,unsigned short
*target_template_version_ptr,unsigned short *jtag_driver_version_ptr,unsigned short *hardware_version_ptr );

Unsinged int

MacraigorApi_JtagScanChainDeviceCount(void)

 Unsigned int

MacraigorApi_JtagScanChainIRLength(void)

 Unsigned int

MacraigorApi_JtagScanChainJtagID(unsigned int scan_chain_position)

 BOOLEAN_TYPE

MacraigorApi_JTAGScanIO(char *shift_register,unsigned int length_in_bits,MEMORY_BUFFER_TYPE *data_in_ptr,MEMORY_BUFFER_TYPE *data_out_ptr)

 BOOLEAN_TYPE

MacraigorApi_JTAGScanIOState( char*shift_register,
char*final_jtag_state, unsigned intlength_in_bits, MEMORY_BUFFER_TYPE*data_in_ptr, MEMORY_BUFFER_TYPE*data_out_ptr)

 BOOLEAN_TYPE

MacraigorApi_MoveMemory(UINT64source_address, unsigned intsource_space, UINT64destination_address, unsigned intdestination_space, unsigned intcount, BOOLEAN_TYPEverify)

 BOOLEAN_TYPE

MacraigorApi_RAMTest(UINT64start_address, unsigned intaddress_space, unsigned intsize, unsigned intbyte_count)

 BOOLEAN_TYPE

MacraigorApi_ReadCpuStateRegisters(REGISTER_VALUE_LIST_TYPE *reg_list_ptr)

 BOOLEAN_TYPE

MacraigorApi_ReadGeneralPurposeRegisters(REGISTER_VALUE_LIST_TYPE *reg_list_ptr)

 BOOLEAN_TYPE

MacraigorApi_ReadMemory(UINT64 start_address, unsigned int size, unsigned int space, unsigned int count, MEMORY_BUFFER_TYPE *memory_ptr)

 BOOLEAN_TYPE

MacraigorApi_ReadRegister(char *start_register_name,unsigned intcount,REGISTER_VALUE_LIST_TYPE *register_list_ptr)

 BOOLEAN_TYPE

MacraigorApi_ResetHaltTarget(void)

 BOOLEAN_TYPE

MacraigorApi_ResetRunTarget(void)

 BOOLEAN_TYPE

MacraigorApi_RunTargetFromAddress(UNINT64 address)

 BOOLEAN_TYPE

MacraigorApi_RunTargetFromPC()

 BOOLEAN_TYPE

MacraigorApi_SetActiveDevice(unsigned int target_number)

 BOOLEAN_TYPE

MacraigorApi_SetConnection(char *dev, char *addr)

 void

MacraigorApi_SetEndian(char *endian)

 BOOLEAN_TYPE

MacraigorApi_SetHardwareBreakpoint(unsigned int number, UINT64 address)

 BOOLEAN_TYPE

MacraigorApi_SetJtagDeviceInfo(unsigned int target_number, unsigned int IR_length, unsigned int bypass_instruction, unsigned int bypass_length)

 BOOLEAN_TYPE

MacraigorApi_SetRegisterBufferAddress(UINT64 address)

 BOOLEAN_TYPE

MacraigorApi_SetSoftwareBreakpoint(unsigned int number, unsigned int space, UINT64 address)

 BOOLEAN_TYPE

MacraigorApi_SetSpeed(unsigned int JTAG_speed)

 BOOLEAN_TYPE

MacraigorApi_SingleStep(unsigned int number_of_steps, UINT64 target_data)

char *

MacraigorApi_StatusText(void)

 BOOLEAN_TYPE

MacraigorApi_StopTarget(void)

 BOOLEAN_TYPE

MacraigorApi_SynchronizeMultipleCommands(unsigned char *cmd, unsigned int target_count, unsigned char target_list[])

 BOOLEAN_TYPE

MacraigorApi_TerminateTarget(void)

 unsigned int

MacraigorApi_UsbDeviceCount(void)

 BOOLEAN_TYPE

MacraigorApi_UsbLed(BOOLEAN_TYPE on)

 BOOLEAN_TYPE

MacraigorApi_WriteMemory(UINT64start_address, unsigned intsize, unsigned intspace, BOOLEAN_TYPEverify, unsigned intcount, MEMORY_BUFFER_TYPE *memory_ptr)

 BOOLEAN_TYPE

MacraigorApi_WriteRegister(char*start_register_name, unsigned intcount, REGISTER_VALUE_LIST_TYPE *register_list_ptr)

MacraigorApi_SetConnection

SetConnection
Go To Top


MacraigorApi_AnalyzeJtagScanChain

Analyze
Go To Top


MacraigorApi_JtagScanChainDeviceCount

jtagscanchaindevicecount
Go To Top


MacraigorApi_JtagScanChainJtagID

jtagscanchainjtagid
Go To Top


MacraigorApi_JtagScanChainIRLength

jtagscanchainirlength
Go To Top


MacraigorApi_InitializeTarget

intializetarget

Go To Top


MacraigorApi_GetMacraigorVersion

GetMacraigorVersion

Go To Top


MacraigorApi_SetJtagDeviceInfo

setJtagDeviceInfo

Go To Top


MacraigorApi_GetCpuSize

GetCPUSize

Go To Top


MacraigorApi_GetStatus

GetStatus

Go To Top


MacraigorApi_GetActiveDevice

GetActiveDevice

Go To Top


MacraigorApi_GetProgramCounterName

GetProgramCounterName

Go To Top


MacraigorApi_TerminateTarget

TerminateTarget

Go To Top


MacraigorApi_ConnectDeviceType

ConnectDeviceType

Go To Top


MacraigorApi_RunTargetFromPC

RunTargetFromPC

Go To Top


MacraigorApi_RunTargetFromAddress

RunTargetFromAddress

Go To Top


MacraigorApi_StopTarget

StopTarget

Go To Top


MacraigorApi_SynchronizeMultipleCommands

SynchronizeMultipleCommands

Go To Top


MacraigorApi_ResetRunTarget

ResetRunTarget

Go To Top


MacraigorApi_ResetHaltTargetResetHaltTarget

Go To Top


MacraigorApi_SingleStep

SingleStep

Go To Top


MacraigorApi_SetSoftwareBreakpoint

SetSoftwareBreakpoint
Go To Top


MacraigorApi_ClearSoftwareBreakpoint

ClearSoftwareBreakpoint

Go To Top


MacraigorApi_GetSoftwareBreakpoints

getsoftwarebreakpoints

Go To Top


MacraigorApi_SetHardwareBreakpoint

sethardwarebreakpoint

Go To Top


MacraigorApi_ClearHardwareBreakpoint

clearHardwareBreakpoint

Go To Top


MacraigorApi_GetHardwareBreakpoints

getHardwareBreakpoint

Go To Top


MacraigorApi_BreakpointMatchesThisAddress

breakpointMatchesThisAddress

Go To Top


MacraigorApi_ReadRegister

ReadRegister

Go To Top


MacraigorApi_WriteRegister

WriteRegister

Go To Top


MacraigorApi_ReadGeneralPurposeRegisters

ReadGPRs
Go To Top


MacragiorApi_ReadCpuStateRegisters

ReadCPUStateRegisters

Go To Top


MacraigorApi_DecodeAddressSpace

DecodeAddressSpace

Go To Top


MacraigorApi_ReadMemory

ReadMemory

Go To Top


MacragiorApi_SetActiveDevice

SetActiveDevice

Go To Top


MacraigorApi_WriteMemory

WriteMemory

Go To Top


MacraigorApi_FillMemory

FillMemory
Go To Top


MacraigorApi_MoveMemory

MoveMemory

Go To Top


MacraigorApi_CurrentEndian

currentEndian

Go To Top


MacraigorApi_SetEndian

SetEndian

Go To Top


MacraigorApi_JtagScanIO

JTAGScanIO

Go To Top


MacraigorApi_JTAGScanIOState

JTAGScanIOState

Go To Top


MacraigorApi_ErrorText

ErrorText

Go To Top


MacraigorApi_StatusText

StatusText

Go To Top


MacraigorApi_UsbLed

USBLed

Go To Top


MacraigorApi_UsbDeviceCount

usbDeviceCount

Go To Top


MacraigorApi_SetSpeed

SetSpeed

Go To Top


MacraigorApi_SetRegisterBufferAddress

SetRegisterBufferAddress
Go To Top


MacraigorApi_DownloadImage

DownloadImage

Go To Top


MacraigorApi_RAMTest

ramTest

Go To Top

You can also download the .pdf version.