[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefo
From: |
Joerg Wunsch |
Subject: |
Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts |
Date: |
Wed, 7 Dec 2011 17:24:24 +0100 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
As Jan Waclawek wrote:
> Do you find that a sufficient documentation of this feature?
Strictly, that description is only guaranteed to apply to the SEI
instruction, not to other ways that modify the I flag. Apparently,
this one-instruction delay is implemented in the classic AVR core in a
way where it always applies, independent of the way the I flags has
actually been set.
Given that this appears to be an undocumented feature that has always
been present in the "classic" AVR core, and that the compiler has been
relying on it all the time (once the early AVR-GCC authors knew about
it), the entire world would break down if this behaviour were suddenly
changed, so things like wdt_enable() are certainly the least of the
problems.
For the Xmega core, I've heard this behaviour has really been changed
(and is only guaranteed for the SEI instruction still), so the library
should generate different code indeed (as the compiler already does).
--
cheers, J"org .-.-. --... ...-- -.. . DL8DTL
http://www.sax.de/~joerg/ NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
- [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequence for many parts, Luca Matteini, 2011/12/07
- [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequence for many parts, Georg-Johann Lay, 2011/12/07
- [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequence for many parts, Georg-Johann Lay, 2011/12/07
- [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequence for many parts, Luca Matteini, 2011/12/07
- [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequence for many parts, Joerg Wunsch, 2011/12/07
- [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequence for many parts, Luca Matteini, 2011/12/07
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts, Jan Waclawek, 2011/12/07
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts,
Joerg Wunsch <=
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong codesequencefor many parts, Jan Waclawek, 2011/12/07
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts, Georg-Johann Lay, 2011/12/07
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts, Joerg Wunsch, 2011/12/07
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts, Weddington, Eric, 2011/12/07
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts, Bob Paddock, 2011/12/07
- Re: [avr-libc-dev] [bug #35003] wdt_enable() has a wrong code sequencefor many parts, Lou Cypher, 2011/12/08