Forum: Compiler & IDEs Problem mit externem Assembler-code in winAvr


von Richard Mutschler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, Danke erstmal für Hilfe...
Ich habe folgendes Problem: Ich möchte ein programm schreiben, das bei
einem 8515 über die Uart zeichen empfängt und auf ein display HD 4478
ausgibt. Die Routine für das display ist in Assembler und funktioniert
für sich wunderbar. Die Routine für die Uart ist in C geschrieben und
funktioniert auch. Nun wollte ich die Displayroutine als externe Datei
in meinen C-code einbinden. Das Problem ist, dass ich es nun nicht mehr
Compiliert bekomme und mit der Fehlermeldung nuchts anfangen kann:
> "make.exe" all

Assembling: LcdInit.S
avr-gcc -c -mmcu=at90s8515 -I. -x assembler-with-cpp
-Wa,-adhlns=LcdInit.lst,-gstabs  LcdInit.S -o LcdInit.o
LcdInit.S: Assembler messages:
LcdInit.S:13: Warning: expression possibly out of 8-bit range

LcdInit.S:13: Error: garbage at end of line // mit dieser meldung kann
ich nichts anfangen!!!???!!!

LcdInit.S:14: Error: number must be less than 64
LcdInit.S:15: Warning: expression possibly out of 8-bit range
LcdInit.S:15: Error: garbage at end of line
LcdInit.S:16: Error: number must be less than 64
LcdInit.S:78: Error: number must be less than 32
LcdInit.S:82: Error: number must be less than 32
LcdInit.S:87: Warning: expression possibly out of 8-bit range
LcdInit.S:87: Error: junk at end of line, first unrecognized character
is `4'
LcdInit.S:94: Warning: expression possibly out of 8-bit range
LcdInit.S:94: Error: junk at end of line, first unrecognized character
is `2'
LcdInit.S:95: Warning: expression possibly out of 8-bit range
LcdInit.S:95: Error: unknown opcode `c9'
make.exe: *** [LcdInit.o] Error 1

> Process Exit Code: 2
Da ich ein ziemlicher Newbie bin ist mein fehler wohl recht doof, aber
ich weiss gerade nicht weiter.
Gibt es evtl. in C Geschriebene Routinen für das Display?
vielen Dank, Richard

von Siegfried Dorn (Gast)


Lesenswert?

Hallo,

ich vermute mal, daß RAMEND mit $25F definiert ist. Versuchs mal mit
0x25f.

Gruß
Siegfried

von Jörg Wunsch (Gast)


Lesenswert?

Die ganze Assemblerdatei sieht mir suspekt aus.  Da werden auch
anderswo Konstanten mit $ geschrieben, das ist ganz offensichtlich
wohl kein GNU-Assembler (gas) Code.

Ich würde das Teil in C neu schreiben bzw. auf eine der zahlreich
vorhandenen C-Implementierungen zurückgreifen.  Nicht, daß eine
Einbindung von Assemblerdateien in C-Projekte nicht machbar wäre, aber
sie bringt in diesem Falle keinen einzigen Vorteil, im Gegenteil, der
Aufwand, das auf den gas zu konvertieren (wobei man ja zugleich auch
die teilweise x-fach geschachtelten Makrokonstruktionen verstehen muß)
rechtfertig meiner Meinung nach die Mühe kaum.

<ctoasm.inc> und <macros.inc> sind übrigens kein offiziell
exportiertes Interface der avr-libc.  Wenn Du diese Dateien
,,irgendwoher'' erhalten hast, riskierst Du mithin, daß Deine
Versionen veraltet sind und gar nicht mehr zur aktuellen avr-libc
passen.

von Peter Fleury (Gast)


Lesenswert?

>Gibt es evtl. in C Geschriebene Routinen für das Display?

Ja, von mir:
http://homepage.sunrise.ch/mysunrise/peterfleury/

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.