AVR Bootloader für AT1280 wird nicht geflasht

Gast #3042567
Lesenswert?
• ▲
▼
Hallo,

ich habe folgendes Problem. Ich wollte für meinen ATmega1280 ein 
Bootloader schreiben. Also versuchte ich einen genau wie bei dem 
Tutorial „AVR_Bootloader_in_C_-_eine_einfache_Anleitung“ einen zu 
Programmieren.

Da dieser schon nicht funktionierte habe ich einfach Programm 
geschrieben das nur eine LED Toggeln lässt.
1
#include <avr/io.h>
2

3
#define LIFEBITCONT      PB3
4
#define LIFEBITCONT_PORT  PORTB
5
#define LIFEBITCONT_DDR  DDRB
6

7
int main()
8
{
9
  LIFEBITCONT_DDR |= (1<<LIFEBITCONT);
10
  do{  
11
    LIFEBITCONT_PORT ^= (1<<LIFEBITCONT);
12
  }while(1);
13
  return 0;
14
}

Flashe ich das Programm ohne der Linker Option (-Ttext=0x1E000) 
funktioniert das Programm wunderbar. Aber das Programm soll ja in die 
Bootloader Section.

Wenn ich das Programm mit der  Linker Option (-Ttext=0x1E000) Kompiliere 
und mir die HEX File anschaue sieht auch alles richtig aus, zumindest 
mit den Adressen. Das Programm fängt ab Adresse 0001E000 an und geht bis 
0001E125. Also alles im grünen Bereich.

Wenn ich dann aber das Programm Flashe , macht der µC nichts. Lese ich 
mir dann den Flash wieder aus und schaue mir das HEX File an steht 
nichts mehr drin.

Als Programmer benutze ich den AVRISP mkII.

Meine Fuses sollten auch richtig sein siehe Anhang.
Benutze ich den Bootlader  „AVR-Bootloader mit Verschlüsselung von Hagen 
Re“ funktioniert dieser ohne Probleme. Schau ich mir aber die HEX Datei 
an fängt dieser erst bei 0001FC00 an. Warum???

Ich hoffe das ihr mir helfen könnt.

Vielen Dank schon mal.
Angehängte Dateien:
#3046678
Lesenswert?
• ▲
▼
In HEX Dateien sind die Adressen "Byte Adressen", der AVR organisiert 
seinen Programmspeicher aber Wortweise. Das hat bei GCC unter AVR-Studio 
zur Folge, dass du in den Speicheroptionen das Code Segment nach 0xf000 
legen musst (so steht es auch in deinem Bild der Fuses). Im Makefile 
steht dann aber 0x1e000.

Wenn nach dem Flashen nichts im Speicher steht, hast du nicht geflasht 
sondern nur simuliert.

Und noch ein Hinweis: das Code Segment heißt oft ".text" und nicht 
"text".

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.