如何解决联合/结构 (ARM) - 内存空间分配
早上好,
我正在尝试创建这种样式的日期结构:
//结构体1
union{
struct{
union{
struct{
bool interrupt_receive;
bool fifo_mode;
bool enable;
bool bits_14_mode;
bool int_source_readed;
bool void6;
bool void7;
bool void8;
};
unsigned char registro;
}REG_CTRL_FLG;
union{
struct{
unsigned int REG_CTRL_TIMEH;
unsigned int REG_CTRL_TIMEL;
};
unsigned short REG_CTRL_TIME;
};
unsigned int threshold; //Para pruebas pendiente de eliminar
//AXIS_STRUCT data_axis;
//AXIS_EXTEND_STRUCT data_full_axis;
}registros_acelerometro;
unsigned int registro[3];
}ACELEROMETRO;
//结构体2
typedef union{
struct{
unsigned char dlc_0;
union{
struct{
unsigned char p15:1;
unsigned char p14:1;
unsigned char p13:1;
unsigned char p12:1;
unsigned char p11:1;
unsigned char p10:1;
unsigned char p9:1;
unsigned char p8:1;
unsigned char p7:1;
unsigned char p6:1;
unsigned char p5:1;
unsigned char p4:1;
unsigned char p3:1;
unsigned char p2:1;
unsigned char p1:1;
unsigned char p0:1;
};
unsigned short p;
}pulsadores;
union{
struct{
unsigned char lb0:1;
unsigned char lb1:1;
unsigned char ls0:1;
unsigned char ls1:1;
unsigned char iluminacion:1;
unsigned char completo:1;
unsigned char sobrecarga:1;
unsigned char void7:1;
}registro_cabina;
unsigned char estado_cabina;
};
unsigned char dlc_4;
}registros_can_data;
unsigned char can_data[5];
}TRESA_PULS;
struct 1,我用过 STM32F7、ARM Compiler 6.11 和 Keil MDK 5.21,没有任何问题,但是我在 struct 2 中使用的配置却给我带来了一些问题
包含 int 结构的联合,似乎需要额外的内存空间才能工作,这会扭曲结构。
我一直在想,但我没有发现错误
你知道有什么变化吗? 是否有应该使用的预处理顺序? 你们中有人发生过吗? 你看到什么问题了吗?
感谢您的帮助和时间。 亲切的问候。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。