- the jtag chain is examined and validated after GDB & telnet servers
are up and running. The examination and validation is actually "optional" from the point of view of GDB + telnet servers. Multiple targets should work fine with this. - jtag_speed is dropped(divisor is increased), if jtag examination and validation fails. - the chain is validated 10x to catch the worst jtag_speed offences - added LOG_SILENT that can be used to shut up log. Feeble ersatz for try+catch. - GDB register packets are now always replied in order to make sure that GDB connect works. If the target is not halted, then these packets contain dummy values. git-svn-id: svn://svn.berlios.de/openocd/trunk@483 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
@@ -1040,12 +1040,6 @@ int arm11_get_gdb_reg_list(struct target_s *target, struct reg_s **reg_list[], i
|
||||
|
||||
arm11_common_t * arm11 = target->arch_info;
|
||||
|
||||
if (target->state != TARGET_HALTED)
|
||||
{
|
||||
WARNING("target was not halted");
|
||||
return ERROR_TARGET_NOT_HALTED;
|
||||
}
|
||||
|
||||
*reg_list_size = ARM11_GDB_REGISTER_COUNT;
|
||||
*reg_list = malloc(sizeof(reg_t*) * ARM11_GDB_REGISTER_COUNT);
|
||||
|
||||
|
||||
@@ -474,12 +474,6 @@ int armv4_5_get_gdb_reg_list(target_t *target, reg_t **reg_list[], int *reg_list
|
||||
armv4_5_common_t *armv4_5 = target->arch_info;
|
||||
int i;
|
||||
|
||||
if (target->state != TARGET_HALTED)
|
||||
{
|
||||
ERROR("Target not halted");
|
||||
return ERROR_TARGET_NOT_HALTED;
|
||||
}
|
||||
|
||||
*reg_list_size = 26;
|
||||
*reg_list = malloc(sizeof(reg_t*) * (*reg_list_size));
|
||||
|
||||
|
||||
@@ -321,12 +321,6 @@ int armv7m_get_gdb_reg_list(target_t *target, reg_t **reg_list[], int *reg_list_
|
||||
armv7m_common_t *armv7m = target->arch_info;
|
||||
int i;
|
||||
|
||||
if (target->state != TARGET_HALTED)
|
||||
{
|
||||
ERROR("Target not halted");
|
||||
return ERROR_TARGET_NOT_HALTED;
|
||||
}
|
||||
|
||||
*reg_list_size = 26;
|
||||
*reg_list = malloc(sizeof(reg_t*) * (*reg_list_size));
|
||||
|
||||
|
||||
@@ -127,7 +127,15 @@ typedef struct target_type_s
|
||||
int (*soft_reset_halt)(struct target_s *target);
|
||||
int (*prepare_reset_halt)(struct target_s *target);
|
||||
|
||||
/* target register access for gdb */
|
||||
/* target register access for gdb.
|
||||
*
|
||||
* Danger! this function will succeed even if the target is running
|
||||
* and return a register list with dummy values.
|
||||
*
|
||||
* The reason is that GDB connection will fail without a valid register
|
||||
* list, however it is after GDB is connected that monitor commands can
|
||||
* be run to properly initialize the target
|
||||
*/
|
||||
int (*get_gdb_reg_list)(struct target_s *target, struct reg_s **reg_list[], int *reg_list_size);
|
||||
|
||||
/* target memory access
|
||||
|
||||
Reference in New Issue
Block a user