ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
39593 Топик полностью
энкодер. (21.09.2005 14:06, просмотров: 1) ответил Alex03 на Определение структуры и T0MCRbits в студию!
пжалста 
#define __REG8  unsigned char
#define __REG16 unsigned short
#define __REG32 unsigned long

typedef struct 
  { 
    __REG32 MR0I :1;
    __REG32 MR0R :1;
    __REG32 MR0S :1;

    __REG32 MR1I :1;
    __REG32 MR1R :1;
    __REG32 MR1S :1;
    
    __REG32 MR2I :1;
    __REG32 MR2R :1;
    __REG32 MR2S :1;
    
    __REG32 MR3I :1;
    __REG32 MR3R :1;
    __REG32 MR3S :1;    
    __REG32      :4;    
} __txmcr_bits;

#define T0MCRbits (*(volatile __txmcr_bits *)0xE0004014)
IAR то же самое компилит нормально, использует инструкции загрузки и выгрузки СЛОВА. А gcc, если битовое поле в младшем байте, использует инструкции загрузки выгрузки байта. Кроме того, для регистров переферии, которые в документации филипса определены как 4-байтные (ну например, FIO0DIR и т. п.), код который генерит gcc работает нормально (хотя там тоже используются ldrb и strb)