📄 adp.h
字号:
* 'type' is the type of the resource.
*/
#define ADP_Ctrl_SemiHosting_SetState ADPSUBREASON(CI_HADP,4)
/* ADP_Ctrl_SemiHosting_SetState
* -----------------------------
* Summary: Sets whether or not semi-hosting is enabled.
*
* Arguments:
* Send: (word semihostingstate)
* Return: (word status)
*
* 'semihostingstate' sets semi-hosting to enabled if zero, otherwise
* it disables semi-hosting.
* 'status' is RDIError_NoError to indicate success, non-zero otherwise.
*
* NOTE: This should only be called if ADP_Info_SemiHosting didn't return
* an error.
*/
#define ADP_Ctrl_SemiHosting_GetState ADPSUBREASON(CI_HADP,5)
/* ADP_Ctrl_SemiHosting_GetState
* -----------------------------
* Summary: Reads whether or not semi-hosting is enabled.
*
* Arguments:
* Send: ()
* Return: (word status, word semihostingstate)
*
* 'status' is RDIError_NoError to indicate success, non-zero otherwise.
* 'semihostingstate' is zero if semi-hosting is enabled, non-zero otherwise.
*
* NOTE: This should only be called if ADP_Info_SemiHosting didn't return
* an error.
*/
#define ADP_Ctrl_SemiHosting_SetVector ADPSUBREASON(CI_HADP,6)
/* ADP_Ctrl_SemiHosting_SetVector
* ------------------------------
* Summary: Sets the semi-hosting vector.
*
* Arguments:
* Send: (word semihostingvector)
* Return: (word status)
*
* 'semihostingvector' holds the value the vector is to be set to.
* 'status' is RDIError_NoError to indicate success, non-zero otherwise.
*
* NOTE: This should only be called if ADP_Info_SemiHosting didn't return
* an error.
*/
#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. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -