[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] Struct problem
From: |
Eric Fu |
Subject: |
Re: [avr-gcc-list] Struct problem |
Date: |
Sat, 31 Jan 2004 13:51:55 +1100 |
Thanks for the tip.
The buffers need to be Global, since it needs to be accessible in different
modules. My understanding is that malloc is for allocating dynamic memory.
Anyway, I will read my C book for clue. Thanks for pointing the direction.
Eric Fu
----- Original Message -----
From: "Brian Cuthie" <address@hidden>
To: "'Eric Fu'" <address@hidden>; <address@hidden>
Sent: Saturday, January 31, 2004 12:22 PM
Subject: RE: [avr-gcc-list] Struct problem
>
> The problem, quite simply, is that because the size of TxBuf[] isn't
> specified, the offset within the struct to RxBuf[] can't be computed at
> compile time (which it needs to be).
>
> To do what you want you'll need to change the struct so that instead of
> arrays, TxBuf and RxBuf are pointers. Then malloc the memory you need and
> store the addresses in TxBuf and RxBuf respectively.
>
> You might want to re-read a few chapters in your C book.
>
> -brian
>
> > -----Original Message-----
> > From: address@hidden
> > [mailto:address@hidden On Behalf Of Eric Fu
> > Sent: Friday, January 30, 2004 8:05 PM
> > To: address@hidden
> > Subject: [avr-gcc-list] Struct problem
> >
> > Hi All,
> >
> > I'm trying to declare a Structure for UART, so that it can be
> > used for more than one UARTs such as:
> > typedef struct UART
> > {
> > volatile byte RxHead;
> > volatile byte RxTail;
> > volatile byte TxHead;
> > volatile byte TxTail;
> > byte TxBuf[],RxBuf[];
> > }UART;
> > extern UART uart0;
> > extern UART uart1;
> >
> > By doing this way, I can assign different buffer size to
> > different UART such as:
> > byte uart0.RxBuf[RX_BUFFER_SIZE0];
> > byte uart0.TxBuf[RX_BUFFER_SIZE0];
> > byte uart1.RxBuf[RX_BUFFER_SIZE1];
> > byte uart1.TxBuf[RX_BUFFER_SIZE1];
> >
> > However, I get the following compile error:
> > UART.h:47: error: flexible array member not at end of struct
> >
> > Could anyone give me a hint on How to tell the compiler to do this?
> > Thanks
> >
> > Eric Fu
> > _______________________________________________
> > avr-gcc-list mailing list
> > address@hidden
> > http://www.avr1.org/mailman/listinfo/avr-gcc-list
> >
>
>