zuuuuk 0 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба Доброе утро. У меня есть arm LPC2106. Я новичок. Подскажите как выровнять структуры по 1 байту. struct as { char tm; int tmp; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба А компилятор есть? :-) Какой? гулить pragma pack attribute aligned, packed Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Antonov 0 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба В keil я делаю так: #pragma pack(push, 1) struct as { char tm; int tmp; } #pragma pack(pop) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zuuuuk 0 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба компилятор WinARM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба WinARM это GCC, следовательно например вот так typedef struct { char tm; int tmp; }__attribute__ ((packed)) _t_as_; _t_as_ as; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр С 0 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба Еще можно так : #pragma pack(push, 1) struct S { unsigned char a; void *p; unsigned char b; } #pragma pack(pop) Это даёт транслятору команду запомнить текущие параметры упаковки и и переопределить на побайтную, а после, восстановить что были до того. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба Еще можно так :WinARM это настолько древний gcc, что не знал еще такой прагмы и молча игнорировал ее. Появилась она совсем недавно. А автору вопроса можно заодно посоветовать заменить компилятор из WinARM на более современную версию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба WinARM это настолько древний gcc, что не знал еще такой прагмы и молча игнорировал ее. Появилась она совсем недавно. А автору вопроса можно заодно посоветовать заменить компилятор из WinARM на более современную версию. Launchpad потдерживает только Cortex. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба Launchpad потдерживает только Cortex.Правда? Я, пока вы не сказали, его и для Cortex и для ARM7TDMI использовал. И программы работают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба Правда? Я, пока вы не сказали, его и для Cortex и для ARM7TDMI использовал. И программы работают. Наверное я не правильно понял содержимое следующего топика https://answers.launchpad.net/gcc-arm-embed...question/193998 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться