www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Startadresse Bootloader Atmega8


Autor: Balter Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe einen Bootloader für einen Atmega8 geschreiben. Ich benutze
Winavr und mein Sourcecode ist in C.Ich verwende die library boot.h.
Mein Problem ist dass mein Programm nicht an der Adresse 1C00
(Startadresse Bootloader) sonder an der adresse 00 beginnt.

Was muss ich tun um die Startadresse zu ändern??
Weiters wie kann ich das bit BOOTRST verändern(C routine)??

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BOOTRST ist doch eine Fuse, die kann man doch garnicht mit Code
verändern, oder?

Autor: Balter Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens

Die BOOTLOCKBITs sind doch auch FUSES und di kann man auch ändern...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, wirklich? Das wußte ich nicht...

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Lockbits sind keine Fusebits. Lesen kann man beide vom Programm aus,
programmieren jedoch nur die Bootloaderlockbits.

Matthias

Autor: Balter Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, .....

Aber wie kann ich dann zwischen einem start der Applikation, bzw. des
bootloaders Entscheiden?

Wie kann ich dem AVR mittteilen dass ich vo meine Applikaton starten
will, bzw wie kann ich meine Applikation beibringen dass ich beim
neustart den den bootloader miteinbeziehen will??

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

der Bootloader startet immer und abhängig von einer Bedingung startet
dieser entweder sofort die Anwendung oder wartet auf ein neues
Programm. Diese Bedingung kann ein Pin bestimmten Pegels sein, ein
Zeichen das spätestens nach x ms über den UART reinkommt oder
sonstwas.

Matthias

Autor: Balter Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, dass habe ich verstanden aber,
wie implementiere ich "starte das Programm"????

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

kommt auf die Sprache an. In ASM dürfte ein {r|e}jmp 0 reichen. In C
kannst du das über einen Funktionspointer oder mittles inline ASM
lösen.

Matthias

Autor: Balter Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
guuut....
vielen dank mal.

Jetzt muss ich nur noch wissen wie man den c code bei der Adresse 1C00
Plaziert?????

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

eine komplette Bootloaderimplementierung in C sammt passendem makefile
findest du in meinem USBisp Projekt -> www.matwei.de

Matthias

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.