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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.