今天分析的是RDDI_DAP_GetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)
和RDDI_DAP_SetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)
这两个函数。
以RDDI_DAP_GetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)
为例,代码如下:
// RDDI-DAP Get ARM Registers
// regs : Pointer to ARM Registers
// rfpu : Pointer to FPU Registers
// mask : Register Mask
// return value: error status
int RDDI_DAP_GetARMRegs (DWORD *regs, DWORD *rfpu, ULONG64 mask) {
int status;
int regID [3*64];
int regData[3*64];
int i, n, m;
DWORD val;
if (rddiHandle == NULL) return (RDDI_DAP_ERROR_INTERNAL);
if (mask == 0) return (RDDI_DAP_ERROR_INTERNAL);
// Match Retry = 100
regID[0] = DAP_REG_MATCH_RETRY;
regData[0] = 100;
// Match Mask = 0x00010000
regID[1] = DAP_REG_MATCH_MASK;
regData[1] =