avr-libc-dev
[Top][All Lists]
Advanced

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

[avr-libc-dev] [patch #6352] Far pointer library


From: Georg-Johann Lay
Subject: [avr-libc-dev] [patch #6352] Far pointer library
Date: Mon, 26 Sep 2011 20:43:32 +0000
User-agent: Opera/9.80 (Windows NT 5.0; U; de) Presto/2.6.30 Version/10.63

Follow-up Comment #8, patch #6352 (project avr-libc):

> They don't use the ELPM instruction rather, incorrectly,
> the LPM instruction.

The very problem is that AVR with > 64k flash is a segmented architecture and
it's not easy to handle them correctly.

For example, ELPM Z+ might change RAMPZ so that this instruction is not of
much use.

The root problem is the ABI and that it does not disallow crossing section
boundaries, i.e. 64k boundaries.  No data must cross such boundaries and if
ELPM Z+ shall be used to get efficient code (users like
small/fast/low-ISR-overhead code) the last byte of each segment must be kept
free.

Any other approach will lead to very inefficent code and/or strage artifacts.

The alternative is to take away RAMPZ from the compiler altogether and let the
user set it appropriately, but the fact that crossing section boundaries does
not work smooth won't go away with it, either.


    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/patch/?6352>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.nongnu.org/




reply via email to

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