Re: Align attribute in gcc requiring alignment of 2 for Xmegas with USB.
"Weddington, Eric" <[email protected]>
| Newsgroups | gmane.comp.hardware.avr.gcc |
|---|---|
| Message-ID | <F4ADC872C7AFBE49A9CEDE5C75191C2740555018@dvrmbx01> |
> -----Original Message----- > From: [email protected] > [mailto:[email protected]] On > Behalf Of Thomas, George > Sent: Monday, November 19, 2012 4:32 AM > To: [email protected] > Subject: [avr-gcc-list] Align attribute in gcc requiring alignment of 2 for > Xmegas with USB. > > Section 20.13.7 of the Xmega manual speaks about the requirement of 16 bit > alignment. > > http://www.atmel.com/images/doc8331.pdf > > As the MAXIMUM_ALIGNMENT in avr.h is set to 1, it throws an error when > trying to compile. > > I have attached a patch which sets it to 2 by default in the compiler. > I have also attached a case which fails. > > Would this be an acceptable change ? Hi George, No, this would not be an acceptable change, because it is changing the data alignment for the whole compiler, when there is only a restriction on a data structure for a single peripheral for a small subset of the AVR processors. This is why the data attribute "aligned" exists. Just do this for your data structure: __attribute__ ((aligned (2))) Eric