added 1000ms timeout
git-svn-id: svn://svn.berlios.de/openocd/trunk@970 b42882b7-edfa-0310-969c-e2dbd0fdcd60__archive__
parent
f5507d8929
commit
e5181df1d4
|
@ -306,7 +306,8 @@ int str9x_erase(struct flash_bank_s *bank, int first, int last)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (1) {
|
int i;
|
||||||
|
for (i=0; i<1000; i++) {
|
||||||
if ((retval=target_read_u8(target, adr, &status))!=ERROR_OK)
|
if ((retval=target_read_u8(target, adr, &status))!=ERROR_OK)
|
||||||
{
|
{
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -315,6 +316,11 @@ int str9x_erase(struct flash_bank_s *bank, int first, int last)
|
||||||
break;
|
break;
|
||||||
alive_sleep(1);
|
alive_sleep(1);
|
||||||
}
|
}
|
||||||
|
if (i==1000)
|
||||||
|
{
|
||||||
|
LOG_ERROR("erase timed out");
|
||||||
|
return ERROR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
/* clear status, also clear read array */
|
/* clear status, also clear read array */
|
||||||
if ((retval=target_write_u16(target, adr, 0x50))!=ERROR_OK)
|
if ((retval=target_write_u16(target, adr, 0x50))!=ERROR_OK)
|
||||||
|
@ -572,12 +578,19 @@ int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
|
||||||
/* get status command */
|
/* get status command */
|
||||||
target_write_u16(target, bank_adr, 0x70);
|
target_write_u16(target, bank_adr, 0x70);
|
||||||
|
|
||||||
while (1) {
|
int i;
|
||||||
|
for (i=0; i<1000; i++)
|
||||||
|
{
|
||||||
target_read_u8(target, bank_adr, &status);
|
target_read_u8(target, bank_adr, &status);
|
||||||
if( status & 0x80 )
|
if( status & 0x80 )
|
||||||
break;
|
break;
|
||||||
alive_sleep(1);
|
alive_sleep(1);
|
||||||
}
|
}
|
||||||
|
if (i==1000)
|
||||||
|
{
|
||||||
|
LOG_ERROR("write timed out");
|
||||||
|
return ERROR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
/* clear status reg and read array */
|
/* clear status reg and read array */
|
||||||
target_write_u16(target, bank_adr, 0x50);
|
target_write_u16(target, bank_adr, 0x50);
|
||||||
|
@ -614,12 +627,19 @@ int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
|
||||||
/* query status command */
|
/* query status command */
|
||||||
target_write_u16(target, bank_adr, 0x70);
|
target_write_u16(target, bank_adr, 0x70);
|
||||||
|
|
||||||
while (1) {
|
int i;
|
||||||
|
for (i=0; i<1000; i++)
|
||||||
|
{
|
||||||
target_read_u8(target, bank_adr, &status);
|
target_read_u8(target, bank_adr, &status);
|
||||||
if( status & 0x80 )
|
if( status & 0x80 )
|
||||||
break;
|
break;
|
||||||
alive_sleep(1);
|
alive_sleep(1);
|
||||||
}
|
}
|
||||||
|
if (i==1000)
|
||||||
|
{
|
||||||
|
LOG_ERROR("write timed out");
|
||||||
|
return ERROR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
/* clear status reg and read array */
|
/* clear status reg and read array */
|
||||||
target_write_u16(target, bank_adr, 0x50);
|
target_write_u16(target, bank_adr, 0x50);
|
||||||
|
|
Loading…
Reference in New Issue