Hard fault at misaligned memcpy memset
Already posted this on Keil Website, it was tested with STM32F100, therefore:
we made some simple tests with STM32F100 Value Line Eval Board:
//------------------------------------------------------------------------------
// Variables static unsigned char sDstBuf[1024]; // 1KiB static unsigned char sSrcBuf[sizeof(sDstBuf)];printf(''Copying words from misaligned src to aligned dst buffer... '');
memset(sDstBuf, 0xcd, sizeof(sDstBuf));with optimize Level 3, optimize for time this takes
120usecwith optimize Level 0
155usecalmost the same if memcpy is used:
memcpy(sDstBuf, (const void *)0xcd, sizeof(sDstBuf));It runs into hard fault, if optimize Level >=1 and optimise for time is not set.
I think this is a compiler error..
We ran into this before with MDK 4.60, now we use 4.70A
Werner
#cross-post #memcpy