avr-gcc bug? This does seem to be a linker bug when --relax is used. I was able to replicate it with avr-gcc 5.4.0. What version of avr-gcc does "AVR 8-bit Toolchain v3.62" use?

Tuesday, 27 August 2019 - 23:24

SD Card fails to initialize mikech wrote:
Doing while ( sdsc_command ( APP_CMD, 0 ) && sdsc_command ( SD_SEND_OP_COND, 0x40000000 ) ); //v2 is not a good idea, because you cannot be certain which one...

Friday, 19 July 2019 - 16:40

help with Bubble Sort Torby wrote:
hint:
There's a quicksort function built into the libraries.
I'll second that. Use qsort with a custom comparator function.
Pedantic mode on:...

Tuesday, 16 July 2019 - 20:40

double/float questions skeeve wrote:
I think you need about 2 bits past the lsb of the operand with the larger absolute value.
The second bit is the or of all the lower bits.
No, you do need 3...

Monday, 1 July 2019 - 17:53

double/float questions kk6gm wrote:
The point being that trying to calculate sin(__FLT_MAX__) is a fool's errand.
It very well may be, but it can still be computed close to the exact value (Cliff's...

Friday, 28 June 2019 - 17:34

double/float questions skeeve wrote:
christop wrote:f3 is exactly 0. The value 1.0 is rounded to 0 when it's subtracted from a much larger value (__FLT_MAX__), so that f1 == f2.IEEE's implicit...

Friday, 28 June 2019 - 17:25

double/float questions kk6gm wrote:
So f1 == (f1 - 1.0). I think that proves the point.
Yes, for sufficiently large f1. I'm not sure what point you're trying to prove. It should be well-...

Friday, 28 June 2019 - 16:49

double/float questions kk6gm wrote:
Simple exercise
float f1, f2, f3;
f1 = __FLT_MAX__;
f2 = __FLT_MAX__ - 1.0;
f3 = f1 - f2;
What is the value of f3?
f3 is exactly 0. The value 1.0 is rounded...

Friday, 28 June 2019 - 16:08

double/float questions Looks correct to me: https://www.wolframalpha.com/input/?i=sine(340282346638528859811704183484516925440+mod+(2*pi))
(3.4028235e38 is only an approximation for...

Friday, 28 June 2019 - 15:52

structure fails to update Fianawarrior wrote:
Okay, I have a little more information.
The function "hardware_write_block" works. However the structure streamExt seems to be pointed at a...

Tuesday, 28 May 2019 - 20:50

can I ignore the following warning AndreyT wrote:
skotti wrote:works.
Formally, that's a violation of strict aliasing semantics. Today it "works", tomorrow it might stop working.
I read recently...

Saturday, 25 May 2019 - 00:42

longjmp() at the end of an ISR ? Or Goto+flag ? skeeve wrote:
BTW my recollection is that the way to handle register-trashing
by longjmp is to call setjmp from a function that does nothing else
but return the value....

This does seem to be a linker bug when --relax is used. I was able to replicate it with avr-gcc 5.4.0. What version of avr-gcc does "AVR 8-bit Toolchain v3.62" use?

mikech wrote: Doing while ( sdsc_command ( APP_CMD, 0 ) && sdsc_command ( SD_SEND_OP_COND, 0x40000000 ) ); //v2 is not a good idea, because you cannot be certain which one...

Torby wrote: hint: There's a quicksort function built into the libraries. I'll second that. Use qsort with a custom comparator function. Pedantic mode on:...

skeeve wrote: I think you need about 2 bits past the lsb of the operand with the larger absolute value. The second bit is the or of all the lower bits. No, you do need 3...

kk6gm wrote: The point being that trying to calculate sin(__FLT_MAX__) is a fool's errand. It very well may be, but it can still be computed close to the exact value (Cliff's...

skeeve wrote: christop wrote:f3 is exactly 0. The value 1.0 is rounded to 0 when it's subtracted from a much larger value (__FLT_MAX__), so that f1 == f2.IEEE's implicit...

kk6gm wrote: So f1 == (f1 - 1.0). I think that proves the point. Yes, for sufficiently large f1. I'm not sure what point you're trying to prove. It should be well-...

kk6gm wrote: Simple exercise float f1, f2, f3; f1 = __FLT_MAX__; f2 = __FLT_MAX__ - 1.0; f3 = f1 - f2; What is the value of f3? f3 is exactly 0. The value 1.0 is rounded...

Looks correct to me: https://www.wolframalpha.com/input/?i=sine(340282346638528859811704183484516925440+mod+(2*pi)) (3.4028235e38 is only an approximation for...

Fianawarrior wrote: Okay, I have a little more information. The function "hardware_write_block" works. However the structure streamExt seems to be pointed at a...

AndreyT wrote: skotti wrote:works. Formally, that's a violation of strict aliasing semantics. Today it "works", tomorrow it might stop working. I read recently...

skeeve wrote: BTW my recollection is that the way to handle register-trashing by longjmp is to call setjmp from a function that does nothing else but return the value....

## Pages