Servus allerseits
[gcc vers. 4.3.0 (WinAvr 20080610)]
In all den Jahren in denen ich dieses Forum verfolge, habe ich die
Erfahrung gemacht, dass der Ausruf "Compiler-Fehler!!" meist mit einem
betretenen Schweigen des Ausrufers beendet wurde.
Vermutlich werde auch ich mich unter diese "schweigende Mehrheit"
einordnen müssen, aber was soll's: ich stecke fest und komme nicht
weiter.
In der Beilage habe ich ein kleines Beispiel zusammengestellt.
main() Zeile 27:
1 | Usart_0_Send_Paket( 0x01, (BYTE *)"Hallo", 5L );
|
Diese sendet zuerst einen Header bestehen aus 4 Bytes und dann die
eigentlichen Daten; in diesem Fall "Hallo".
Wenn ich der Funktion Usart_0_send in Zeile 28 das Attribut
no_inline verpasse, funktioniert es so, wie es soll: Die Funktion
Usart_0_Send_Paket in Zeile 39 sendet zuerst den Header bestehen aus
und dann die eigentlichen Daten.
Ohne das Attribut no_inline wird irgendein Header(*) gesendet und dann
die (korrekten) Daten.
(*) Der Header aendert sich, wenn ich im Code was aendere und neu
compiliere. Solange ich nicht neu compiliere, wird stets der gleiche
(falsche) Header gesendet.
MfG aus Istanbul