mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #7176 from KariHaapalehto/data_aligment
Fix data aligment problem at STM32F4 hash writepull/6962/head
commit
89876311ae
|
@ -223,12 +223,14 @@ static void HASH_DMAError(DMA_HandleTypeDef *hdma)
|
||||||
static void HASH_WriteData(uint8_t *pInBuffer, uint32_t Size)
|
static void HASH_WriteData(uint8_t *pInBuffer, uint32_t Size)
|
||||||
{
|
{
|
||||||
uint32_t buffercounter;
|
uint32_t buffercounter;
|
||||||
uint32_t inputaddr = (uint32_t) pInBuffer;
|
|
||||||
|
|
||||||
for(buffercounter = 0U; buffercounter < Size; buffercounter+=4)
|
for(buffercounter = 0U; buffercounter < Size; buffercounter+=4)
|
||||||
{
|
{
|
||||||
HASH->DIN = *(uint32_t*)inputaddr;
|
uint32_t data = (uint32_t) *pInBuffer++;
|
||||||
inputaddr+=4U;
|
data |= (uint32_t) *pInBuffer++ << 8;
|
||||||
|
data |= (uint32_t) *pInBuffer++ << 16;
|
||||||
|
data |= (uint32_t) *pInBuffer++ << 24;
|
||||||
|
HASH->DIN = data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -137,12 +137,14 @@ static void HASHEx_DMAError(DMA_HandleTypeDef *hdma);
|
||||||
static void HASHEx_WriteData(uint8_t *pInBuffer, uint32_t Size)
|
static void HASHEx_WriteData(uint8_t *pInBuffer, uint32_t Size)
|
||||||
{
|
{
|
||||||
uint32_t buffercounter;
|
uint32_t buffercounter;
|
||||||
uint32_t inputaddr = (uint32_t) pInBuffer;
|
|
||||||
|
|
||||||
for(buffercounter = 0U; buffercounter < Size; buffercounter+=4U)
|
for(buffercounter = 0U; buffercounter < Size; buffercounter+=4U)
|
||||||
{
|
{
|
||||||
HASH->DIN = *(uint32_t*)inputaddr;
|
uint32_t data = (uint32_t) *pInBuffer++;
|
||||||
inputaddr+=4U;
|
data |= (uint32_t) *pInBuffer++ << 8;
|
||||||
|
data |= (uint32_t) *pInBuffer++ << 16;
|
||||||
|
data |= (uint32_t) *pInBuffer++ << 24;
|
||||||
|
HASH->DIN = data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue