Forum: Mikrocontroller und Digitale Elektronik ATtiny mit Arduino als ISP


von Henrik S. (Gast)


Lesenswert?

Hallo,

Ich versuche momentan einen ATtiny44 über einen Arduino Uno als ISP zu 
programmieren. Das Problem liegt momentan bei Eclipse, weil ich dort 
beim kompilieren immer diese Fehlermeldung bekomme:
1
09:57:27 **** Incremental Build of configuration Debug for project test ****
2
Info: Internal Builder is used for build
3
"C:\\WinAVR\\bin\\avrdude" -pt44 -cavrisp -PCOM3 -b19200 -Uflash:w:test.hex:a 
4
5
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny44
6
avrdude: AVR device initialized and ready to accept instructions
7
8
Reading | ################################################## | 100% 0.07s
9
10
avrdude: Device signature = 0x1e9207
11
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
12
         To disable this feature, specify the -D option.
13
avrdude: erasing chip
14
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny44
15
avrdude: reading input file "test.hex"
16
avrdude: error opening test.hex: No such file or directory
17
avrdude: input file test.hex auto detected as invalid format
18
avrdude: can't open input file test.hex: No such file or directory
19
avrdude: write to file 'test.hex' failed
20
21
avrdude done.  Thank you.
22
23
24
09:57:29 Build Finished (took 1s.553ms)

Ich habe das AVR-Eclipse-Plugin istalliert und so eingestellt, wie 
vorgegeben. Ich probiere nun schon seit Stunden mit Eclipse herum und 
bekomme immer die Fehlermeldung "test.hex not found" in irgend einer 
Form.

Jemand Ideen?

Danke schonmal,

Henrik

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

avrdude findet test.hex nicht.

Ist es da ? Im gleichen Verzeichnis ? Ansonsten würde ich da den
Pfad mit eingeben.

von Henrik S. (Gast)


Lesenswert?

Es ist nicht da, wo es sein sollte bzw. dort, wo AVRdude es sucht. es 
ist aber auch nirgendwo sonst.

So, wie ich das verstanden habe, wird erst eine Datei test.elf erzeugt, 
aus der das ein test.hex gemacht wird. Aber keine von beiden gibt es auf 
meinem System.

von Henrik S. (Gast)


Lesenswert?

Gute Neuigkeiten: Ich habe das ganze schonmal so zum laufen gebracht, 
dass ich jetzt einen µC so programmieren kann, wie ich mir das 
vorstelle.

Das problem ist jetzt aber, dass alles viel zu viel Platz wegnimmt. Das 
LED- Blink-Programm hat so 3,5 kB: in (.text + .data + .bootloader):
1
 
2
#include <avr/io.h>
3
4
#include <util/delay.h>
5
6
#define PAD_LED  1
7
#define PORT_LED PORTB
8
#define DDR_LED  DDRB
9
10
int main(void){
11
    DDR_LED  |= (1 << PAD_LED);
12
   
13
    while(1){
14
       
15
        PORT_LED |= (1 << PAD_LED);
16
        _delay_ms(250);        // Warte 250ms
17
        PORT_LED &= ~(1 << PAD_LED);
18
        _delay_ms(250);        // Warte 250ms
19
    }
20
 
21
22
return 0;
23
}

Weiß jemand, wie ich das niedriger bekomme?

Henrik

von chris_ (Gast)


Lesenswert?

Die _delay_ms Funktionen sind enorm Platz fressed. Ersetze sie am besten 
durch for-Schleifen oder einen Timer.

von Ralph S. (jjflash)


Lesenswert?

Sorry erstmal für eventuelle Schreibfehler, der Text wird mit Handy 
getippt. Die Delay Routinen in Util sind nicht so groß als daß sie 3,5 k 
Code verursachen, das riecht vielmehr nach nich eingeschaltezer 
Compileroptimierung. Wenn der Compiler AVR-GCC ist, die Option -Os 
einschalten. Gruß Ralph

von Henrik S. (Gast)


Lesenswert?

Also das mit dem Delay war auf jeden Fall schonmal für die enorme Größe 
verantwortlich.

Die Optimierung habe ich auch versucht, die funktioniert wunderbar (also 
was die Größe betrifft), allerdings geht es dannach nicht. AVRdude haut 
das problemlos auf den µC, der macht aber nichts. Das gilt für alle drei 
Optimierungsstufen.

Hab ich da war übersehen?

Henrik

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
Noch kein Account? Hier anmelden.