jt_arm7.c File Reference

#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include "dbg_msg.h"
#include "arm_emu.h"
#include "jt_arm.h"
#include "jt_mmu.h"
#include "jt_instr.h"

Functions


Detailed Description

ARM7TDMI Interface
The ARM7TDMI core uses scan chain 1 with a wide of 33 bits to send instructions and exchange data values to the debug unit.


Function Documentation

void jtag_arm7_ReadCpuRegs ( int  reset_inst_counter,
int  status 
)
void jtag_arm7_WriteCpuRegs ( void   ) 

Write back the stored CPU register to the ARM core.
(This function is used for test only.)

Parameters:
- 
Returns:
-

References ARM_LDMIA, ARM_NOP, CPU, DEBUG_REPEAT_SPEED, DEBUG_SPEED, jtag_arm7_mov_chain1_data(), reg_set::Regs::r, reg_set::regs, transactionActivate(), transactionCreate(), transactionErase(), transactionExecute(), transactionGet(), transactionPenting(), transaction::uplevel, and WRITE_ONLY.

Referenced by jtag_arm_WriteCpuRegs().

void jtag_arm7_PrepareExitDebug ( void   ) 

Write back the stored CPU register to the ARM core and restart execution to continue the current program.

-- note on exit we messed up the PC so we can't access the Memory within the debug state.
But we can correct this next time we read out the CPU register

Parameters:
- 
Returns:
-

References ARM_BX_R0, ARM_LD_R0_PC, ARM_LDMIA, ARM_MSR_CPSR_R0, ARM_NOP, reg_set::CPSR, CPU, CPU_CPSR_FLAG_THUMB, DEBUG_REPEAT_SPEED, DEBUG_SPEED, jtag_arm7_mov_chain1_data(), reg_set::Regs::r, reg_set::regs, RESTART_SPEED, SYSTEM_SPEED, THUMB_LD_R0_PC, THUMB_NOP, transactionActivate(), transactionCreate(), transactionErase(), transactionExecute(), transactionGet(), transactionPenting(), transaction::uplevel, and WRITE_ONLY.

Referenced by jtag_arm_PrepareExitDebug().

void jtag_arm7_Step ( uint32_t  next_instr  ) 
void jtag_arm7_ResynchStep ( void   ) 
void jtag_arm7_ReadWordMemory ( uint32_t  address,
int  howmanywords,
uint32_t *  buf 
)

Read out word memory into the given buffer.


Max read speed : 19 Kbytes/sec

Parameters:
address target machine address (memory at ARM side)
howmanywords number of words to read
buf pointer to destination read buffer (memory at server side)
Returns:
-

References ARM_LD_R0_PC, ARM_LDMIA, ARM_LDMIA_UPDATE, ARM_NOP, ARM_STMIA, DBG_LEVEL_GDB_ARM_INFO, dbgPrintf(), DEBUG_REPEAT_SPEED, DEBUG_SPEED, jtag_arm7_mov_chain1_data(), jtag_arm_chain1_sysspeed_restart(), transaction::parameter, READ_WRITE, SYSTEM_SPEED, transactionActivate(), transactionCreate(), transactionErase(), transactionExecute(), transactionGet(), transaction::uplevel, and WRITE_ONLY.

Referenced by jtag_arm_ReadWordMemory().

uint32_t jtag_arm7_ReadWord ( uint32_t  address  ) 
uint32_t jtag_arm7_ReadHalfword ( uint32_t  address  ) 
uint32_t jtag_arm7_ReadByte ( uint32_t  address  ) 
void jtag_arm7_WriteWord ( uint32_t  address,
uint32_t  value 
)

32-bit memory write

Parameters:
address target machine address (memory at ARM side)
value 32 bit value to write
Returns:
-

References ARM_LDMIA, ARM_NOP, ARM_STMDA, DEBUG_REPEAT_SPEED, DEBUG_SPEED, jtag_arm7_mov_chain1_data(), jtag_arm_chain1_sysspeed_restart(), SYSTEM_SPEED, transactionActivate(), transactionCreate(), transactionErase(), transactionGet(), transaction::uplevel, and WRITE_ONLY.

Referenced by jtag_arm_WriteWord().

void jtag_arm7_WriteHalfword ( uint32_t  address,
uint16_t  value 
)

16-bit memory write

Parameters:
address target machine address (memory at ARM side)
value 16 bit value to write
Returns:
-

References ARM_LDMIA, ARM_NOP, ARM_STRH, DEBUG_REPEAT_SPEED, DEBUG_SPEED, jtag_arm7_mov_chain1_data(), jtag_arm_chain1_sysspeed_restart(), SYSTEM_SPEED, transactionActivate(), transactionCreate(), transactionErase(), transactionGet(), transaction::uplevel, and WRITE_ONLY.

Referenced by jtag_arm_WriteHalfword().

void jtag_arm7_WriteByte ( uint32_t  address,
uint16_t  value 
)

8-bit memory write

Parameters:
address target machine address (memory at ARM side)
value 8 bit value to write
Returns:
-

References ARM_LDMIA, ARM_NOP, ARM_STRB, DEBUG_REPEAT_SPEED, DEBUG_SPEED, jtag_arm7_mov_chain1_data(), jtag_arm_chain1_sysspeed_restart(), SYSTEM_SPEED, transactionActivate(), transactionCreate(), transactionErase(), transactionGet(), transaction::uplevel, and WRITE_ONLY.

Referenced by jtag_arm_WriteByte().

void jtag_arm7_WriteMemoryBuf ( uint32_t  address,
int  howmanywords,
uint32_t *  buf 
)

Write back word memory from the given buffer.

Parameters:
address target machine address (memory at ARM side)
howmanywords number of words to read
buf pointer to source write buffer (memory at server side)
Returns:
-

References ARM_LDMIA, ARM_NOP, ARM_STMIA, DEBUG_REPEAT_SPEED, DEBUG_SPEED, jtag_arm7_mov_chain1_data(), jtag_arm_chain1_sysspeed_restart(), SYSTEM_SPEED, transactionActivate(), transactionCreate(), transactionErase(), transactionGet(), transaction::uplevel, and WRITE_ONLY.

Referenced by jtag_arm_WriteMemoryBuf().

void jtag_arm7_RunProgram ( uint32_t  address  ) 

This file is part of the documentation for JTAG-GDB Server for ARM .

Generated on Mon Feb 15 21:23:21 2010 by doxygen 1.6.2.