avr-chat
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [avr-chat] Strange struct problem


From: Larry Barello
Subject: RE: [avr-chat] Strange struct problem
Date: Thu, 8 Dec 2005 17:23:54 -0800

Oh, I forgot to add: if automatics cannot fit into registers they go onto a
stack frame...  Some might assume all automatics go onto the frame but GCC
doesn't.  

Cheers!

-----------
Larry Barello
www.barello.net


| -----Original Message-----
| From: address@hidden [mailto:avr-chat-
| address@hidden On Behalf Of Larry Barello
| Sent: Thursday, December 08, 2005 5:06 PM
| To: address@hidden; address@hidden
| Subject: RE: [avr-chat] Strange struct problem
| 
| You are declaring the data as automatic.  GCC is very clever and puts
| automatic variables into registers unless you either a) take an address of
| them, b) declare too many (or too big) or c) set optimization low.
| 
| I ran across this with a boot loader I was writing.  I wanted to save a 24
| bit address in a struct (rampz + address) and the resulting code was
| seriously broken (actually, the compiler would crash).  In short, your
| automatic variables that are structs or unions need to fit into one of the
| normal sizes: byte, word, long, or double long.
| 
| When they do fit, spectacular code will be generated.
| 
| -----------
| Larry Barello
| www.barello.net
| 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]