Questions about trampolines

Russell Shaw rjshaw@netspace.net.au
Tue Mar 15 03:55:00 GMT 2005


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?



More information about the Gcc mailing list