added error handling to avoid false error messages.
git-svn-id: svn://svn.berlios.de/openocd/trunk@927 b42882b7-edfa-0310-969c-e2dbd0fdcd60__archive__
parent
20feb0431a
commit
d1356149f0
|
@ -262,27 +262,46 @@ int str9x_erase(struct flash_bank_s *bank, int first, int last)
|
||||||
|
|
||||||
for (i = first; i <= last; i++)
|
for (i = first; i <= last; i++)
|
||||||
{
|
{
|
||||||
|
int retval;
|
||||||
adr = bank->base + bank->sectors[i].offset;
|
adr = bank->base + bank->sectors[i].offset;
|
||||||
|
|
||||||
/* erase sectors */
|
/* erase sectors */
|
||||||
target_write_u16(target, adr, erase_cmd);
|
if ((retval=target_write_u16(target, adr, erase_cmd))!=ERROR_OK)
|
||||||
target_write_u16(target, adr, 0xD0);
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
if ((retval=target_write_u16(target, adr, 0xD0))!=ERROR_OK)
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
/* get status */
|
/* get status */
|
||||||
target_write_u16(target, adr, 0x70);
|
if ((retval=target_write_u16(target, adr, 0x70))!=ERROR_OK)
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
target_read_u8(target, adr, &status);
|
if ((retval=target_read_u8(target, adr, &status))!=ERROR_OK)
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
if( status & 0x80 )
|
if( status & 0x80 )
|
||||||
break;
|
break;
|
||||||
usleep(1000);
|
usleep(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* clear status, also clear read array */
|
/* clear status, also clear read array */
|
||||||
target_write_u16(target, adr, 0x50);
|
if ((retval=target_write_u16(target, adr, 0x50))!=ERROR_OK)
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
/* read array command */
|
/* read array command */
|
||||||
target_write_u16(target, adr, 0xFF);
|
if ((retval=target_write_u16(target, adr, 0xFF))!=ERROR_OK)
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
if( status & 0x22 )
|
if( status & 0x22 )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue