Fix stm32x and pic32mx flash pointer cast alignment warnings, simplify their last word handling.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1626 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
zwelch
2009-05-07 00:21:59 +00:00
parent a3b6236289
commit fdf114ab0a
2 changed files with 17 additions and 27 deletions

View File

@@ -658,8 +658,11 @@ static int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 c
while (words_remaining > 0)
{
u16 value;
memcpy(&value, buffer + bytes_written, sizeof(u16));
target_write_u32(target, STM32_FLASH_CR, FLASH_PG);
target_write_u16(target, address, *(u16*)(buffer + bytes_written));
target_write_u16(target, address, value);
status = stm32x_wait_status_busy(bank, 5);
@@ -681,18 +684,11 @@ static int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 c
if (bytes_remaining)
{
u8 last_halfword[2] = {0xff, 0xff};
int i = 0;
while(bytes_remaining > 0)
{
last_halfword[i++] = *(buffer + bytes_written);
bytes_remaining--;
bytes_written++;
}
u16 value = 0xffff;
memcpy(&value, buffer + bytes_written, bytes_remaining);
target_write_u32(target, STM32_FLASH_CR, FLASH_PG);
target_write_u16(target, address, *(u16*)last_halfword);
target_write_u16(target, address, value);
status = stm32x_wait_status_busy(bank, 5);