Externe Datei mit Daten als DSEG einbinden

OP #4993546
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
Gast
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?
OP
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.