AVR Bootloader im Programm starten

Gast #4892479
Hallo zusammen,
Ich habe eine selbstgebaute Mikroncontrollerplatine mit einem 
ATmega32U2, der von Werk aus einen USB-Bootloader besitzt. Über diesen 
Programmiere ich den Controller und da ich damals auf einen Reset Taster 
verzichtet hat, muss dieser über die Software aktiviert werden. Dazu 
verwende ich folgende Routine:

  USB_Disable();

  Delay_MS(2000);

  cli();

  PORTB = 0x00;

  Delay_MS(2000);

  _asm_ ("jmp 0x7000;");


Das funktioniert in 20% der Fälle und in den restlichen hängt der uC 
sich irgend wo auf und macht nichts, bis ich einen Hardware Reset 
durchführe. Es ist schon eine Weile her, dass ich dies programmiert habe 
und ich konnte auch nicht mehr herausfinden woher ich die Adresse 0x7000 
habe, jedoch gehe ich davon aus das, das der Anfang vom Bootloader ist.

Hat jemand eine Idee das ganze zuverlässiger zu gestalten?
Gast #4892553
> ...Adresse 0x7000..., das der Anfang vom Bootloader ist

Byte oder Wort? Im Datenblatt finde ich nur 0x3800 (neben 0x3C00, 0x3E00 
und 0x3F00) unter "Boot Size Configuration(1)(Word Addresses)".
  Auch könnte es vielleicht sein, dass der Programmierer sich auf die 
Defaultwerte der SFRs nach einem Reset verlassen hat, was ja später 
nicht mehr gegeben ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.