Forum: Compiler & IDEs LUFA für Dummies


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Hallo Allerseits,

ich will mal ein wenig mit LUFA rumspielen.

http://www.fourwalledcubicle.com/LUFA.php

Ich habe im Microchip-Studio 7 ein Projekt angelegt, das gesamte 
LUFA-Verzeichnis dort reinkopiert und versuch jetzt, mittels externem 
makefile was zu compilieren. Leider ohne Erfolg. Siehe Anhang.

Hat einer Ideen und Hinweise?

So weit ich es verstanden habe, muss man erst den LUFA-Kern compilieren, 
dann eines der Beispiele, welches dann zusammen gelinkt wird. So weit 
die Theorie.

von Günther S. (Gast)


Lesenswert?

Warum wird auf einem Windows-PC irgendwas mit /usr/bin/sh gemacht?

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Hmmm. Neuer Versuch

http://www.fourwalledcubicle.com/files/LUFA/Doc/210130/html/_page__compiling_apps.html

Ich hab das alles so gemacht, wie beschrieben, glaub ich zumindest. Dann 
die Msys Konsole geöffent, Verzeichnis gewechselt und make all. Und es 
passiert nix. Vermutlich ein DAU Fehler, wenn man keine Ahnung von make 
und Linux hat. Hat jemand Hinweise?

von Frank L. (florenzen)


Lesenswert?

Hallo Falk,
rufe "make all" doch mal ein Verzeichnis weiter oben auf, also in 
LUFA_MASTER.

Gruss,
f

von Cyblord -. (cyblord)


Lesenswert?

Muss man wissen was LUFA ist? Wenn man das googelt kommt lange lange 
nichts zum Thema Controller.

von Falk B. (falk)


Lesenswert?

Frank L. schrieb:
> rufe "make all" doch mal ein Verzeichnis weiter oben auf, also in
> LUFA_MASTER.

So weit reichen auch meine Dummiefähigkeiten. Gleiches Ergebnis.

von Frank L. (florenzen)


Lesenswert?

In allen 4 Unterverzeichnissen die das makefile aus LUFA_MASTER aufruft? 
Überall "Nothing to be done"?

Gruss,
f

von Kaju (Gast)


Lesenswert?

Cyblord -. schrieb:
> Muss man wissen was LUFA ist? Wenn man das googelt kommt lange lange
> nichts zum Thema Controller.
Einfach mal den Anfangspost lesen, da gibt es sogar einen Link...

Falk B. schrieb:
> ich will mal ein wenig mit LUFA rumspielen.
http://www.fourwalledcubicle.com/LUFA.php

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Falk B. schrieb:

> Ich hab das alles so gemacht, wie beschrieben, glaub ich zumindest. Dann
> die Msys Konsole geöffent, Verzeichnis gewechselt und make all. Und es
> passiert nix. Vermutlich ein DAU Fehler, wenn man keine Ahnung von make
> und Linux hat. Hat jemand Hinweise?

Warum baust Du zum Start nicht einfach mal eines der vielen 
mitgelieferten Projekte, z.B. USBtoSerial

In einer Linux-Umgebung genügt es ins Verzeichnis

  LUFA-xyz/Projects/USBtoSerial

zu wechseln und dort einfach

  make

aufzurufen.

Wenn das klappt, weißt Du immerhin schon mal, dass Deine 
Entwicklungsumgebung passt.

Grüßle,
Volker

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Volker B. schrieb:
> LUFA-xyz/Projects/USBtoSerial
>
> zu wechseln und dort einfach
>
>   make
>
> aufzurufen.

Das geht komischerweise! GUT, schon mal einen Schritt weiter!
im Verzeichnis lufa geht das nicht, obwohl dort ein makefile liegt. Aber 
wenn ich das als Unkundiger interpretiere, ist das nur ein Dummy.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Aber wenn ich das als Unkundiger interpretiere, ist das nur ein Dummy.

Es ist kein echter Dummy, es hat solche Optionen wie "make version" oder 
"make clean". Was es aber nicht hat (und was offenbar vorsätzlich leer 
gelassen worden ist), ist das (übliche) default target "make all".

D.h. du sollst schlicht gar nicht versuchen, da "alles" zu bauen, 
sondern du sollst offenbar die jeweiligen konkreten Projekte bauen. Ich 
habe mir LUFA lange nicht mehr angesehen, aber ich kann mir gut 
vorstellen, dass da auch einiges an customization erforderlich ist, 
Anpassung auf die tatsächlich zu verwendende Hardware, Software-Optionen 
etc.

von Frank L. (florenzen)


Lesenswert?

Falk B. schrieb:
[...]
> Das geht komischerweise! GUT, schon mal einen Schritt weiter!
> im Verzeichnis lufa geht das nicht, obwohl dort ein makefile liegt. Aber
> wenn ich das als Unkundiger interpretiere, ist das nur ein Dummy.

So ist es.
1
# Default target - no default action when attempting to build the core directly
2
all:
Deshalb schrub ich ja du sollst "make all" mal eine Etage höher 
ausführen.
Dort soll eigentlich folgendes passieren:
- make welchselt nach LUFA und macht dort **gewollt** nichts.
- make wechselt nach Demos und hangelt sich dort rekursiv durch alle 
Verzeichnisse und baut - zumindest bei mir - jede Menge Zeug.
- selbiges für die Verzeichnisse Projects und Bootloaders.

Warum bei dir im obersten Makefile bei "make all" das selbe wie in LUFA 
passiert kann ich aber aus der Ferne nicht beurteilen.

Gruß,
f

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Falk B. schrieb:

> Das geht komischerweise! GUT, schon mal einen Schritt weiter!

Wunderbar, dann funktioniert Deine Entwicklungsumgebung.

> im Verzeichnis lufa geht das nicht, obwohl dort ein makefile liegt. Aber
> wenn ich das als Unkundiger interpretiere, ist das nur ein Dummy.

Ich gebe zu, dass ich mir mein Leben mit LUFA stark vereinfacht habe, 
indem ich einfach das USBtoSerial-Projekt kopiert habe.

Das dort mitgelieferte Makefile ruft Unmengen anderer Makefiles auf und 
ich habe gar nicht erst versucht, das (und die zugeh. Abhängigkeiten) zu 
verstehen oder nachzubauen.

Ich habe einfach meine speziellen Targets, z.B. für's Flashen, das 
Setzen der Fuses und das Archvieren des Codes in das bestehende Makefile 
hineinkopiert.

In diesem Makefile wird einiges konfiguriert, wie die MCU (MCU) und 
deren Architektur (ARCH), Takt (F_CPU, F_USB), sowie das verwendete 
(Eva-)Board.
Für eigene Hardware empfiehlt sich
  BOARD = NONE

Interessant auch die make-Variable

LUFA_PATH

Wenn Du dort den absoluten Pfad zu dem Lufa-Hauptverzeichnis eingibst, 
dann kannst Du Dein Projekt in jedem beliebigen Verzeichnis bauen, z.B.:

LUFA_PATH = /home/myhome/sources/Lufa/github/lufa/LUFA

Weitere Anpassungen finden in der der Datei  Config/LUFAConfig.h
unterhalb des (kopierten) Projektverzeichnisses statt.

UID und VID werden in der Datei Descriptors.c eingestellt, ebenso der 
ManufacturerString.

Die klassischen AVR lassen sich nach meiner Erfahrung problemlos 
verwenden.
Die xmegas funktionieren auch, wobei es sich hier empfiehlt, die 
Einstellung des MCU-Taktes selber vorzunehmen und die entsprechenden 
Code-Sequenzen in LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c 
auszukommentieren (oder einen eigenen Compiler-Switch zu definieren).

Grüßle,
Volker

von Falk B. (falk)


Lesenswert?

Frank L. schrieb:
> Warum bei dir im obersten Makefile bei "make all" das selbe wie in LUFA
> passiert kann ich aber aus der Ferne nicht beurteilen.

Vielleicht lag es an einem Neustart des Computers nach der Installation 
von MinGW?

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]
  • [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.

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