SparkFun Forums 

Where electronics enthusiasts find answers.

Open source ARM Debugger
By fatalfeel
#188614
//in arm cortex a8 a9

/root/project_board/free_imx/myandroid/kernel_imx/drivers/input/keyboard/gpio_keys.c

static void gpio_keys_gpio_timer(unsigned long _data)
{
struct gpio_button_data *bdata = (struct gpio_button_data *)_data;

schedule_work(&bdata->work); //breakpoint here openocd can not continue
}
/////////////
//fixed way
/root/openocd-0.9.0/src/server/gdb_server.c
static char gdb_running_type;
//after gdb_running_type add
static int gdb_rmpacket_times = 0;

in gdb_read_memory_packet(struct connection *connection, char const *packet, int packet_size)
//if ((retval != ERROR_OK) && !gdb_report_data_abort)
//change to
if ( (retval != ERROR_OK && !gdb_report_data_abort) || gdb_rmpacket_times >= 60 )
//above 60 mean error looping happened, you can tune this number (60 ~ 100)

in gdb_input_inner(struct connection *connection)
switch (packet[0])
{
...
}
//after switch case add
if( packet[0] == 'm' )
gdb_rmpacket_times++;
else
gdb_rmpacket_times = 0;

demo:
https://picasaweb.google.com/1061855410 ... 5702289762

//i make patch here
http://www.mediafire.com/download/c3p6c ... 14b.tar.gz