Pages: [1]   Go Down
Author Topic: Bootloader; Ein unbekanntes wesen?!  (Read 1216 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 92
Time to try and error
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

moinsen,

ich wüsste gerne mal, welche Aufgabe der Bootloader auf dem Arduino hat, ob es ein Bauteil ist oder nur ein Softwarecode und wo dieser Sitzt.

gruß da Hool
Logged

Neuss
Offline Offline
Full Member
***
Karma: 1
Posts: 200
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ich wüsste gerne mal, welche Aufgabe der Bootloader auf dem Arduino hat, ob es ein Bauteil ist oder nur ein Softwarecode und wo dieser Sitzt.

Hallo,

der Bootloader dient dazu, das von dir geschriebene Programm ohne Benutzung eines gesonderten Hardware-Programmierers (AVRISP, STK500 und diverse andere) in den Flash-Speicher des ATMega zu "brennen".

Ist kein getrenntes Bauteil sondern ein Stück Software, das im hinteren Adressbereich des Flashs "wohnt". Der Bootloader-Code wird hinten im Flash-Speicher ausgeführt und schreibt gleichzeitig vorne das neue Programme in den Flash. Wenn er damit fertig ist wird das Programm "vorne" gestartet.

Weitere Infos hier:
 http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung
oder über Google leicht zu finden.

Wolfgang
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 248
Posts: 21167
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab wenig zuzufügen;
Erst der Bootloader macht den Atmega zum Arduino und ermöglicht das einfache Upload aus der IDE heraus.
Grüße Uwe
Logged

0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 92
Time to try and error
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

moin,

ok, also ist der bootloader dazu da um den AT mehrmals zu beschreiben, quasi zu "Brennen", ein RW vorgang.

Wie muss ich denn arbeiten, wenn ich den AT nur einmal richtig Brennen will, quasi fest drauf, nicht löschbar...?
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 248
Posts: 21167
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Der Bootloader ist dazu da, über die serielle Schnittstelle und damit über USB, das Programm zu übertragen.
Alternativ kann man ein Programm mit einem ISP-Programmierer in den ATmega übertragen. Ein Arduino 2009 (nicht Arduino Uno!!) kann als Programmierer verwendet werden.
http://arduino.cc/en/Tutorial/ArduinoISP

Grüße Uwe

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
um den Code unlöschbar zu machen, oder auch das Auslesen des Codes zu verhindern, kann man die sogenannten Fuse-Bits des Atmegas setzen, einige davon sind extra für diesen Zweck. Das geht so viel ich weiss, nicht aus der Software, du benötigst dafür einen Programmieradapter, z.B. einen zweiten Arduino. Geht dabei was schief, kannst Du den Atmega der Tonne beifügen  smiley-cry
 
Eigentlich macht der Bootloader den Atmega zum Arduino, wie uwefed schon geschrieben hat. Der Preis dafür sind ein paar kByte Flash und Du kannst nicht alle Parameter des Atmegas ändern.

Das Programmieren über den Bootloader oder mittels Programmer führt zum gleichen Ergebnis, Zuerst fird der Flashspeicher gelöscht, alle Zellen werden auf "1" gesetzt.
Beim Programmieren werden dann die Zellen, wo nötig, auf "0" gelöscht.

Viele Grüße,
  Alex

Logged

Neuss
Offline Offline
Full Member
***
Karma: 1
Posts: 200
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

um den Code unlöschbar zu machen, oder auch das Auslesen des Codes zu verhindern, kann man die sogenannten Fuse-Bits des Atmegas setzen, einige davon sind extra für diesen Zweck. Das geht so viel ich weiss, nicht aus der Software, du benötigst dafür einen Programmieradapter, z.B. einen zweiten Arduino. Geht dabei was schief, kannst Du den Atmega der Tonne beifügen  smiley-cry

Hallo,

kleine Korrektur: für den Schutz vor Umprogrammieren oder Auslesen des Flashs sind die "Brüder" der Fuse-Bits zuständig, die Lock-Bits.
Die gibt es jeweils für den eigentlichen Programm-Bereich und für den Bootloader-Bereich.

Wenn sie einmal gesetzt sind (d.h auf 0), können sie nicht mehr einfach zurückgesetzt werden. Das geht nur noch über das komplette Löschen des Chips. Auf diese Art kann man die Sperre von Umprogrammieren und Auslesen umgehen, hat aber nix gewonnen, weil das Programm auch futsch ist. Oder doch... Man hat den ATMega vor der Tonne gerettet.

Näheres dazu im Atmel-Datenbuch zum 2560 u.a. im Kapitel 29 Memory Programming:
http://www.atmel.com/dyn/resources/prod_documents/doc2549.pdf

Eine sicheren Schreibschutz gibt es meines Wissens nicht. Mit einem Programmierer kann man den Chip jedenfalls löschen, wenn man unbedingt Böses vorhat.

[Edit]
Kleiner Nachtrag: ich bin gerade mit meinem AVRISP mkII-Programmer auf die Lockbits losgegangen und habe sie umprogrammiert. Beim Versuch sie wieder zurückzusetzen, gibt es eine Fehlermeldung, und den Hinweis, ich möge doch bitte den Chip löschen. Ausprobiert, stimmt. Danach sind die Lock-Bits wieder im Grundzustand. Also Aussage von oben bestätigt!

Gruß
Wolfgang

« Last Edit: March 08, 2011, 02:00:45 pm by voithian » Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 248
Posts: 21167
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Geht dabei was schief, kannst Du den Atmega der Tonne beifügen  smiley-cry
voithian hat es bereits richtig erklärt.
Es gibt aber auch noch eine "Hochspannungsprogrammiermethode" wenn der Controller wirklich zerschossen ist, zB eine unmögliche Taktkombination gesetzt wurde.
Dürfte aber in täglichen Gebrauch von Arduino nie vorkommen, daß man zu diesem Punkt kommt.
Grüße Uwe
Logged

Pages: [1]   Go Up
Jump to: