[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] AT90CAN128 silicon bug in conjunction w/ external RAM
From: |
Henrik Maier |
Subject: |
Re: [avr-gcc-list] AT90CAN128 silicon bug in conjunction w/ external RAM |
Date: |
Sun, 17 Apr 2005 07:53:08 +1000 |
User-agent: |
Mozilla Thunderbird 1.0 (Windows/20041206) |
> It should be fairly easy to add such a switch to avr-gcc. But, I'd
> suggest to ask Atmel to be sure:
> - is LDS/STS really not affected by this bug?
> - do other I/O instructions (CBI, SBI, SBIC, SBIS) work correctly?
I investigated myself and had a look at the gcc sources. Using -O0
avoids optimizing with in/out instructions. However for function
prologues and epilogues avr-gcc still uses in/out instructions but this
could indeed be patched easily. Then there are several inline macros in
avr-libc which need to be changed as well. So it all looks like it could
be done.
But: I also investigated further and my findings show that there must be
other instructions showing the bug too. I have a failing code section of
a simple for loop which does not do a single in or out.
Looking at Atmel's description: "... it seems that only "IN" and "OUT"
instructions are concerned.", they use the term "seem" which means to me
they are not quite sure.
If they don't know for sure, who else?
> - is this for AT90CAN128 only, or does it affect any other devices?
> (such as ATmega128)
Only the new AT90CAN128 part is affected.
Henrik