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