diff --git a/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash.c b/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash.c index 54a9446ee0..168699d8e0 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash.c +++ b/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash.c @@ -223,12 +223,14 @@ static void HASH_DMAError(DMA_HandleTypeDef *hdma) static void HASH_WriteData(uint8_t *pInBuffer, uint32_t Size) { uint32_t buffercounter; - uint32_t inputaddr = (uint32_t) pInBuffer; for(buffercounter = 0U; buffercounter < Size; buffercounter+=4) { - HASH->DIN = *(uint32_t*)inputaddr; - inputaddr+=4U; + uint32_t data = (uint32_t) *pInBuffer++; + data |= (uint32_t) *pInBuffer++ << 8; + data |= (uint32_t) *pInBuffer++ << 16; + data |= (uint32_t) *pInBuffer++ << 24; + HASH->DIN = data; } } diff --git a/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash_ex.c b/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash_ex.c index 4d882315e8..19eb7cbe50 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash_ex.c +++ b/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_hash_ex.c @@ -137,12 +137,14 @@ static void HASHEx_DMAError(DMA_HandleTypeDef *hdma); static void HASHEx_WriteData(uint8_t *pInBuffer, uint32_t Size) { uint32_t buffercounter; - uint32_t inputaddr = (uint32_t) pInBuffer; for(buffercounter = 0U; buffercounter < Size; buffercounter+=4U) { - HASH->DIN = *(uint32_t*)inputaddr; - inputaddr+=4U; + uint32_t data = (uint32_t) *pInBuffer++; + data |= (uint32_t) *pInBuffer++ << 8; + data |= (uint32_t) *pInBuffer++ << 16; + data |= (uint32_t) *pInBuffer++ << 24; + HASH->DIN = data; } }