www.mikrocontroller.net

Forum: Compiler & IDEs GCC und Atmega2560


Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in meiner aktuellen Version gibts die iom2560.h durchaus. Abgesehen 
davon wird die Device-spezifische Headerdatei sowieso nie direkt 
eingebunden, sondern immer nur die allgemeine io.h. Das Device wird im 
Makefile angegeben, um den Rest brauchst Du Dich nicht zu kümmern.

Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für den Tipp!
werd es heut noch ausprobieren

grüße tillt

Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)!

Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Benutze ein STK200 (von Bascom)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
com3 (ein serieller Port) passt nicht zu STK200 (ein paralleler
bit-bang programmer).  Meine Kristallkugel ist leider gerade zur
Reparatur, damit weiß ich nicht so ganz genau, wie dein Programmer
angeschlossen ist bzw. was dich veranlasst hat, com3 irgendwann
irgendwie irgendwo einzustellen.

Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo muss ich das -i einfügen?

Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit BASCOM kann ich die Fusbits auslesen, das Programm zeigt mir 8 Mhz 
an, soll ich die FUSEBITS mit BASCOM umprogrammieren?

Autor: tillt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
????

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.