Improved (for humans) error reporting for flash programming errors.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1456 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
699d246b1c
commit
ba4e2c43fb
|
@ -565,8 +565,16 @@ int stm32x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 co
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buf_get_u32(reg_params[3].value, 0, 32) & 0x14)
|
if (buf_get_u32(reg_params[3].value, 0, 32) & FLASH_PGERR)
|
||||||
{
|
{
|
||||||
|
LOG_ERROR("flash memory not erased before writing");
|
||||||
|
retval = ERROR_FLASH_OPERATION_FAILED;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buf_get_u32(reg_params[3].value, 0, 32) & FLASH_WRPRTERR)
|
||||||
|
{
|
||||||
|
LOG_ERROR("flash memory write protected");
|
||||||
retval = ERROR_FLASH_OPERATION_FAILED;
|
retval = ERROR_FLASH_OPERATION_FAILED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -647,9 +655,15 @@ int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
|
||||||
status = stm32x_wait_status_busy(bank, 5);
|
status = stm32x_wait_status_busy(bank, 5);
|
||||||
|
|
||||||
if( status & FLASH_WRPRTERR )
|
if( status & FLASH_WRPRTERR )
|
||||||
|
{
|
||||||
|
LOG_ERROR("flash memory not erased before writing");
|
||||||
return ERROR_FLASH_OPERATION_FAILED;
|
return ERROR_FLASH_OPERATION_FAILED;
|
||||||
|
}
|
||||||
if( status & FLASH_PGERR )
|
if( status & FLASH_PGERR )
|
||||||
|
{
|
||||||
|
LOG_ERROR("flash memory write protected");
|
||||||
return ERROR_FLASH_OPERATION_FAILED;
|
return ERROR_FLASH_OPERATION_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
bytes_written += 2;
|
bytes_written += 2;
|
||||||
words_remaining--;
|
words_remaining--;
|
||||||
|
@ -674,9 +688,15 @@ int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
|
||||||
status = stm32x_wait_status_busy(bank, 5);
|
status = stm32x_wait_status_busy(bank, 5);
|
||||||
|
|
||||||
if( status & FLASH_WRPRTERR )
|
if( status & FLASH_WRPRTERR )
|
||||||
|
{
|
||||||
|
LOG_ERROR("flash memory not erased before writing");
|
||||||
return ERROR_FLASH_OPERATION_FAILED;
|
return ERROR_FLASH_OPERATION_FAILED;
|
||||||
|
}
|
||||||
if( status & FLASH_PGERR )
|
if( status & FLASH_PGERR )
|
||||||
|
{
|
||||||
|
LOG_ERROR("flash memory write protected");
|
||||||
return ERROR_FLASH_OPERATION_FAILED;
|
return ERROR_FLASH_OPERATION_FAILED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target_write_u32(target, STM32_FLASH_CR, FLASH_LOCK);
|
target_write_u32(target, STM32_FLASH_CR, FLASH_LOCK);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user