Externe Datei mit Daten als DSEG einbinden

#4993546
Lesenswert?

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 #4993558
Lesenswert?

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.
#4993584
Lesenswert?

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?
#4993603
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren