PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino Duemillenova mit Eclipse Programmieren



Kucky
23.04.2010, 20:05
Hallo zusammen,
ich versuche seit langem hier eine Antwort auf o.g. Problem zu finden. Vielleicht sind meine Fragen zu blöde, aber ich hatte gehofft, dass auch Anfänger mal eine erschöpfende Antwort bekommt. Wenn ich mir das Forum so durch schaue, sind hier einige Fachleute am Werk. Es kann aber auch sein, dass ich in der falschen Rubrik gepostet habe. By the Way. Ich habe nun den größten Teil selbst gelöst, bzw. mit dem Tutorial AVR-Eclipse [EPWiki].
Ich möchte meine Arduino mit Eclipse programmieren.
Nun bleibt aber ein Fehler übrig, den ich nicht verstehe:

**** Build of configuration Debug for project Hello_Blink ****
make all
Invoking: Print Size
avr-size --format=avr --mcu=atmega328p Hello_Blink.elf
AVR Memory Usage
----------------
Device: atmega328p
Program: 8184 bytes (25.0% Full)
(.text + .data + .bootloader)
Data: 482 bytes (23.5% Full)
(.data + .bss + .noinit)
Finished building: sizedummy
Invoking: AVRDude
C:\WinAVR\bin\avrdude -pm328p -carduino -Pavrdude -atmega328 -carduino -PCOM3 -U flash:w:Hello_Blink.hex -b115200 -Uflash:w:Hello_Blink.hex:a

[highlight=red:6718e9eeae]http://C:\WinAVR\bin\avrdude: unknown option – a[/highlight:6718e9eeae] :-s
Wo habe ich den Parameter "a" eingefügt, isch weiß et nett.
http://g:\userdaten\Willi\Desktop\bild.png

Die Zeile: “override default Port” lt. Bei mir -
avrdude -atmega328 -carduino -PCOM3 -U flash:w:G:\UserDaten\Willi\Documents\Programmierun g\Arduino\workspace\Hello_Blink\debug\Hello_Blink. hex

Der Dateiname ist richtig, und liegt bei mir im Pfad:
G:\UserDaten\Willi\Documents\Programmierung\Arduin o\workspace\Hello_Blink\Debug\Hello_Blink.hex

Ferner ist GIVEIO scheinbar nicht installiert. Muss das sein? Lt. Tutorial ja. Wie geht das? Der Treiber giveio.sys ist vorhanden.

Ich benutze
Windows7
Arduino Duemilenova mit ATmega328p
Eclipse Galileo
Winavr 20100110

Es wäre schön, wenn sich jemand findet. Bin für jede konstruktive Antwort dankbar.
Gruß Willi O:)

Kucky
23.04.2010, 20:09
Habe versucht ein Bild mit der Fehlermeldung einzubinden. Hat nicht geklappt.
Die Meldung besagt, dass keine Kommunikation zum MC stattfindet, weil Dateiname, Pfad oder Datenträgerbezechnunf falsch seien.

m.a.r.v.i.n
25.04.2010, 14:56
Hallo Kucky,

die avrdude Befehlszeile sieht etwas merkwürdig aus. So sieht z.B. die Befehlszeile bei mir für ein Duemilanove Board unter der Arduino IDE aus:


avrdude -pm328p -cstk500v1 -P\\.\COM24 -b57600 -D -Uflash:w:C:\Programme\arduino-0017\examples\Digital\BlinkWithoutDelay\applet\Bli nkWithoutDelay.cpp.hex:i


Was AVR Programmierung unter Eclipse betrifft, bin ich selbst ein gebranntes Kind. Nachdem ich unter Eclipse 3.0 es mit viel Mühen geschafft hatte AVR Projekte zu übersetzen war nach einem Update auf Eclipse 3.2 alles anders und es funktionierte nichts mehr. Damit war das Thema Eclipse für mich beendet. :(

Kucky
25.04.2010, 15:41
Hallo m.a.v.i.n.
Vielen Dank für die Antwort. Hatte schon alle Hoffnung auf Hilfe aufgeben. Ich hatte schon das Gefühl, ich bin der einzige Unwissende. Ich bin auch bald soweit, dass ich Eclipse den Rücken drehe. :frown: Ich wollte einfach nur eine andere IDE als die des Arduino nehmen, um Programmfehler besser zu finden und etwas mehr Komfort hat. Ich bin echter Anfänger, der sich ein neues Hobby gesucht hat. Und das ist viel zu interessant, als das ich mir den Spaß von einer zu "simplen" IDE verderben lasse. Kannst Du mir eine andere empfehlen? Ich möchte mich ehrlich gesagt, auf die "Aktionen" meines Robots konzentrieren, als auf Eclipse.
Nun zu Deiner Antwort, bevor ich das ausprobiere. Heißt das, dass ich die Zeile in mein Eclipse Projekt eintragen sollte, in Abänderung der örtlichen Gegebenheiten, wie z.B. Dateiname, Pfad etc.
Gruß aus dem Garten :D
Willi

m.a.r.v.i.n
25.04.2010, 21:28
Hallo Willi,

nein, Dateiname oder Pfade musst du nicht ändern, aber einige Optionen wie -atmega328 oder -carduino sind schlichtweg falsch.
-pm328p ist für den Prozessor
-cstk500v1 für den Programmer

Als Alternativ IDE verwende ich ansonsten noch AVRStudio, da ich damit auch debuggen kann.

Kucky
25.04.2010, 22:26
Vielen Dank erstmal. Letzter Versuch
Habe die Kommandozeile wie folgt geändert:
avrdude -pm328p -cstk500v1 -PCOM6 -b57600 -D -Uflash:w:G:\UserDaten\Willi\Documents\Programmieru ng\Arduino\workspace\Hello_Blink\Hello_Blink.hex:i



/*
* main.c
*
* Created on: 18.04.2010
* Author: Willi
*/

#include "WProgram.h"

// prototypes
void blink(int n, int d);

// variables
int ledPin = 13; // LED connected to digital pin 13

extern "C" {
void __cxa_pure_virtual()
{
// put error handling here
}
}



void setup(){
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(ledPin, OUTPUT); // sets the digital pin as output
Serial.println("------------------");
Serial.println(" hello world");
Serial.println("------------------");
}

void loop(){

blink(3, 1000); // blink led (n times, ms interval)
delay(5000); // wait 1 sec
}

void blink(int n, int d){
for (int i=0; i<n; i++) {
digitalWrite(ledPin, HIGH);
delay(d/2);
digitalWrite(ledPin, LOW);
delay(d/2);
}
}

int main(void)
{
init();

setup();

for (;;)
loop();

return 0;
}


Die Fehlermeldung lt.
---
**** Build of configuration Debug for project Hello_Blink ****

make all
Invoking: Print Size
avr-size --format=avr --mcu=atmega328p Hello_Blink.elf
AVR Memory Usage
----------------
Device: atmega328p

Program: 8184 bytes (25.0% Full)
(.text + .data + .bootloader)

Data: 482 bytes (23.5% Full)
(.data + .bss + .noinit)


Finished building: sizedummy

Invoking: AVRDude
C:\WinAVR\bin\avrdude -pm328p -cstk500v1 -Pavrdude -pm328p -cstk500v1 -PCOM6 -b57600 -D -Uflash:w:G:\UserDaten\Willi\Documents\Programmieru ng\Arduino\workspace\Hello_Blink\Hello_Blink.hex:i -Evcc -Uflash:w:Hello_Blink.hex:a
avrdude: WARNING: -E option not supported by this programmer type
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done. Thank you.

make: *** [avrdudedummy] Error 1
---

Das Projekt ist in Eclipse angelegt. Die .hex Dateil liegt im Debugverzeichnis. Meine Versuche habe ich übrigens mit dem [EP-Wiki] von Burli unternommen.
VG
Willi

m.a.r.v.i.n
26.04.2010, 08:52
Hallo Willi,

das sieht doch schon besser aus. Was jetzt noch fehlt ist das Auto Reset für das Arduino Board. Das nimmt dir ja die Arduino IDE beim Flashen ab, bei Eclipse mußt du schon selbst den Reset Knopf drücken. Da muß man dann ein wenig rumprobieren, um den richtigen Zeitpunkt zu finden.

Kucky
26.04.2010, 15:46
Hallo m.a.r.v.i.n
bin derzeit noch bei meiner "Nebenbeschäftigung". :wink:
Werde das heute abend versuchen. Im Voraus aber vielen Dank für Deine Mühe. Bis gleich.
Willi

Kucky
26.04.2010, 18:31
Hallo M.a.r.v.i.n
Habe es direkt ausprobiert, mit den geposten Einstellungen. Hier die Fehlermeldung. Sie kommt sofort, keine Chance den Resetbutton zu drücken oder gedrückt zu halten.
http://img62.imageshack.us/img62/4531/erroreclipse.png (http://img62.imageshack.us/i/erroreclipse.png/)


VG
Willi

Kucky
29.04.2010, 06:18
Hallo M.a.r.v.i.n
also ich gebe jetzt Eclipse auf, bevor ich mir den ganzen Spass verderbe. Ich habe aber noch eine Frage. Ich habe igendwo gelesen,
(http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1223223381 (2. Topic))
dass AVR-Studio nur C, nicht aber C++ kann, und die Arduinosoftware eine Mischung daraus ist. Ist aber eine ältere Aussage. Stimmt die noch?
VG
Willi

Kucky
19.09.2010, 15:07
Hallo M.a.r.v.i.n
habe Eclipse doch nicht aufgegeben, sondern endlich mit Forumhilfe zum Laufen gebracht. Es lag im Prinzip an der Kommandozeile des AVR C++ Linkers an den 2 Strichen vor "-- cref". Ist ´ne echt tolle Oberfläche.
Nun habe ich aber zeitweise ein Problem beim flaschen was echt nervt.

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "Kucky_2.hex"
avrdude: input file Kucky_2.hex auto detected as Intel Hex
avrdude: writing flash (7272 bytes):

Writing | ################################################## | 100% 3.62s

avrdude: 7272 bytes of flash written
avrdude: verifying flash memory against Kucky_2.hex:
avrdude: load data flash data from input file Kucky_2.hex:
avrdude: input file Kucky_2.hex auto detected as Intel Hex
avrdude: input file Kucky_2.hex contains 7272 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 3.09s

avrdude: verifying ...
avrdude: 7272 bytes of flash verified

avrdude done. Thank you.

avrdude finished
Lt dieser Meldung ist doch alles OK, trotzdem wird nicht immer geflasht. Manchmal hilft nur ein Rechnerneustart, oder ein kurzzeitige lösen der COM-Verbindung.
Ich hatte mal irgendwo gelesen, das der Reset-Button am Arduino zu einem bestimmten Zeitpunkt gedrückt werden muss. Ist das so? Und wenn Ja, wann?
Kannst Du auch in diesem Falle helfen?

Kucky
19.09.2010, 20:21
Sorry Marvin,
wer lesen kann ist klar im Vorteil. https://www.roboternetz.de/phpBB2/images/smiles/icon_sad.gif Du warst es selber mit dem Reset-Button. Hatte ich übesehen. Habe das Problem eben wohl gelöst. Ich hatte wohl vergessen, das Terminal zu schließen. Nichts für ungut.
Gruß Kucky

Kucky
23.09.2010, 20:30
Hallo M.a.r.v.i.n
ich muss Dich nochmal behelligen. Mein Arduino läuft mittlerweile mit Eclipse. Habe viel dazu gelernt. Mein Projekt macht ebenfalls Fortschritte auf der C-Seite. Nun ist es aber so, dass der Arduino nicht mehr geflasht wird. Obwohl diese Meldung kommt:


Launching C:\WinAVR\bin\avrdude -pm328p -cstk500v1 -P//./COM4 -b57600 -F -Uflash:w:Kucky_2.hex:a
Output:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "Kucky_2.hex"
avrdude: input file Kucky_2.hex auto detected as Intel Hex
avrdude: writing flash (7276 bytes):

Writing | ################################################## | 100% 3.63s

avrdude: 7276 bytes of flash written
avrdude: verifying flash memory against Kucky_2.hex:
avrdude: load data flash data from input file Kucky_2.hex:
avrdude: input file Kucky_2.hex auto detected as Intel Hex
avrdude: input file Kucky_2.hex contains 7276 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 3.08s

avrdude: verifying ...
avrdude: 7276 bytes of flash verified

avrdude done. Thank you.

avrdude finished

Nach einem Rechner-Neustart funktioniert es ca. 3mal, dann erscheint diese Meldung, aber das alte Programm ist noch aktiv. Ich kann das an einer Datumsanzeige im Programm sehen.
Die Meldung "not sync...." erscheint auch immer öfter, obwohl kein Terminal aktiv ist.
Weißt Du Rat?
Gruß Kucky

Kucky
06.10.2010, 21:19
Nachdem ich nicht weiter kam, habe ich mir einen AVRISPMK2 gekauft. Nun kann ich meinen Arduino mit Eclipse flashen so oft ich will :-). Wenn ich aber den Programmer von der USB-Schnittstelle löse, tut sich nichts mehr. Das kann doch nicht richtig sein. Weiß jemand Rat?
Gruß Kucky