я тогда забил, и больше не попадал. А тут опять. :-) Но вот умные люди показали как принудительно выравнивать. Примерно вотак -
#if defined (__GNUC__) /* GNU Compiler */
#define __ALIGN_END __attribute__ ((aligned (4)))
#define __ALIGN_BEGIN
#else
#define __ALIGN_END
#if defined (__CC_ARM) /* ARM Compiler */
#define __ALIGN_BEGIN __align(4)
#elif defined (__ICCARM__) /* IAR Compiler */
#define __ALIGN_BEGIN
#elif defined (__TASKING__) /* TASKING Compiler */
#define __ALIGN_BEGIN __align(4)
#endif /* __CC_ARM */
#endif /* __GNUC__ */
и потом можно объявлять буфер, с которого пишешь флэшку:
__ALIGN_BEGIN uint8_t BUFDISK[70000] __ALIGN_END = {0};