Hello,
I discovered a strange compiler behaviour. This code works:
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
//SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
(18 accesses to the data structure)
but this not:
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
(20 or more accesses to the data structure)
Ok, the code doesn't make sense, but it shows, that only the number of accesses to the data structure can cause the error. In my application the code is different, but this points out the problem best.
The error is, that the window with the .asm file opens and the error "Error: parameter error" comes up. The code line, where the error happens (yellow marked), is in a completely different code section.
The AVRco version is 6.00.05 and the processor used is XMega256A3.
I would highly appreciate any help, because currently, I'm blocked with the software development ...
Best regards
Alois
I discovered a strange compiler behaviour. This code works:
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
//SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
(18 accesses to the data structure)
but this not:
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
SensorData.GyroData.Roll := SensorData.GyroData.Roll + 1;
(20 or more accesses to the data structure)
Ok, the code doesn't make sense, but it shows, that only the number of accesses to the data structure can cause the error. In my application the code is different, but this points out the problem best.
The error is, that the window with the .asm file opens and the error "Error: parameter error" comes up. The code line, where the error happens (yellow marked), is in a completely different code section.
The AVRco version is 6.00.05 and the processor used is XMega256A3.
I would highly appreciate any help, because currently, I'm blocked with the software development ...
Best regards
Alois
