Jaja ich weiß, die meisten "Compilerfehler" sitzen vor der Tastatur ;-) Der hier scheint echt zu sein. Mit eingeschalteter Optimierung (-O1 oder -Os) wird die Berechnung von bandwidth in sdram_speed_test() nicht ausgeführt, ohne Optimierung geht es.
1 | time = TCD0.CNT; |
2 | PRINT("DMA transfer time is %u timer clocks.\r\n", time); |
3 | bandwidth = size * 1024L / (2*time); |
4 | PRINT("Bandwidth is %u kB/s.\r\n", bandwidth ); |
Die sehr ähnliche Funktion sdram_speed_test_dma()hat diesen Fehler nicht! Siehe Anhang. Ich arbeite mit Atmelstudio 6.2 und dem darin enthaltenen avr gcc 4.8.1 (Atmel Toolchain), das Ziel ist ein ATXmega128A1 (ohne U).