Du musst zusätzliche Qulltextdateien (*.c) in das Makefile mit aufnehmen, sieh dort Mal ab Zeile 40 nach. Den Eintrag solltest du in der Form "src += new.c" vornehmen.
mfG
Markus
Hallo,
ich nutze zum Programmieren/Compilieren/Flashen Asuro Flash in der Version 1.8.13.110.
Die Asuro Library die ich verwende ist die V2.8.0rc2
WinAVR verwende ich in der Version 20100110
Nun folgendes Phänomen.
Wenn ich das Test Projekt öffne, kann ich dieses ohne Probleme compilieren und flashen.
Erstelle ich nun ein eigenes Projekt, lege die asuro.c und die asuro.h in das Projektverzeichnis und erstelle eine eigene "new.c" Datei mit foglendem Inhalt:
und compiliere alles, bekomme ich folgende Fehlermeldung:Code:#include "asuro.h" int main(void) { Init(); while(1) { BackLED(OFF,OFF); StatusLED(OFF); } return 0; }
Wenn ich nun zusätzlich noch die asuro.c einbinde, funktioniert es.Code:Linking: Project1.elf avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.o" new.o --output Project1.elf -Wl,-Map=Project1.map,--cref -L"C:\ProgramData/AsuroFlash/asuro-lib/lib" -lm -lasuro new.o: In function `main': C:\ProgramData\AsuroFlash\Projects\Test/new.c:5: undefined reference to `Init' make: *** [Project1.elf] Error 1 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling C: new.c avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.lst" "new.c" -o new.o ExitCode 2 >Ready.
Warum muss ich bei mir immer die asuro.c einbinden, während in allen anderen Programmen immer die asuro.h eingebunden wird?
Muss ich eventuell noch Einstellungen im AsuroFlash vornehmen?
Installiert habe ich AusroFlash unter C:\ProgramData und WinAVR liegt in C:\WinAVR-20100110
Folgende Einstellungen habe ich bereits angepasst:
COM-Port 4
AVR-Path: C:\WinAVR-20100110
Die restlichen Parameter habe ich so gelassen.
gruß
Andi
Geändert von Andi1888 (05.03.2014 um 12:58 Uhr)
Du musst zusätzliche Qulltextdateien (*.c) in das Makefile mit aufnehmen, sieh dort Mal ab Zeile 40 nach. Den Eintrag solltest du in der Form "src += new.c" vornehmen.
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Und das muss ich jedesmal aufs neue machen?
Wenn ich jetzt ein neues Projekt erstelle um z.B. die BackLED's anzuschalten, und ich schreibe den Quellcode dazu in die neue Datei "lampe.c), dann muss ich diese Datei auch in das Makefile schreiben?
Also wäre es am besten, dass ich der*.c Datei der jeweiligen Projekte immer den selben Namen vergebe damit ich das nicht jedes mal im Makefile anpassen muss?
- - - Aktualisiert - - -
Ok, ich habe nun festgestellt, dass ich in einem neuen Projekt links in der "Projekt-Übersicht" mittels Rechtsklick auf den Projektnamen Dateien hinzufügen kann. Wenn ich dort die "asuro.c" hinzufüge, funktioniert es anscheinend.
Soll ich da immer die asuro.c aus dem Ordner "C:\ProgramData\AsuroFlash\asuro-lib\lib" hinzufügen?
Und kann man einstellen, dass dies immer automatisch geschieht, da man die asuro.c ja immer benötigt?
gruß
Andi
Wenn du mit dem Makefile arbeitest, ja. Den zweiten Teil deines Beitrages bewerte ich aber so, dass du offenbar mit einer Entwicklungsumgebung arbeitest? In dem Fall kommst du komplett ohne das Makefile aus, wenn die Entwicklungsumgebung sich um den Vorgang kümmert. In dem Fall könntest du asuro.h und asuro.c auch einfach immer in den Projektordner kopieren, das ist ja auch nur Quelltext.
Du kannst in eine Quellcode-Datei aber ruhig etwas mehr Funktionalität hineinstecken als das An-/Ausschalten der Back-LEDs - Zu viele Dateien werden auch irgendwann (ohne sinnvolle Struktur) unübersichtlich.
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Wenn du mit der AsuroLib v2.8 arbeitest, geht das Erstellen eines neuen Projektes etwas anders.
1. Du kopierst den kompletten Ordner 'FirstTry' aus dem Examples Ordner in einen neuen Ordner deiner Wahl.
2. Dann kannst du sofort loslegen ohne das Makefile zu änderen oder zusätzliche Files zu kopieren. Nim einfach die test.c und schreib dein Programm.
3. Übersetzen starten mit Aufruf der make_all.bat
An das Makefile musst du nur ran:
* wenn sich die Beispiele nicht übersetzen lassen (Anpassen der Pfade, etc)
* wenn du zusätzliche C-Files verwenden willst, die nicht schon in der Lib vorhanden sind
* wenn dein Programm anders heissen soll als test.c
Kein kopieren von Asuro.c oder Asuro.h. Die werden alle aus dem Lib Ordner mit eingebunden.
Das AsuroFlash das ich kenne kümmert sich nur um die Übertragung des fertigen Binärprogramms/Hexfile an den ASURO. Mit der ASURO-Bibliothek und Makefiles hat das nichts zu tun. Entweder du hast ein anderes Programm (glaube hier kursierte irgendwann Mal ein AsuroStudio oder sowas?) oder verstehst etwas falsch.
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Upps, sorry, dass hatte ich übersehen.Ich verwende doch aber das universelle Programm AsuroFlash (EierlegendeWollmilchSau)
Ob das Teil noch mit der aktuellen Lib funktioniert, kann ich nicht sagen. Das Tool wurde leider nicht weitergepflegt. Ich muss mir das noch mal installieren und testen, dann weis ich mehr.
Ein Fehler, der mir spontan einfällt, ist der falsche Pfad zur AsuroLib. Defaultmässig ist 'asuro-lib' eingestellt, installiert wird aber nach 'asuro_lib'.
Das AsuroFlash TestProjekt benutzt eine alte Version der AsuroLib (V2.6). Dort musste immer asuro.c und asuro.h in einen neuen Projekt Ordner kopiert werden.
Geändert von m.a.r.v.i.n (06.03.2014 um 18:19 Uhr)
Lesezeichen