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
MacraigorApi_AnalyzeJtagScanChain
MacraigorApi_JtagScanChainDeviceCount
MacraigorApi_JtagScanChainJtagID
MacraigorApi_JtagScanChainIRLength
MacraigorApi_InitializeTarget
MacraigorApi_GetMacraigorVersion
MacraigorApi_SetJtagDeviceInfo
MacraigorApi_GetCpuSize
MacraigorApi_GetStatus
MacraigorApi_GetActiveDevice
MacraigorApi_GetProgramCounterName
MacraigorApi_TerminateTarget
MacraigorApi_ConnectDeviceType
MacraigorApi_RunTargetFromPC
MacraigorApi_RunTargetFromAddress
MacraigorApi_StopTarget
MacraigorApi_SynchronizeMultipleCommands
MacraigorApi_ResetRunTarget
MacraigorApi_ResetHaltTarget
MacraigorApi_SingleStep
MacraigorApi_SetSoftwareBreakpoint
MacraigorApi_ClearSoftwareBreakpoint
MacraigorApi_GetSoftwareBreakpoints
MacraigorApi_SetHardwareBreakpoint
MacraigorApi_ClearHardwareBreakpoint
MacraigorApi_GetHardwareBreakpoints
MacraigorApi_BreakpointMatchesThisAddress
MacraigorApi_ReadRegister
MacraigorApi_WriteRegister
MacraigorApi_ReadGeneralPurposeRegisters
MacragiorApi_ReadCpuStateRegisters
MacraigorApi_DecodeAddressSpace
MacraigorApi_ReadMemory
MacragiorApi_SetActiveDevice
MacraigorApi_WriteMemory
MacraigorApi_FillMemory
MacraigorApi_MoveMemory
MacraigorApi_CurrentEndian
MacraigorApi_SetEndian
MacraigorApi_JtagScanIO
MacraigorApi_JTAGScanIOState
MacraigorApi_ErrorText
MacraigorApi_StatusText
MacraigorApi_UsbLed
MacraigorApi_UsbDeviceCount
MacraigorApi_SetSpeed
MacraigorApi_SetRegisterBufferAddress
MacraigorApi_DownloadImage
MacraigorApi_RAMTest
You can also download the .pdf version.