Go Down

Topic: "Falschen" Prozessor nutzen (Read 3 times) previous topic - next topic

Udo Klein

Schritt 1: In der IDE unter Filer -> Preference "show verbose output during upload" ankreuzen und die detailierte Fehlermeldung posten. Danach kann man schon eher sagen wo das Problem liegt. Und wenn Du den anderen "verbose" Haken auch noch ankreutzt, dann siehst Du auch sofort was in welchen Verzeichnisen los ist.

Und wenn Du es wirklich ganz genau wissen willst: in meinem Buch gibt es ein Kapitel "hinter den Kulissen", da trete ich das richtig breit ;)
Check out my experiments http://blog.blinkenlight.net

Late_night

Danke für den Tip, Udo. Habe ich gleich gemacht.

Das Problem liegt wohl daran, daß die IDE zum Brennen das Programm "C:\Programme\Arduino\hardware/tools/avr/bin/avrdude.exe" aufruft. Dieses ist nur 9kB groß und startet die besagte Dialogbox (wohl durch Aufruf von avrdudefix.exe). Wenn man statt "avrdude.exe" das Programm "avrdude2.exe" mit der gleichen Kommandozeile startet, dann wird prima gebrannt. Die Datei "avrdude2.exe" ist übrigens identisch mit der eigentlichen Datei "avrdude.exe", wie sie z.B. mit WinAVR installiert wird. Sie wurde von den Entwicklern der IDE wohl einfach nur umbenannt, damit das eigene Programm gestartet werden kann, und jetzt nicht mehr gefunden.

Daß es mit meinen anderen Brennprogrammen funktioniert, liegt einfach daran, daß die eine Kopie von "avrdude.exe" finden und benutzen, die sich im Verzeichnis von WinAVR befindet, das auf meinem Rechner ebenfalls installiert ist.

Wie kann ich der IDE beibringen, daß sie bitteschön zum Brennen "avrdude2.exe" aufrufen soll, wie es sich gehört?

Das zweite Problem war mit dem Tracing des Compilierlaufes nicht zu lösen, allenfalls habe ich die Bestätigung für die von mir oben beschriebene Verwendung der Inhaltsverzeichnisse gefunden. Mein Wunsch wäre es ja, die hier aufgerufenen Kommandozeilen nicht nur zu verstehen (das tue ich), sondern so zu ändern, daß sie das tun, was ich gerne hätte, nämlich die Outputfiles des Compilers (HEX, EEP, ELF, ..) direkt neben meinen Quellcode (*.INO) zu schreiben.

Normalerweise stehen solche Kommandozeilen irgendwo in einem Make-File oder Batch-File oder so, wo man dran herumspielen kann ... ich habe es aber nicht gefunden ...  =(


Und wenn Du es wirklich ganz genau wissen willst: in meinem Buch gibt es ein Kapitel "hinter den Kulissen", da trete ich das richtig breit ;)

Nett, das Du die Gelegenheit nutzt, um Werbung für Dein Buch zu machen, das hilft mir aber gerade nicht WIRKLICH weiter. ;)

Gruß

Late_night
(ganz gegen meine Gewohnheiten tagsüber)

Realizer

Da klemmt`s bei mir schon viel weiter vorne. Bei der IDE 1.0.1 kann ich den AVRISP mkII garnicht erst nutzen, da hier keine COM Schnittstelle zur Verfügung steht. Das Auswahlfeld für die serielle Schnittstelle ist ausgegraut. Am Atmelstudio funktioniert es ohne Comport direkt auf den ISP.

Müsste ich da vielleicht noch eine zusätzliche Software (Treiber) intallieren, der mir einen Comport zur Verfügung stellt ? Beissen sich dann vieleicht die beiden Treiber, so wie ich es zuvor schon befürchtet habe? Der Diamex All-AVR scheint irgendwie etwas Besonderes zu sein ;)

Eine Kuh macht muuhh.
Viele Kuehe machen Muehe

Udo Klein

AVRISPmkII braucht keinen Comport. Zur seriellen Kommunikation braucht man einen Comport, das kann ein Programmer logischerweise nicht leisten.

Wenn man den ISP direkt zum Flashen verwenden will kann man das per Eintrag in der Datei boards.txt erledigen:

Code: [Select]

atmega328ispmk2.name=Arduino ATmega328 AvrISPmkII

atmega328ispmk2.upload.maximum_size=32768
atmega328ispmk2.upload.using=avrispmkii

atmega328ispmk2.build.mcu=atmega328p
#atmega328ispmk2.build.f_cpu=16000000L
atmega328ispmk2.build.f_cpu=1000000L
atmega328ispmk2.build.core=arduino


in programmers.txt sollte dazu folgendes drinstehen:

Code: [Select]
avrisp.name=AVR ISP
avrisp.communication=serial
avrisp.protocol=stk500v1

avrispmkii.name=AVRISP mkII
avrispmkii.communication=usb
avrispmkii.protocol=stk500v2


@Late_night
Was avrdude vs. avrdude2 angeht: was hindert Dich daran die Datei avrdude2 auf avrdude zu kopieren? Oder stehe ich gerade auf dem Schlauch.

Quote

Nett, das Du die Gelegenheit nutzt, um Werbung für Dein Buch zu machen, das hilft mir aber gerade nicht WIRKLICH weiter. smiley-wink

Schon klar, kostenlosen Support darf ich immer gerne machen. Ein Buch schreiben, weil hier einige danach gefragt haben, darf ich auch gerne. Einen kostenlosen Blog auch. Darauf hinweisen aber nicht...
Check out my experiments http://blog.blinkenlight.net

sth77


Da klemmt`s bei mir schon viel weiter vorne. Bei der IDE 1.0.1 kann ich den AVRISP mkII garnicht erst nutzen, da hier keine COM Schnittstelle zur Verfügung steht. Das Auswahlfeld für die serielle Schnittstelle ist ausgegraut.

Udo hat ja bereits geschrieben, dass kein Com-Port beim MKII benötigt wird. Wie der Zufal so spielt, habe ich gerade ein jungfräuliches Win7-System aufgesetzt, woraufhin ich auch nochmal den MKII installiert habe. Der funktioniert mit dem libusb-Treiber hervorragend, wobei die Installation mal wieder für ein paar graue Haare sorgte. ;)
Zunächst habe ich mir den aktuellen Treiber besorgt: http://sourceforge.net/projects/libusb-win32/files/
Im Verzeichnis bin gibt es die Datei inf-wizard, die startet man, während der MKII angeschlossen ist. Aus der erscheinenden Auswahlliste (device selection), wählt man den Programmer aus, es werden aber auch andere USB-Geräte gelistet. Daraufhin werden am wählbaren Speicherort Treiber angelegt. Ich habe daraufhin alles, was im Geräte-Manager zum MKII erscheint, deinstalliert und den MKII abgeklemmt und den Rechner neu gestartet. Nach dem Neustart konnte ich aus meiner angelegten Quelle direkt den Treiber installieren - ein kurzer Test brachte die Bestätigung, dass alles reibungslos funktioniert.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Go Up