Hallo zusammen,
ich m=F6chte f=FCr ein Projekt mit einem ATmega, programmiert mit WinAVR = in C, gezielt ein paar Byte im Flash mit bestimmten Bytes belegen.
Die Position dieser Bytes soll gleich hinter der Vektorliste liegen, z.B. auf Adresse 80h. Der Compiler legt aber den Startup-Code und die gesamte Applikation zusammen in ein einziges Segment (.text). Wenn ich dort mit einem kleinen Assemblermodul und entsprechender Linker-Anweisung eigenen (konstanten) Inhalt hinlege, gibt es also eine entsprechende Overlap-Fehlermeldung vom Linker. :-(
Wie bekommt man am einfachsten ein paar konstante Bytes an definierter Stelle ins Flash?
Den Startup-Code holt sich WinAVR aus der Entwicklungsumgebung - ich k=F6nnte den deaktivieren und ein entsprechendes eigenes (abge=E4ndertes)=
Modul ins Projekt einbinden. Ich wei=DF aber nicht, welche Automatismen die Umgebung noch auf den Code anwendet (z.B. K=FCrzen der Vektorliste, Eintragen der Vektoren, Zusammenfassen von Segmenten) - so da=DF mir dieser Ansatz etwas riskant erscheint. Und die CRT1 im WinAVR zu =E4ndern= , ist systematisch falsch: diese konstanten Bytes geh=F6ren zum Projekt und=
nicht zum Arbeitsplatz.
Danke f=FCr Hinweise, Tilmann