[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-libc-commit] [2147] bug #28921: pointer to function > 128k flash
From: |
Joerg Wunsch |
Subject: |
[avr-libc-commit] [2147] bug #28921: pointer to function > 128k flash |
Date: |
Wed, 09 Jun 2010 09:58:27 +0000 |
Revision: 2147
http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2147
Author: joerg_wunsch
Date: 2010-06-09 09:58:26 +0000 (Wed, 09 Jun 2010)
Log Message:
-----------
bug #28921: pointer to function > 128k flash
* doc/api/faq.dox (faq_funcptr_gt128kib): Add entry describing
that -mrelax is needed for the trampolines to work as designed.
Ticket Links:
:-----------
http://savannah.gnu.org/bugs/?28921
Modified Paths:
--------------
trunk/avr-libc/ChangeLog
trunk/avr-libc/NEWS
trunk/avr-libc/doc/api/faq.dox
Modified: trunk/avr-libc/ChangeLog
===================================================================
--- trunk/avr-libc/ChangeLog 2010-06-09 06:38:54 UTC (rev 2146)
+++ trunk/avr-libc/ChangeLog 2010-06-09 09:58:26 UTC (rev 2147)
@@ -1,5 +1,11 @@
2010-06-09 Joerg Wunsch <address@hidden>
+ bug #28921: pointer to function > 128k flash
+ * doc/api/faq.dox (faq_funcptr_gt128kib): Add entry describing
+ that -mrelax is needed for the trampolines to work as designed.
+
+2010-06-09 Joerg Wunsch <address@hidden>
+
Submitted by Don Kinzer:
bug #30018: Errors in include files
* include/avr/iotn40.h: Fix stray characters in macro names.
Modified: trunk/avr-libc/NEWS
===================================================================
--- trunk/avr-libc/NEWS 2010-06-09 06:38:54 UTC (rev 2146)
+++ trunk/avr-libc/NEWS 2010-06-09 09:58:26 UTC (rev 2147)
@@ -116,6 +116,7 @@
[#28627] power.h ATMEGA32U2 clock_prescale_set() not available
[#28901] Xmega header files with missing definitions for GPIO_t and CPU_t
[#28574] Xmega D ADC struct missing registers
+ [#28921] pointer to function > 128k flash
[#29950] ATtiny167 SPM_PAGESIZE Discrepancy
[#30018] Errors in include files
[#30085] memcpy_P on XMega does not clr NVM.CMD before copy
Modified: trunk/avr-libc/doc/api/faq.dox
===================================================================
--- trunk/avr-libc/doc/api/faq.dox 2010-06-09 06:38:54 UTC (rev 2146)
+++ trunk/avr-libc/doc/api/faq.dox 2010-06-09 09:58:26 UTC (rev 2147)
@@ -68,6 +68,7 @@
-# \ref faq_reentrant
-# \ref faq_eeprom_corruption
-# \ref faq_wrong_baud_rate
+-# \ref faq_funcptr_gt128kib
\section faq_volatile My program doesn't recognize a variable updated within
an interrupt routine
@@ -1682,4 +1683,18 @@
<small>Back to \ref faq_index.</small>
+\section faq_funcptr_gt128kib On a device with more than 128 KiB of flash, how
to make function pointers work?
+
+Function pointers beyond the "magical" 128 KiB barrier(s) on larger
+devices are supposed to be resolved through so-called
+<em>trampolines</em> by the linker, so the actual pointers used in
+the code can remain 16 bits wide.
+
+In order for this to work, the option <tt>-mrelax</tt> must be given
+on the compiler command-line that is used to link the final ELF file.
+(Older compilers did not implement this option for the AVR, use
+<tt>-Wl,--relax</tt> instead.)
+
+<small>Back to \ref faq_index.</small>
+
*/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-libc-commit] [2147] bug #28921: pointer to function > 128k flash,
Joerg Wunsch <=