This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Questions about trampolines


E. Weddington wrote:
Michael N. Moran wrote:

Robert Dewar wrote:

But there must be a way to write stuff into the instruction data
space, or how would you load code? So you just have to setup an
auxiliary stack in code space.


The AVR is an embedded processor, and the instruction space is
is Flash *not* RAM. We're not talking about a system that loads
programs at run-time.

Right. These address spaces are totally seperate. There is no way to run code in the data space (RAM). One can store some data in the program space (Flash), but it requires special instruction sequences to access it.


<http://www.atmel.com/products/avr/>


These devices typically have a "large" amount of Flash ROM (32K-68K bytes), and a smaller amount of RAM (512-2K bytes). Don't hold me to these numbers, but you get the idea.

Code space (Flash): 8K-256K bytes
Data space (SRAM): 512-8K bytes
Non-volatile EEPROM: 256-4K bytes (typically half of SRAM, also requires special instruction sequences to access).

How is a pointer to a nested function any different to a pointer to an un-nested function? Why need trampolines?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]