X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=simavr%2Fsim%2Fsim_gdb.c;h=455c56ee82e24e2f8d2af13b279e0fab83a68dbb;hb=7cad6f9b651144cbb3a5c1bd75cbf2ae75cf513d;hp=4b699bf3d347b94d27d86f928d1f841e503c081c;hpb=69b8d265acdd5d01114b2444bc2aa177e00a9c91;p=simavr diff --git a/simavr/sim/sim_gdb.c b/simavr/sim/sim_gdb.c index 4b699bf..455c56e 100644 --- a/simavr/sim/sim_gdb.c +++ b/simavr/sim/sim_gdb.c @@ -45,7 +45,7 @@ typedef struct avr_gdb_t { uint32_t watchmap; struct { - uint32_t pc; + avr_flashaddr_t pc; uint32_t len; int kind; } watch[32]; @@ -78,7 +78,7 @@ static void gdb_send_quick_status(avr_gdb_t * g, uint8_t signal) gdb_send_reply(g, cmd); } -static int gdb_change_breakpoint(avr_gdb_t * g, int set, int kind, uint32_t addr, uint32_t len) +static int gdb_change_breakpoint(avr_gdb_t * g, int set, int kind, avr_flashaddr_t addr, uint32_t len) { DBG(printf("set %d kind %d addr %08x len %d (map %08x)\n", set, kind, addr, len, g->watchmap);) if (set) { @@ -193,10 +193,11 @@ static void gdb_handle_command(avr_gdb_t * g, char * cmd) gdb_send_reply(g, "OK"); } break; case 'm': { // read memory - uint32_t addr, len; + avr_flashaddr_t addr; + uint32_t len; sscanf(cmd, "%x,%x", &addr, &len); uint8_t * src = NULL; - if (addr < 0xffff) { + if (addr < avr->flashend) { src = avr->flash + addr; } else if (addr >= 0x800000 && (addr - 0x800000) <= avr->ramend) { src = avr->data + addr - 0x800000;