Всем доброго времени суток! Столкнулся с абсолютно дурацкой проблемой: мне необходимо, чтобы одна из структур в моей программе была выровнена по границе слова. Вроде все просто и понятно: ставлю атрибут гнутого __attribute__((aligned(2))), все вроде заработало. Потом добавил байтовую переменную, программа рушится. Сначала я не понял "юмора", затем полез в map-файл и обнаружил, что хоть атрибут и стоит, а структура лежит по нечетному адресу!!! Пробовал ставить и после объявления, и после struct и в описании типа. Пробовал вариант __attribute__((__aligned__(2))) Все одинаково. Atmel Studio 6.0.1938 SP1. AVR GCC 3.4.065 AVR Toolchain 8 bit 3.4.0.663 - GCC 4.6.2 Возможно, кто-то сталкивался и смог решить проблему. Я пока положил пустую волатайловскую переменную впереди, все работает, но это бред со самой своей сути. Заранее благодарен за любую помощь!
|