Hallo! Ich zweckentfremde einen AtMega 16 als ROM in der Testphase eines Projektes, da ich kein (EP)ROM Schreibgerät besitze, bzw. ich den Mega bei kleinen Änderungen schnell neu programmieren kann. Dabei wird ein Port für die Adresse verwendet und es soll auf den anderen 3 Ports Daten ausgegeben werden. Für schnellen Speicherzugriff sollen die Daten in 4Bit Blöcken im Speicher liegen (Basisadresse + PIN mit doppeltem Linksshift). Das programmieren via Assembler stellt kein Problem dar. Mein Anliegen: Diese Daten erzeugt ein eigener Parser, das aus menschenlesbaren Zeilen die 3 Byte pro Adresse erzeugt. Das Ausgabeformat kann ich somit selbst bestimmen (und auf 4 Byte auffüllen) und implementieren. Z.B. werden schon Logisim kompatible Dateien erstellt). Gibt es nun einen guten Weg die erzeugte Datei in das Datensegment des AVR-Projektes einzubinden? Die Größe werden immer 256 x 4 Byte = 1024 Byte, die einfach an einer definierten Stelle (z.B. 0x100) mit in die vom Assembler erzeugte HEX Datei geschrieben werden, oder als .DSEG in das Projekt mit eingebunden werden soll. So weit ich weiß, wird asm Code ja ohne Linker direkt übersetzt (stimmt das?) Viele Grüße, Finn
Finn S. schrieb: > So weit ich weiß, wird asm Code ja ohne Linker direkt übersetzt (stimmt > das?) Nein, auch da müssen einzelne Dateien zusammengeführt werden. Und warum willst du die in den RAM packen? Im Flash reicht doch, und der ist größer. Du kannst z.B. objcopy nutzen, um deine binäre Datei in eine .o Datei zu überführen, die du dann mit linken kannst.
Dr. Sommer schrieb: > Finn S. schrieb: >> So weit ich weiß, wird asm Code ja ohne Linker direkt übersetzt (stimmt >> das?) > Nein, auch da müssen einzelne Dateien zusammengeführt werden. Das hängt vom Assembler ab. Es gibt auch welche, die direkt ein flashbares Binary erzeugen. > Und warum willst du die in den RAM packen? Wo steht denn, dass sie im RAM landen sollen?
Rolf M. schrieb: > Dr. Sommer schrieb: >> Finn S. schrieb: >>> So weit ich weiß, wird asm Code ja ohne Linker direkt übersetzt (stimmt >>> das?) >> Nein, auch da müssen einzelne Dateien zusammengeführt werden. Hat jemand Erfahrung damit beim AtmelStudio 6? > > Das hängt vom Assembler ab. Es gibt auch welche, die direkt ein > flashbares Binary erzeugen. > >> Und warum willst du die in den RAM packen? > > Wo steht denn, dass sie im RAM landen sollen? Naja, erstmal in den Flash bekommen, also in die hex Datei die ich brennen kann. Ob ich dann alles in den RAM kopiere muss ich mal testen, wie schnell ich das brauche.
So wie ich es in der Doku zum avr assembler compiler lese (http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_Command_Line_Options.html) wird direkt eine output Datei erzeugt, ohne linker. Der Tipp mit dem objcopy ist gut, das werde ich mir mal ansehen! Viele Grüße, Finn
Finn S. schrieb: > Mein Anliegen: Diese Daten erzeugt ein eigener Parser, das aus > menschenlesbaren Zeilen die 3 Byte pro Adresse erzeugt. Das > Ausgabeformat kann ich somit selbst bestimmen Na dann erzeuge direkt Intel-Hex. Damit hast du alles unter eigener Kontrolle.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.