??? 03/16/07 07:45 Read: times |
#135078 - akkkk! stupid compilers, something to watch |
I dont know if keil compiler does this and i know sdcc doesnt do this and hope it never does but I spent a day struggling to understand what was going on with some code using the gcc compiler for the avr only to discover that if you have an empty loop for timing and the loop can be shown to be finite and it has no other effects then gcc will remove the loop,looking in the manual it says quite clearly that its an issue they are aware of and they have been asked about it before but they dont want to change it because 'The optimisation of a non-empty loop cannot produce an empty one' which basically means 'we dont want to change it.' |
Topic | Author | Date |
akkkk! stupid compilers, something to watch | 01/01/70 00:00 | |
ehm, isn't it the user? | 01/01/70 00:00 | |
Well it might be phooey;- but its pretty common | 01/01/70 00:00 | |
have you considered using a timer, perhaps... :-) | 01/01/70 00:00 | |
yep but... | 01/01/70 00:00 | |
Sorry - not this time, Jez | 01/01/70 00:00 | |
if it is THAT short... | 01/01/70 00:00 | |
Maybe not... | 01/01/70 00:00 | |
Beware. | 01/01/70 00:00 | |
Well, any compiler with half a brain does that. | 01/01/70 00:00 | |
volatile | 01/01/70 00:00 | |
use util/delay.h and read the lib documents | 01/01/70 00:00 | |
optimization = lost control | 01/01/70 00:00 | |
well that is the first mistake | 01/01/70 00:00 | |
First mistake is using a HLL | 01/01/70 00:00 | |
Optimise & kill code | 01/01/70 00:00 | |
optimizers and NASA | 01/01/70 00:00 | |
There are many levels in Keil | 01/01/70 00:00 | |
not always a good idea | 01/01/70 00:00 |