Como impor a ordem de bits struct com o compilador GC
Eu queria saber se existe uma diretiva do GCC C Compiler que permita determinar a ordem de bits para o empacotamento de uma estrutura? Algo para pessoas como:
#pragma bit_order left
A justificativa para essa necessidade é que eu tenho a seguinte estrutura:
struct {
union {
unsigned char BYTE;
struct {
unsigned char B0: 1;
unsigned char B1: 1;
unsigned char B2: 1;
unsigned char B3: 1;
unsigned char B4: 4;
}BIT;
}ITEM;
} myStruct;
Com essa estrutura, eu gostaria que o compilador o empacotasse desta maneira:
Bit order: | 7 6 5 4 3 2 1 0 |
Label: |B0 B1 B2 B3 B4 B5 B6 B7 |
Em vez de como o GCC faz:
Bit order: | 7 6 5 4 3 2 1 0 |
Label: |B7 B6 B5 B4 B3 B2 B1 B0 |
Estou lidando com MCUs que possuem enormes arquivos de cabeçalho e estruturas que calculam compensações de bits de acordo com os endereços de hardware estipulados. Espero que exista uma diretiva de compilador no GCC C Compiler que faça a troca de ordem de bits para mim antes de tentar inverter todos os campos no arquivo fornecido pelo fabricant