[Top][All Lists]

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

Re: [avr-gcc-list] [discussion] lpm support in avr-gcc

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.


avr-gcc-list at http://avr1.org

reply via email to

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