mikrocontroller.net

Forum: Compiler & IDEs Make-File für ARM-GNU


Autor: Konrad Metzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es eigentlich Unterschiede in den make-Files für Unix und Win ?
1. im Namen "make" oder "make.bat"
2. in den zu verwendenden Befehlen z.B. für Kommentare "#"
oder"REM".

Jedenfalls "versteht" mein PC die Befehle MCS oder CC nicht.

Konrad

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unterschiedliche make-Varianten implementieren teilweise
unterschiedliche feature sets.  Auch im Unix-Bereich gibt es da
Unterschiede zwischen den drei Grundrichtungen SystemV make, GNU make
und BSD make.  Im PC-Bereich kommen noch andere Dialekte hinzu.

Alle haben aber typischerweise gleiche Basisfunktionalität und
-syntax.

Das ausführbare Programm heißt unter Unix schlicht »make«, unter DOS
und Windows dann »make.exe« (wobei Du das .exe ja nicht eintippen
musst).  Der bevorzugte Dateiname für das Makefile kann vielleicht
unter DOS/Win auch ein anderer sein, unter Unix ist es zuerst
»makefile«, dann »Makefile«.

Was soll CC und MCS in Deinem Zusammenhang sein?  Make-Makros?
Externe Kommandonamen?  (MCS kenn ich gar nicht, CC verbinde ich in
Großbuchstaben mit einem make-Makro für den Kommandonamen des
C-Compilers, der standardmäßig auf "cc" steht, aber im
Controller-Umfeld oft anders belegt wird, in Deinem Falle vielleicht
"arm-gcc".)  Make tut natürlich weiter nichts, als eine Abfolge von
externen Kommandos aufzubauen, das Vorhanensein von Kommandos mit
entsprechendem Namen und deren Zugreifbarkeit über den
Standard-Kommando-Suchpfad mußt Du schon selbst organisieren.

Autor: Konrad Metzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe bis jetzt folgendes herausgefunden: zu dem GNU-Compiler für Win
gibt es ein file: make.bat, das DOS-Befehle enthält und damit den
Compiler etc steuert. Dies sehen natürlich anders aus als die Befehle
in einem make-file. "make" ist ja ein Programm, das das File
interpretiert. Aber das gibt es nicht bei Window, oder?

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Distribution verwendest Du denn?

make/Makefiles gibt es auch auf Windows, aber man MUSS es nicht
nutzen...

Autor: Konrad Metzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Distribution ? Ich habe den Compiler von Hitex bekommen, die auch einen
Debugger und ein HW-Tool für die Jtag-Schnittstelle (Tantino) liefern.
Version 3.3.2

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei "Hitex" kenne ich den Umfang der Toolchain nicht, daher kann ich
da kaum was zu sagen (ob make verfügbar etc)...

Autor: Konrad Metzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Rückfrage be HITEX hat ergeben, dass sie z.Z. mit dem DOS-Batchfile
arbeiten und nicht make verwenden. Und das funktioniert inzwischen
auch.
Bis hierhin alles alles ok.

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"make.bat" ist typischerweise kein "Makefile", aber ein
gebraeuchlicher Name. Mit diesen Batch-Dateien ("shell-scripts") wird
direkt der Compiler (bzw. Linker) aufgerufen. Ich kenne die
HITEX-Produkte auch nicht, aber die Erstellung einer Batch-Datei durch
die "IDE" und der anschliessende Aufruf des Kommandointerpreters
(cmd.exe/command.com) zur Abarbeitung dieser Skript-Datei ist im
Windows/DOS-Umfeld nicht unueblich. Makefiles im "klassischen" Sinn
sind Steuerdateien fuer ein Programm make(.exe) (bei MS nmake). make
ruft seinerseits auf Grundlage der Angaben in dieser Steuerdatei den
Compiler/Linker mit entsprechenden Parametern auf. Für Windows gibt es
z.B. nmake von MS, bei Visual C/Studio dabei und wenn recht erinnert
auch "kostenlos" irgendwo auf der MS-Seite zu "saugen", ist aber
nicht ganz gnu-make kompatibel. Ein gnumake für Windows gibt es
allerdings auch. Ist z.B. in WinAVR und WinARM enthalten.

Autor: Konrad Metzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Infos bisher.
Noch eine Frage: Woher bekommt der Linker (Aufruf aus make.bat siehe
unten) die Information ber den zur Verfügung stehenden Speicher? Doch
nicht aus den dann compilieren Header-Files?

####### Linker Optionen
set ld_opt=--cref -t -static -lc -lm -Map=TST3.map -T.\TST3.ld

REM  ---------------------------------------------------
ECHO Linking
REM  ---------------------------------------------------
cd objects
set obj_file=TST3.elf
set obj_lst=startup.o a_main.o a_interrupt.o
arm-elf-ld.exe %ld_opt% --start-group %obj_lst% -o %obj_file%
########

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-T.\TST3.ld

Diese Option sagt dem Linker, welches Linkerfile er verwenden soll.
In diesem Linkerfile werden diese Angaben enthalten sein, und
zusätzlich vermutlich noch die verwendeten "standard-libs".

Autor: Konrad Metzger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, den Inhalt versuche ich dann mal selbst zu entschlüsseln.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.