Во! Вот и у меня была проблема, решил ее чужим способом. Как - сам
не знаю. Но замечательно работает. Вот чего я такого сделал??? Вот у меня в начале.
#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[33000] __ALIGN_END = {0};
И всё хорошо.