Forum: Mikrocontroller und Digitale Elektronik µVision und Assemblieren


von MCBird (Gast)


Lesenswert?

Anfänglich hört sich das Thema vielleicht nicht neu an, aber ich 
interessiere mich für den Vorgang ohne das Programm aufzurufen. Habe 
mich schon an den ganzen Dateien von a51-oh51 versucht aber leider nicht 
nie eine funktionsfähige .hex Datei entsprungen.

Habe ein Programm basierend auf der .a51 (Nennen sie wir Test.a51) und 
sie soll mit dem Inhalt ohne µ aufzurufen assembliert werden. In 
diversen Unterforen habe ich mögliche Ansätze gesehen, aber leider nie 
den wirklich gesuchten Inhalt. Ich denke es ist noch wichtig zu wissen, 
dass ich einen AT89C51CC03 mit der .hex Datei beschreiben will.

Warum mache ich das alles. Ich habe ein Programm unter C geschrieben mit 
dem ich einen Controller Text anpassen will, assemblieren will und dann 
übertragen lassen möchte, wobei 1. und letzteres schon sehr gut gelingt!

Ich hoffe mir kann jemand helfen und mir vielleicht erklären, wie ich 
vorgehen muss ... Bisher bleibt meine .hex Datei bei 0kb :(

So gehe ich vor:
a51 test.a51
-> ich bekomme eine obj datei heraus.
Und nun fehlt mir das weitere vorgehen ... Mit OH51 funktioniert es 
nicht die .obj einzubinden, weil man wohl eine .abs brauch, die ich auch 
schon einmal erstellt hatte, aber auch nicht in OH51 einbinden kann :(


Hoffe auf Hilfe

von Thomas (Gast)


Lesenswert?

nun das ist nicht so schwer.
a51 erzeugt ein relokatibles Objectfile. Dieses File zusammen mit
anderen Objektfiles bindet der Linker bl51 zu einem abs. Objektfile.
ANschliesend kann oh51 daraus ein Hexfile machen. Das ist alles im 
Handbuch beschrieben.

Thomas

von MCBird (Gast)


Lesenswert?

Die Reihenfolge ist schon einmal gut zu wissen.

Welche Befehle muss ich aber nutzen.
1. A51.exe test.a51
(Ich erhalte eine test.obj und eine test.masm

2. bl51.exe test.obj
(Ich erhalte keine abs und eine M51 datei)

3. OH.exe test.abs
(Ich sollte eine test.hex erhalten)

Wo liegt der Fehler in der Sache, dass ich keine .ABS und damit auch 
keine Hex erhalte ?

von Thomas (Gast)


Lesenswert?

> 1. A51.exe test.a51
> (Ich erhalte eine test.obj und eine test.masm

falsch es gibt test.obj und test.lst

>2. bl51.exe test.obj
>(Ich erhalte keine abs und eine M51 datei)

falsch du erhältst test (ohne endung) und test.m51

> 3. OH.exe test.abs
> (Ich sollte eine test.hex erhalten)

falsch du must entweder oh51 test benutzen oder den Linker mit
bl51 test.obj TO test.abs starten

Hast du überhaupt mal ins Handbuch geschaut und dir die Parameter
Aufrufe angesehen

Thomas

von MCBird (Gast)


Lesenswert?

A51.EXE test_at89c51cc03.a51 SET(SMALL) DEBUG EP
BL51.EXE test_at89c51cc03.obj TO test_at89c51cc03.abs RAMSIZE (256)
OH51.EXE test_at89c51cc03.abs

Sind die Befehle und habe mir Keil im Internet auf deren Seite geladen, 
da war kein Handbuch dabei ...

Btw bei A51 erhalte ich die von mir genannten Dateien, bei BL51 auch, 
bei dem Aufruf und dass ich oh51 nutze ist wohl klar -.- Habe nur die 
"51" vergessen!

von Thomas (Gast)


Lesenswert?

>Sind die Befehle und habe mir Keil im Internet auf deren Seite geladen,
>da war kein Handbuch dabei ...
Natürlich sind da Handbücher dabei schau mal in help ordner.
Zusätzlich sind all Handbücher auch online auf dem keil.com verfügbar.

Thomas

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
Noch kein Account? Hier anmelden.