Forum: Mikrocontroller und Digitale Elektronik AVR-Programmierung - letzter Schritt


von maths (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe vor, einen atmega8 mit WinAVR mit C zu programmieren.
Da ich kein ISP-Kabel besitze, will ich einen Arduino Mega 2560 in 
seiner Funktion als "AVRISP" verwenden (siehe Anhang).
Ich habe mich nun mit diversen Tutorials beschäftigt und die absoluten 
Grundlagen auch mehr oder weniger verstanden.
Nun habe ich den vorschriftsgemäß über den Arduino mit dem PC 
verbundenen atmega8, ein einfaches Programm und schließlich die Makefile 
(dort bin ich mir allerdings noch nicht 100%ig sicher).

Meine Frage wäre nun, wie ich den µC konkret mithilfe von WinAVR 
programmiere, wenn ich grundätzlich alles fertig vorliegen habe.

Also "welche knöpfe muss ich drücken", damit das Programm, wenn mit 
Makefile und AVRISP alles stimmt, auf dem µC geladen wird?

Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte.

Gruß
Maths


Als Testprogramm habe ich folgenden Code geschrieben:
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
int main(void){
5
6
  DDRD = 0xff;
7
  
8
  while(1){
9
    PORTD = 0xff;
10
    _delay_ms(1000);
11
    PORTD = 0x00;
12
    _delay_ms(1000);
13
  }
14
  
15
  return 0;
16
17
}

Beim Makefile habe ich mit Hilfe von "MFile" aus dem WinAVR-Paket 
lediglich "MCU = atmega8", "AVRDUDE_PROGRAMMER = avrisp" und 
"AVRDUDE_PORT = com4" gesetzt. Den rest habe ich im Ausgangszustand 
belassen.

von Jim M. (turboj)


Lesenswert?

Blode Frage, aber welches Programm läuft auf dem Arduino?

von maths (Gast)


Angehängte Dateien:

Lesenswert?

Auf dem Arduino läuft das Programm "ArduinoISP", das bei der Arduino IDE 
unter Datei>Beispiele>ArduinoISP zu finden ist: "This sketch turns the 
Arduino into a AVRISP"

von Stephan B. (matrixstorm)


Lesenswert?

Hallo.

Anbei ein grober Ueberblick:

1) Programm/ Firmware schreiben, sagen wir datei.c.

2) Diese mittels "avr-gcc datei.c -c -o datei.o" compilieren -> erzeugt 
datei.o

3) Dieses Binaerobject linken: "avr-gcc datei.o -o datei.elf". Dies 
erzeugt eine fertige firmware im "[e]xtended [l]inker [f]ormat"
Diese Datei enthaelt alle Sektionen deiner Firmware getrennt. (Flash, 
PROGMEM, EEPROM, initialisierte und nicht initialisierte Varibalen)

4a) Eine Datei generieren, die die gewünschten Sektionen enthaelt und in 
den AVR geladen werden kann. Da bei AVR die .text 
(Maschinencode+PROGMEM) und .data (initialisierte Variablen) in den 
Flashspeicher geladen werden muessen, erstellt  "avr-objcopy -j .text -j 
.data -O ihex datei.elf datei.hex" die notwenige HEX Datei (im ihex 
Format)

4b) Sollte ein zusaetzlich EEPROM Inhalt benoetigt werden: "avr-objcopy 
-j .eeprom -O ihex datei.elf NUR-eeprom.hex" Die eeprom.hex muss 
allerdings separat in den AVR geschrieben werden.

5) "datei.hex" im gewünschten Programm auswählen und einprogrammieren

6) AVR starten - Spass haben  ;-)

MfG

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.