Assembler Code in C einbinden

Gast #552499
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
Gast #553100
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
Gast #553453
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.