Align там не от балды - buffer[] используется для USB хоста - там
должен быть выровненный адрес для аппаратного DMA в LPC17. Align
для структуры - просто мои опыты в попытке разобраться где собака
порылась - в испытанном годами коде его нет. К pragma pack(1) тоже
нет претензий - он в моем коде для Cortex живет десяток лет и
делает свое дело - упаковывает структуру "без дырок". Для того и
добавлен в Keil. Но вот новый "шибко грамотный" компилятор, увидев
int32 в структуре и сдуру реши решивший "оптимизировать", когда ему явно указали тип указателя void* или U8*, косяк компилятора - должен делать то, что от него требуют... Как уже сказал выше, с библиотекой "microLIB" все работает корректно - согласно стандарту.