Yeoh Chun Yeow wrote: > Hi, Jan > > I have compiled using CodeSourcery compiler and no compilation errors.
Then could you provide me the changes you applied in order to make RTcfg
working in form of a patch? I still don't understand the problem. But
the best would be if you could abstract the issue from the RTcfg code -
if you have the time to work this out.
Jan
>
> Regards,
> Chun Yeow
>
> On 10/13/07, Jan Kiszka <[EMAIL PROTECTED]> wrote:
>> 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;
>> }
>>
>>
>
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------- 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

