[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/
- [avr-libc-dev] [patch #6352] Far pointer library,
Georg-Johann Lay <=