Hallo, ich versuche mit eigenem Programm anhand des GCC-Tutorials ein Assembler-File in ein C-Programm zu setzen. Dafür habe ich zu aller Anfang probieren wollen, das reine, funktionierende(wenn ich die Initialisierung zum Assemblieren wieder vornehme) Assembler Quellcode-File mit Endung groß S(Bild unten rechts) in mein C Projekt einzubauen. Code in C habe ich ansonsten gar keinen. Das Makefile ist entsprechend umgeschrieben. Den Fehlercode des Compilers ist unten im Bild zu lesen. Leider geht aus dem Tutorial für meinen Kenntnisstand nicht eindeutig hervor, wie das "Gesamtbild" meines Projekts auszusehen hat. Ich will eigentlich nur ein Assembler Programm in C compilieren, dessen Hex-File das gleiche macht wie mein Hex-File vom Assembler - nämlich eine LED zum Leuchten bringen, wenn ich eine Taste drücke. Falls jemand einen sinnvollen Ratschlag hat, ich bitte darum Vielen Dank, Matthias
du solltest mal den makefile posten, dann kann man vielleicht was dazu sagen ...
Vielen Dank fürs reinschauen! Das Makefile ist im Anhang und nach der WINAVR Vorlage entstanden. Unten steht der Output. Ich habe bereits kleine C-Programme anderer Programmierer compilieren und auf einem Mikrocontroller zum Laufen bringen können. Es liegt nur der Verdacht nahe, das ich etwas grundsätzlich falsch mache beim Einbinden von Assembler Software - Headerfiles, Syntax oder ähnliches COMPILER OUTPUT: > "make.exe" all -------- begin -------- avr-gcc (GCC) 4.1.1 (WinAVR 20070122) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Size before: AVR Memory Usage ---------------- Device: Unknown Program: 152 bytes (.text + .data + .bootloader) Data: 0 bytes (.data + .bss + .noinit) make.exe: *** No rule to make target `assembler_in_C_implementieren_Test.o', needed by `blinkendes.elf'. Stop. > Process Exit Code: 2
> No rule to make target `assembler_in_C_implementieren_Test.o'
Es gibt keine Datei mit dem Namen assembler_in_C_implementieren_Test.S.
Dein Bild ganz oben zeigt auch nur eine namens
assembler_in_C_implementieren.S.
Auf Groß-/Kleinschreibung achten!
Es funktioniert jetzt alles. Ich habe ein neues Programm geschrieben in dem ich ausschließlich Assembler einbinde, einfach um den Fehler einzudämmen. Aber es funktioniert nur, wenn ich keine Namen wie PORTB verwende, sondern den den entsprechenden Port Namen 0x18. Mein Assembler Include-File wird also nicht akzeptiert. Erst wenn ich PORTB = 0x18 DDRB = 0x17 in die Assembler Datei schreibe, ist wieder alles in Ordnung. Gibt es einen Trick, dem Compiler das mitzuteilen? Wenn ja, wäre mir damit dann vollends geholfen! Gruß Matthias
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.