что то мне говорит, что компилятор все выравнивает по 4 байта
у меня есть структура, описаная примерно так:
CODE
typedef struct {
u8 len; /* Длина пакета без контрольной суммы */
u32 sec;/* Таймер - время первого измерения */
u16 msec;/* миллисекунда первого измерения в пакете */
struct { /* Акселерометр - три координаты ускорений */
u32 acc_x;
u32 acc_y;
u32 acc_z;
} data[20];
u16 crc16;
} acc_pack;
u8 len; /* Длина пакета без контрольной суммы */
u32 sec;/* Таймер - время первого измерения */
u16 msec;/* миллисекунда первого измерения в пакете */
struct { /* Акселерометр - три координаты ускорений */
u32 acc_x;
u32 acc_y;
u32 acc_z;
} data[20];
u16 crc16;
} acc_pack;
не хочет он писать внутрь u16, гадит.
другие подобные структуры, где вперемешку идут u8 u16 u32 так же гадятся.
есть какое нибудь решение для этого компилятора, подобные #pragma pack(1)?