|
From: | Svein E. Seldal |
Subject: | Re: [avr-gcc-list] [discussion] lpm support in avr-gcc |
Date: | Fri, 30 Aug 2002 10:44:06 +0200 |
User-agent: | Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1b) Gecko/20020721 |
Denis Chertykov wrote:
IMHO: It's impossible for avr port without changes in generic GCC. So, It's a question to GCC maintainers. Even Linus has asked about something like this.
Is there applied any pressure to get this feature implemented? I mean, if this is a crucial feature that lacks in gcc, shouldn't it be implemented? Is really absolutely all gcc targets using non-harvard architecture? I know that this problem has been solved by placing eeprom and data memory using very high addresses, but this can't be a optimal solution in the long rung, can it?
For avr-gcc this lack of feature imposes several implications on the code compiled by avr-gcc:
o Strings cannot be placed in flash without declaring its storeage first. I.e. const static PROGMEM string[] = ...
o Duplicate strings implemented with PSTR() is not optimized away (merged) because they are declared as static.
o Multidimensional stucts and information in flash is very cumbersome. Examples: stuct containing a const string or stuct containing pointers to other const structs (all stored in flash).
o The _LPM command is volatile and cant be optimized away o When accessing flash you *always* need to cast the pointer -> unsafe.I'm not trying to be critical, but I'm trying to throw in arguments to be able to apply pressure on this issue.
Svein avr-gcc-list at http://avr1.org
[Prev in Thread] | Current Thread | [Next in Thread] |