|
From: | Bjarne Laursen |
Subject: | Re: [avr-gcc-list] ATMega640/ATMega641/ATMega1280/ATMega1281/ATMega2560/ATMega2561 |
Date: | Tue, 13 Sep 2005 08:59:00 +0200 |
User-agent: | Mozilla Thunderbird 0.7.3 (Windows/20040803) |
Chip Webb wrote:
It seemed as though there were two proposed methods to handle this:1) Align functions (and labels?) to 4-byte boundaries so that gcc can continue to use 16-bit values to represent function pointers. This isn't so different from the method that isalready used for the Mega128. 2) Modify GCC to support longer pointers (PSImode?)
3) Make any function, where the address is put into a pointer, start below 64K, using a jump if neassesary.
Also: If these functions, and any program memory strings could be forced into a memory range like 32K<=adr<64K, it would be possible to determine if a pointer points to ram or flash at runtime. This could be very useful.
I know these things have limits too, like when using more than 32K ram, or more than 32K program memory strings.
[Prev in Thread] | Current Thread | [Next in Thread] |