Hi Chun Yeow,
I just tried to reproduce your issue with RTcfg. As I do not have a
target to test yet, I tried a synthetic test first, see below. What
output does compiling that code with your compiler? I tried both with
some TimeSys toolchain and latest from CodeSourcery. The former fails on
Gilles' pattern, the latter passes all tests without complaints.
Jan
PS: Will now try to integrate your AT91 driver _really_ soon :) - once
I have a full build environment (kernel, Xenomai, RTnet) running.
--
typedef unsigned char u8;
typedef unsigned short u16;
#define __BIG_ENDIAN_BITFIELD
struct rtcfg_frm_head {
#if defined(__LITTLE_ENDIAN_BITFIELD)
u8 id:5,
version:3;
#elif defined(__BIG_ENDIAN_BITFIELD)
u8 version:3,
id:5;
#else
#error unsupported byte order
#endif
} __attribute__((packed));
struct rtcfg_frm_announce {
struct rtcfg_frm_head head;
u8 addr_type;
u8 addr[0];
u8 flags;
u8 burstrate;
} __attribute__((packed));
struct rtcfg_frm_announce2 {
struct rtcfg_frm_head head;
u8 addr_type;
u8 flags;
u8 burstrate;
} __attribute__((packed));
struct rtcfg_frm_stage_1_cfg {
struct rtcfg_frm_head head;
u8 addr_type;
u8 client_addr[0];
u8 server_addr[0];
u8 burstrate;
u16 cfg_len;
u8 cfg_data[0];
} __attribute__((packed));
struct rtcfg_frm_stage_1_cfg2 {
struct rtcfg_frm_head head;
u8 addr_type;
u8 burstrate;
u16 cfg_len;
} __attribute__((packed));
struct foo {
struct a {
char b;
} /*__attribute__((packed))*/ c;
char d;
short e;
} __attribute__((packed));
struct bar {
char a;
} __attribute__((packed));
struct qux {
struct bar b;
char c;
short d;
} __attribute__((packed));
int main()
{
char c[1 - 2 *(sizeof(struct rtcfg_frm_announce) - sizeof(struct
rtcfg_frm_announce2))];
char d[1 - 2 *(sizeof(struct rtcfg_frm_stage_1_cfg) - sizeof(struct
rtcfg_frm_stage_1_cfg2))];
char e[1 - 2 *(sizeof(struct foo) - sizeof(struct qux))];
c[0] = 0;
d[0] = 0;
e[0] = 0;
return 0;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
RTnet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rtnet-users