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.
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?
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.
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
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.
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.
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
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
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?
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