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

[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>
+
 */




reply via email to

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