Есть многопроцесорная система. Часть кода написана в IAR. Часть кода надо написать на WinAVR. Имеется несколько заголовочных файлов, описывающие нечто общее для всей системы, например структуры, которыми идет обмен по системной шине. Поскольку в системе используются и ARM и AVR приходится использовать упакованные структуры. Но этим двум компиляторам требуется описывать упаковку по-разному. Итого имеем:
Код
IAR:
#pragma pack (push,1)
struct tmp_t
{
uint8_t A;
uint16_t B;
};
#pragma pack (pop)
WinAVR:
struct tmp_t
{
uint8_t A;
uint16_t B;
}__attribute__((__packed__, __aligned__ (1)));
или
struct tmp_t __attribute__((__packed__, __aligned__ (1)));
struct tmp_t
{
uint8_t A;
uint16_t B;
};
Кто нибудь знает каким образом можно это объединить?