[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-libc-dev] [bug #22878] eeprom_*_word/dword/block cause hang in ATme
From: |
Stu Bell |
Subject: |
[avr-libc-dev] [bug #22878] eeprom_*_word/dword/block cause hang in ATmega256x |
Date: |
Tue, 08 Apr 2008 16:54:51 +0000 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13 |
URL:
<http://savannah.nongnu.org/bugs/?22878>
Summary: eeprom_*_word/dword/block cause hang in ATmega256x
Project: AVR C Runtime Library
Submitted by: stu_san
Submitted on: Tuesday 04/08/2008 at 16:54
Category: Library
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: libc code
Status: None
Percent Complete: 0%
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Release: 1.6.2
Fixed Release: None
_______________________________________________________
Details:
The latest eeprom_*_word/dword/block routines will cause an ATmega256x to
hang if the precompiled eerd_*/eewr_* functions are in the top half of flash.
This is because the eeprom.h header sends a function pointer to the eerd_* or
eewr_* functions, pointing back to the eeprom_*_byte function. Since the
eeprom_*_byte function is inlined, we have a 16-bit pointer to a function that
may be in the other half of flash (i.e., needing a 3-byte call instead of
2-byte call).
I have attached a BF&I version of eeprom.h that solves the problem by
inlining the eerd/eewr routines for the ATmega256x processors only. For all
other processors, the original code holds. This version of eeprom.h will
generate more code than the original for the m256x processors, but then those
processors have the space to handle it.
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Tuesday 04/08/2008 at 16:54 Name: eeprom.h Size: 11kB By: stu_san
<http://savannah.nongnu.org/bugs/download.php?file_id=15423>
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?22878>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block cause hang in ATmega256x,
Stu Bell <=
- [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block cause hang in ATmega256x, Eric Weddington, 2008/04/08
- Re: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block cause hang in ATmega256x, Dmitry K., 2008/04/09
- RE: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block cause hangin ATmega256x, Weddington, Eric, 2008/04/09
- RE: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block causehangin ATmega256x, Weddington, Eric, 2008/04/09
- RE: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block causehanginATmega256x, Stu Bell, 2008/04/09
- RE: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block causehanginATmega256x, Weddington, Eric, 2008/04/09
- RE: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block causehanginATmega256x, Stu Bell, 2008/04/09
- RE: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/block causehanginATmega256x, Weddington, Eric, 2008/04/09
- RE: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/blockcausehanginATmega256x, Weddington, Eric, 2008/04/09
- Re: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/blockcausehanginATmega256x, Dmitry K., 2008/04/09