ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1000436 Топик полностью
Лaгyнoв (30.04.2020 18:17, просмотров: 459) ответил VLLV на Тема выравнивания пошла. Объясните плз, почему в проекте ARM выравнивание происходит по границе 8 байт? 32 бита. Если надо, картинку отладчика положу.
Во! Вот и у меня была проблема, решил ее чужим способом. Как - сам не знаю. Но замечательно работает. Вот чего я такого сделал??? 

Вот у меня в начале.


#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};



И всё хорошо.