Hi - habe ein Arduino uno und versuche das an AVR Studio anzubinden. hier ist eine schöne Anleitung: "http://www.cecs.csulb.edu/~hill/ee347/Blink_AVRStudio/" Funktioniert auch bestimmt, nur finde ich in dem Verzeichnis "Arduino\arduino-0022\hardware\arduino\cores\arduino" keine ".o" Dateien wie HardwareSerial.o - da sind nur *.c, *.cpp und *.h Dateien. Weiss jemand wie ich an die Object dateien ran komme, damit ich die bei AVR Studio includen kann?? Vielen Dank!!! Grüsse - Mischa
Ich meine in dem angegebenen Tutorial sieht man eine HardwareSerial.cpp Aus der kannst du eine Datei HardwareSerial.o erzeugen lassen, wenn du HardwareSerial.cpp kompilierst. Du kannst auch HardwareSerial.cpp zu deinen Sourcefiles aufnehmen, statt eine vorerzeugte HardwareSerial.o zu den zusätzlichen Libraries hinzuzufügen wie im Tutorial
hi-- ja das stimmt, da ist auch die cpp, wie kann man das zu .o file kompilieren? (schäm)
bitte, wenn jemand Zeit hat - das ist mir sehr wichtig - wie kann man die .cpp und .c Dateien in .o Dateien kompilieren? Vielen Danke nochmal, Grüsse - Mischa
Füg die Dateien einfach zu deinem Projekt mit dazu. Im Projektbaum, links im AVR-Studio, einfach über "Source Files" die rechte Maustaste drücken und "Add existing source Files". Dann zeiugst du ihm die *.c Files und fügst sie hinzu. AVR-Studio kümmert sich dann darum, dass sie kompiliert werden und zum Programm dazugelinkt werden.
Hi und danke, klappt leider nicht ganz - er erstellt leider keine .o Dateien aus .cpp Dateien (Wahrscheinlich weil es c++ sind)
Mischa schrieb: > bitte, wenn jemand Zeit hat - das ist mir sehr wichtig - wie kann man > die .cpp und .c Dateien in .o Dateien kompilieren? Das ist leider nicht so einfach bzw. so einfach zu beschreiben. Ich musste selbst rund eine gute Stunde Zeit reinhängen, um das gebacken zu bekommen. Also... Ein Arduino-Projekt besteht aus C Sourcecode (*.c Dateien) und aus C++ Sourcecode (*.cpp Dateien). Um in AVR Studio beides - C und C++ Sourcen - zu übersetzen, muss man - zumindest was ich gefunden habe - mit einem externen Makefile arbeiten. Wenn man nur selbstgeschriebene C-Sourcen übersetzt und die restlichen Sourcefiles aus dem Arduinopaket für seinen AVR bereits als Objektdateien *.o hat, kann man die als Library in das Projekt aufnehmen und mit dem AVR Studio Make-Mechanismus ohne externes Makefile arbeiten. Das ist anscheinend der Weg im Tutorial oben. Hier aber der komplette Weg: Übersetzen von Anfang an. In dem Arduino-Zip ist kein solches Makefile drin, d.h. man muss das selbst anlegen. Dafür gibt es bei WinAVR ein Tool mfile von Jörg Wunsch. Im Anhang ist das externe Makefile mit dem ich kompiliert habe. ACHTUNG #1: Dort ist als MCU ein anderer AVR (atmega168) eingetragen als deiner (atmega328p). # MCU name MCU = atmega168 Mit MCU = atmega328p konnte ich die Source WInterrupts.c nicht übersetzten. Die Fehlermeldung deutet darauf hin, dass mein WinAVR (WinAVR-20071221) zu alt ist bzw. veraltete Includedateien für diesen AVR hat. ACHTUNG #2: Im Makefile habe ich mich nicht um den Programmer gekümmert, also wie das fertige Programm auf den MCU übertragen werden soll. Ich denke die Anpassung auf AVRDUDE wie im Tutorial http://www.cecs.csulb.edu/~hill/ee347/Blink_AVRStudio/ bekommst du hin. Das Format des Makefile ist quasi selbsterklärend und es gibt hier in der Artikelsammlung auch Erläuterungen. Anders als in dem Tutorial oben, habe ich aus Bequemlichkeit (kein Gefummel mit Pfaden) die Sourcefiles direkt in das Projektverzeichnis blink kopiert und auch dort die Objektdateien erzeugen lassen und nicht in dem Ordner Default (s. Anhang files.gif) Im AVR Studio kann man sich die Dateien für den leichteren Zugriff in eine Listenstruktur hinzufügen (s. avrstudio.gif). Das muss man nicht machen, ist aber bequemer, wenn man Errors, Warnungen in der Source nachschlagen will. Dann muss AVR Studio so eingestellt werden, dass ein externes Makefile (s. oben) benutzt wird. Das macht man unter Menü Projekt -> Configuration Options (s. einstellung.gif). Sonstige Einstellungen habe ich keine gemacht. Wie gesagt, das ist IMHO nicht so einfach aufzusetzen. Vielelicht gibt es bessere Tutorials in denen diese Schritte besser erklärt sind.
Ja, es war meine veraltete WinAVR Installation bei den Problemen mit dem Atmega328P. In dem Arduino-Paket 0022 ist ein WinAVR-20081205 drin. Damit kann ich die Sourcen auch für den Atmega328P übersetzen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.