GDB alive fixes for verify_image

git-svn-id: svn://svn.berlios.de/openocd/trunk@1014 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe 2008-10-03 13:25:33 +00:00
parent aef29d913f
commit 316c9b9698
4 changed files with 220 additions and 192 deletions

View File

@ -1821,6 +1821,8 @@ int arm7_9_read_memory(struct target_s *target, u32 address, u32 size, u32 count
reg[0] = address; reg[0] = address;
arm7_9->write_core_regs(target, 0x1, reg); arm7_9->write_core_regs(target, 0x1, reg);
int j=0;
switch (size) switch (size)
{ {
case 4: case 4:
@ -1848,6 +1850,11 @@ int arm7_9_read_memory(struct target_s *target, u32 address, u32 size, u32 count
/* advance buffer, count number of accesses */ /* advance buffer, count number of accesses */
buffer += thisrun_accesses * 4; buffer += thisrun_accesses * 4;
num_accesses += thisrun_accesses; num_accesses += thisrun_accesses;
if ((j++%1024)==0)
{
keep_alive();
}
} }
break; break;
case 2: case 2:
@ -1876,6 +1883,11 @@ int arm7_9_read_memory(struct target_s *target, u32 address, u32 size, u32 count
/* advance buffer, count number of accesses */ /* advance buffer, count number of accesses */
buffer += thisrun_accesses * 2; buffer += thisrun_accesses * 2;
num_accesses += thisrun_accesses; num_accesses += thisrun_accesses;
if ((j++%1024)==0)
{
keep_alive();
}
} }
break; break;
case 1: case 1:
@ -1904,6 +1916,11 @@ int arm7_9_read_memory(struct target_s *target, u32 address, u32 size, u32 count
/* advance buffer, count number of accesses */ /* advance buffer, count number of accesses */
buffer += thisrun_accesses * 1; buffer += thisrun_accesses * 1;
num_accesses += thisrun_accesses; num_accesses += thisrun_accesses;
if ((j++%1024)==0)
{
keep_alive();
}
} }
break; break;
default: default:

View File

@ -5,6 +5,9 @@
* Copyright (C) 2008 by Spencer Oliver * * Copyright (C) 2008 by Spencer Oliver *
* spen@spen-soft.co.uk * * spen@spen-soft.co.uk *
* * * *
* Copyright (C) 2008 by Oyvind Harboe *
* oyvind.harboe@zylin.com *
* *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by * * it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or * * the Free Software Foundation; either version 2 of the License, or *

View File

@ -1022,6 +1022,10 @@ int image_calculate_checksum(u8* buffer, u32 nbytes, u32* checksum)
{ {
/* as per gdb */ /* as per gdb */
crc = (crc << 8) ^ crc32_table[((crc >> 24) ^ *buffer++) & 255]; crc = (crc << 8) ^ crc32_table[((crc >> 24) ^ *buffer++) & 255];
if ((nbytes%16384)==0)
{
keep_alive();
}
} }
*checksum = crc; *checksum = crc;

View File

@ -2285,6 +2285,10 @@ int handle_verify_image_command(struct command_context_s *cmd_ctx, char *cmd, ch
retval=ERROR_FAIL; retval=ERROR_FAIL;
goto done; goto done;
} }
if ((t%16384)==0)
{
keep_alive();
}
} }
} }