📄 adp.h
字号:
#define ADP_Ctrl_SemiHosting_GetVector ADPSUBREASON(CI_HADP,7)/* ADP_Ctrl_SemiHosting_GetVector * ------------------------------ * Summary: Gets the value of the semi-hosting vector. * * Arguments: * Send: () * Return: (word status, word semihostingvector) * * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * 'semihostingvector' holds the value of the vector. * * NOTE: This should only be called if ADP_Info_SemiHosting didn't return * an error. */#define ADP_Ctrl_Log ADPSUBREASON(CI_HADP,8)/* ADP_Ctrl_Log * ------------ * Summary: Returns the logging state. * * Arguments: * Send: () * Return: (word status, word logsetting) * * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * 'logsetting' is a bitmap specifying the level of logging desired, * described in more detail below. The bits can be ORed together *//* 'logsetting':- *//* No logging. */#define ADP_Ctrl_Log_NoLogging (0)/* RDI level logging. */#define ADP_Ctrl_Log_RDI (1 << 0)/* ADP byte level logging. */#define ADP_Ctrl_Log_ADP (1 << 1)#define ADP_Ctrl_SetLog ADPSUBREASON(CI_HADP,9)/* ADP_Ctrl_SetLog * --------------- * Summary: Sets the logging state. * * Arguments: * Send: (word logsetting) * Return: (word status) * * 'logsetting' is the same as in ADP_Ctrl_Log above. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. */#define ADP_Ctrl_SemiHosting_SetARMSWI ADPSUBREASON(CI_HADP,10)/* ADP_Ctrl_SemiHosting_SetARMSWI * ------------------------------ * Summary: Sets the number of the ARM SWI used for semihosting * * Arguments: * Send: (word ARM_SWI_number) * Return: (word status) * * The debug agent will interpret ARM SWI's with the SWI number specified * as semihosting SWI's. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * * NOTE: This should only be called if ADP_Info_ChangeableSHSWI didn't return * an error. */#define ADP_Ctrl_SemiHosting_GetARMSWI ADPSUBREASON(CI_HADP,11)/* ADP_Ctrl_SemiHosting_GetARMSWI * ------------------------------ * Summary: Reads the number of the ARM SWI used for semihosting * * Arguments: * Send: () * Return: (word status, word ARM_SWI_number) * * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * ARM_SWI_number is the SWI number which is used for semihosting. * * NOTE: This should only be called if ADP_Info_SemiHosting didn't return * an error. */#define ADP_Ctrl_SemiHosting_SetThumbSWI ADPSUBREASON(CI_HADP,12)/* ADP_Ctrl_SemiHosting_SetThumbSWI * -------------------------------- * Summary: Sets the number of the Thumb SWI used for semihosting * * Arguments: * Send: (word Thumb_SWI_number) * Return: (word status) * * The debug agent will interpret Thumb SWI's with the SWI number specified * as semihosting SWI's. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * * NOTE: This should only be called if ADP_Info_ChangeableSHSWI didn't return * an error. */#define ADP_Ctrl_SemiHosting_GetThumbSWI ADPSUBREASON(CI_HADP,13)/* ADP_Ctrl_SemiHosting_GetThumbSWI * -------------------------------- * Summary: Reads the number of the Thumb SWI used for semihosting * * Arguments: * Send: () * Return: (word status, word ARM_Thumb_number) * * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * Thumb_SWI_number is the SWI number which is used for semihosting. * * NOTE: This should only be called if ADP_Info_SemiHosting didn't return * an error. */#define ADP_Ctrl_Download_Supported ADPSUBREASON(CI_HADP,14)/* ADP_Ctrl_Download_Supported * --------------------------- * Summary: Can configuration be downloaded? * * Arguments: * Send: () * Return: (word status) * * 'status' is RDIError_NoError if the configuration can be downloaded, * non-zero otherwise. * * NOTE: Equivalent to RDIInfo_DownLoad. */#define ADP_Ctrl_Download_Data ADPSUBREASON(CI_HADP,15)/* ADP_Ctrl_Download_Data * ---------------------- * Summary: Loads configuration data. * * Arguments: * Send: (word nbytes, words data) * Return: (word status) * * 'nbytes' is the number of *bytes* being sent. * 'data' is the configuration data. NOTE: data must not cause the buffer * size to exceed the maximum allowed buffer size. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * * NOTE: Equivalent to RDP_LoadConfigData. Should only be used if * ADP_ICEM_AddConfig didn't return an error. */#define ADP_Ctrl_Download_Agent ADPSUBREASON(CI_HADP,16)/* ADP_Ctrl_Download_Agent * ----------------------- * Summary: Prepares Debug Agent to receive configuration data which it * should interpret as a new version of the Debug Agent code. * * Arguments: * Send: (word loadaddress, word size) * Return: (word status) * * 'loadaddress' is the address where the new Debug Agent code should be * loaded. * 'size' is the number of bytes of Debug Agent code to be loaded. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * * NOTE: Equivalent to RDP_LoadAgent. The data will be downloaded using * ADP_Ctrl_Download_Data. The new agent is started with ADP_Ctrl_Start_Agent */#define ADP_Ctrl_Start_Agent ADPSUBREASON(CI_HADP,17)/* ADP_Ctrl_Start_Agent * ----------------------- * Summary: Instruct Debug Agent to begin execution of new agent, * which has been downloaded by ADP_Ctrl_Download_Agent. * * Arguments: * Send: (word startaddress) * Return: (word status) * * 'startaddress' is the address where the new Debug Agent code should be * entered, and must satisfy: * (loadaddress <= startaddress <= (loadaddress + size)) * where 'loadaddress' and 'size' were specified in the * ADP_Ctrl_Download_Agent message. * * 'status' is RDIError_NoError to indicate success, non-zero otherwise. */#define ADP_Ctrl_SetTopMem ADPSUBREASON(CI_HADP,18)/* ADP_Ctrl_SetTopMem * ------------------ * Summary: Sets the top of memory for ICEman2 systems, so that the C Library * can allocate the stack in the correct place on startup. * * Arguments: * Send: (word mem_top) * Return: (word status) * * This request should only be supported by ICEman2. Standard Angel systems * should return an error (unrecognised is fine). */#define ADP_Read ADPREASON(CI_HADP,3)#define ADP_ReadHeaderSize (ADP_DEFAULT_HEADER_SIZE + 2*sizeof(word))/* ADP_Read * -------- * Summary: Request for a transer of memory contents from the target to the * debugger. * * Arguments: * Send: (word address, word nbytes) * Return: (word status, word rnbytes [, bytes data]) * * 'address' is the address from which memory transer should start. * 'nbytes' is the number of bytes to transfer. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * 'rnbytes' holds the number of requested bytes NOT read (i.e. zero * indicates success, non-zero indicates an error). * 'data' is the number of bytes requested minus 'rnbytes'. */#define ADP_Write ADPREASON(CI_HADP,4)#define ADP_WriteHeaderSize (ADP_DEFAULT_HEADER_SIZE + 2*sizeof(word))/* ADP_Write * --------- * Summary: Request for a transfer of memory contents from the debugger to * the target. * * Arguments: * Send: (word address, word nbytes, bytes data) * Return: (word status [, word rnbytes]) * * 'address' is the address from which memory transer should start. * 'nbytes' is the number of bytes to transfer. * 'data' holds the bytes to be transferred. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * 'rnbytes' holds the number of requested bytes NOT written (i.e. zero * indicates success, non-zero indicates an error) if status indicated an * error. */#define ADP_CPUread ADPREASON(CI_HADP,5)/* ADP_CPUread * ----------- * Summary: This is a request to read values in the CPU. * * Arguments: * Send: (byte mode, word mask) * Return: (word status, words data) * * 'mode' defines the processor mode from which the transfer should be made. * It is described in more detail below. * 'mask' indicates which registers should be transferred. Setting a bit to * one will cause the designated register to be transferred. The details * of mask are specified below. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * 'data' holds the values of the registers on successful completion, * otherwise it just holds rubbish. The lowest numbered register is * transferred first. NOTE: data must not cause the buffer size to exceed * the maximum allowed buffer size. *//* 'mode':- *//* The mode number is the same as the mode number used by an ARM; a value of 255 indicates the current mode. */#define ADP_CPUmode_Current (255)/* 26bit user mode. */#define ADP_CPUread_26bitUser (0x0)/* 26bit FIQ mode. */#define ADP_CPUread_26bitFIQ (0x1)/* 26bit IRQ mode. */#define ADP_CPUread_26bitIRQ (0x2)/* 26bit Supervisor mode. */#define ADP_CPUread_26bitSVC (0x3)/* 32bit user mode. */#define ADP_CPUread_32bitUser (0x10)/* 32bit FIQ mode. */#define ADP_CPUread_32bitFIQ (0x11)/* 32bit IRQ mode. */#define ADP_CPUread_32bitIRQ (0x12)/* 32bit Supervisor mode. */#define ADP_CPUread_32bitSVC (0x13)/* 32bit Abort mode. */#define ADP_CPUread_32bitAbort (0x17)/* 32bit Undefined mode. */#define ADP_CPUread_32bitUndef (0x1B)/* #32bit System mode - Added in Architecture 4 ARMs e.g.ARM7TDMI */#define ADP_CPUread_32bitSystem (0x1F)/* 'mask':- *//* Request registers RO-R14. */#define ADP_CPUread_RegsMask (0x7FFF)/* Request Program Counter (including mode and flag bits in 26-bit modes. */#define ADP_CPUread_PCmode (1 << 15)/* Request Program Counter (without mode and flag bits in 26-bit modes. */#define ADP_CPUread_PCnomode (1 << 16)/* Requests the transfer of the CPSR */#define ADP_CPUread_CPSR (1 << 17)/* In processor modes with an SPSR(non-user modes), bit 19 requests its transfer */#define ADP_CPUread_SPSR (1 << 18)#define ADP_CPUwrite ADPREASON(CI_HADP,6)/* ADP_CPUwrite * ------------ * Summary: This is a request to write values to the CPU. * * Arguments: * Send: (byte mode, word mask, words data) * Return: (word status) * * 'mode' defines the processor mode to which the transfer should be made. * The mode number is the same as the mode number used by ARM; a value of * 255 indicates the current mode. See ADP_CPUread above for more detail. * 'mask' indicates which registers should be transferred. Setting a bit to * one will cause the designated register to be transferred. The details * of mask are specified above in ADP_CPUread. * 'data' holds the values of the registers to be transferred. The first * value is written to the lowest numbered register. NOTE: data must not * cause the buffer size to exceed the maximum allowed buffer size. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. */#define ADP_CPread ADPREASON(CI_HADP,7)/* ADP_CPread * ---------- * Summary: This message requests a co-processors internal state. * * Arguments: * Send: (byte CPnum, word mask) * Return: (word status, words data) * * 'CPnum' is the number of the co-processor to transfer values from. * 'mask' specifies which registers to transfer and is co-processor * specific. * 'status' is RDIError_NoError to indicate success, non-zero otherwise. * 'data' holds the registers specified in 'mask' if successful, otherwise * just rubbish. The lowest numbered register is transferred first. * NOTE: data must not cause the buffer size to exceed the maximum allowed * buffer size. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -