GCC und Atmega2560

Gast #738525
Lesenswert?

Hallo,

ich versuche jetzt schon seit einiger Zeit mein mc den atmega2560 in 
c/c++ zu programmieren; leider kann ich in der aktuellen version keine 
passende header finden.

Es wird zwar geschrieben das mein mc von gcc unterstützt wird, ich aber 
keine Ahnung habe welche header ich includen muss bzw. wie ich den mc 
dann ansprechen muss...

Hab auch schon gegoogelt, aber nur atmega2560-Dev-Pack gefunden, womit 
ich nicht klar komme...

Über Hilfe wäre ich sehr dankbar (vielleicht auch ein kleines Bsp.prog 
z.B. Led aus/an)

mfg tillt
Gast #739578
Lesenswert?

Hab es ausprobiert und hat geklappt...

Hab jetzt aber ein anderes Problem.. -> ich schaffe es nicht mein mc 
über avr-dude zu programmieren; kriege immer die Fehlermeldung ...device 
com3 can´t open"; woran kann das liegen, Bascom ist die die einzigste 
möglichkeit mein chip zu brennen (was weil ich in c prog ziemlich lästig 
ist)!
Gast #741120
Lesenswert?

Hab jetzt LTP1 eingestellt und kann so mein chip löschen..., aber nicht 
richtig beschreiben; es wird nie das einprogrammiert, was ich schreibe 
und immer der gleiche Fehler zurückgegeben?

Hier ist der Auszug aus meiner Batch-Datei:


C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>make clean

-------- begin --------

Cleaning project:
rm -f main.hex
rm -f main.eep
rm -f main.cof
rm -f main.elf
rm -f main.map
rm -f main.sym
rm -f main.lss
rm -f ./main.o
rm -f ./main.lst
rm -f main.s
rm -f main.d
rm -f main.i
rm -rf .dep
-------- end --------


C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>make all

-------- begin --------
avr-gcc (GCC) 4.2.2 (WinAVR 20071221rc1)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Compiling C: main.c
avr-gcc -c -mmcu=atmega2560 -I. -gdwarf-2 -DF_CPU=8000000UL -Os 
-funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-
adhlns=./main.lst  -std=gnu99 -Wundef -MMD -MP -MF .dep/main.o.d main.c 
-o main.
o

Linking: main.elf
avr-gcc -mmcu=atmega2560 -I. -gdwarf-2 -DF_CPU=8000000UL -Os 
-funsigned-char -fu
nsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes 
-Wa,-adh
lns=main.o  -std=gnu99 -Wundef -MMD -MP -MF .dep/main.elf.d main.o 
--output main
.elf -Wl,-Map=main.map,--cref     -lm

Creating load file for Flash: main.hex
avr-objcopy -O ihex -R .eeprom main.elf main.hex

Creating load file for EEPROM: main.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
        --change-section-lma .eeprom=0 --no-change-warnings -O ihex 
main.elf mai
n.eep || exit 0

Creating Extended Listing: main.lss
avr-objdump -h -S main.elf > main.lss

Creating Symbol Table: main.sym
avr-nm -n main.elf > main.sym

Size after:
AVR Memory Usage
----------------
Device: atmega2560

Program:     322 bytes (0.1% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)



-------- end --------


C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>make program
avrdude -p atmega2560 -P lpt1 -c stk200    -U flash:w:main.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.00s

avrdude: Device signature = 0x1e9801
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 "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (322 bytes):

Writing | ################################################## | 100% 
0.11s

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

Reading | ################################################## | 100% 
0.20s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x0c != 0x0f
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

make: *** [program] Error 1

C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>pause
Drücken Sie eine beliebige Taste . . .

Wo liegt der Fehler... bin am verzweifeln
Moderator Persönliche Seite #741126
Lesenswert?

tillt wrote:

> Wo liegt der Fehler... bin am verzweifeln

Vermutlich daran, dass der SPI-Takt für den Chip zu schnell ist.
Die neuen AVRs kommen im Auslieferungszustand mit einem CPU-Takt
von 1 MHz daher und verkraften dabei höchstens < 250 kHz als
SPI-Takt beim Programmieren.

Leider ist der genaue SPI-Takt bei Bitbang-Programmern nicht so
genau vorhersagbar.  Man kann aber zusätzliche Delays einbauen,
um ihn langsamer zu bekommen, dafür gibt's die -i Option.  Probier's
mal mit -i 10, ggf. genügt auch bereits ein -i 5.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren