Forum: Mikrocontroller und Digitale Elektronik Schlanker Bootloader für Mega AVR


von Markus B. (Firma: Embedit Mikrocontrollertechnik) (_mb_)


Lesenswert?

Hi,
ich habe mich schonmal ein wenig bei den ganzen Bootloadern umgeschaut, 
aber "der richtige" war irgendwie noch nicht dabei.

Ich suche einen Bootloader für die Mega AVR, also ab Mega8 bis zum 
Mega2560, der möglichst schlank ist und nur die wichtigen 
Grundfunktionen bietet, also hauptsächlich Flash und Eeprom 
programmieren, aber keine Fusebits. Auslesen ist auch nicht nötig. Er 
braucht kein Autobaud, darf gerne den Hardware UART verwenden und sollte 
ohne propitäre Windowssoftware auskommen.

Angeschaut hab ich mir vor allem den von Peter Fleury, Peter Dannegger 
und Megaload, aber auch ein paar kleinere.

Was gibt es denn noch auf dem Markt?

von Andreas K. (a-k)


Lesenswert?


von Markus B. (Firma: Embedit Mikrocontrollertechnik) (_mb_)


Lesenswert?

Ja, stimmt, den hab ich vergessen. Allerdings finde ich das auch nicht 
gerade glücklich mit dem Terminal und dem Motorola s-record

Und ich hatte gehofft den Code in 512 Byte zu kriegen. Naja, mal schauen

von Christian U. (z0m3ie)


Lesenswert?

Programmier ihn dir einfach selber ist wirklich nicht schwer. Seriell 
sollte das in 2h erledigt sein. die avr libc liefert ja schon alles was 
aufwendiger ist mit.

von Andy (Gast)


Lesenswert?


von Andreas K. (a-k)


Lesenswert?

Markus Burrer wrote:

> Ja, stimmt, den hab ich vergessen. Allerdings finde ich das auch nicht
> gerade glücklich mit dem Terminal und dem Motorola s-record

Du willst also einen Bootloader, der auf PC-Seite weder spezielle 
Software benötigt, noch mit einem Terminalprogramm arbeitet. Wie stellst 
du dir das vor?

von Markus B. (Firma: Embedit Mikrocontrollertechnik) (_mb_)


Lesenswert?

Ich meine damit das der Bootloader zb mit avrdude zusammenarbeitet bzw 
AVR109 kompatibel ist.

Aber mal schauen, ich denke ich werde ihn selbst schreiben.

von Andreas K. (a-k)


Lesenswert?


von Rick Dangerus (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Andreas Kaiser wrote:
> So einer steckt im Butterfly drin.

Wobei damit doch recht viel Leute Probleme melden.
Er soll sich wohl öfter mal selbst zerstören und muß dann per SPI wieder 
draufgebrannt werden.


Peter

von 6641 (Gast)


Lesenswert?

Keine Windwos software... Die bestehende Windowssoftware is eher auf der 
mageren seite.

von rene (Gast)


Lesenswert?

Aeh, ich hab'n Bootloader geschrieben, der benoetigt nur einen kleinen 
Socket_zu_Serial Umsetzter, dann kann man den Browser verwenden. Wird 
bald auf den Markt kommen.

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Peter Dannegger wrote:
> Andreas Kaiser wrote:
>> So einer steckt im Butterfly drin.
>
> Wobei damit doch recht viel Leute Probleme melden.
Die Probleme beruhen darauf, das einige Versionen des BF mit einem 
Bootloader ausgeliefert wurden, der eine "write avr lock-bits"-Funktion 
bietet. Eine für ein Einsteigerbastelspielboard unglückliche Funktion, 
da man sich so aussperren kann, dass nur noch ISP/JTAG/HV-Prog hilft. 
Eigentlich ist das aber kein Fehler. Da lock-bits mit einem Bootloader 
nicht zurückgesetzt werden können, kann man sich damit "ausgesperren". 
In den ersten BF-Bootloader Versionen von Atmel gab es diese Funktion 
nicht. In der aktuellen wohl auch nicht mehr (habe nur "alte"). Meine 
GNU-Portierungen auf den o.g. "siwawi-Seiten" beruhen für "bf_boot" auf 
dem alten Atmel Code ohne Lock-Bits, "avrprog_boot" hat nicht mehr viel 
mit dem BF-Bootloader gemeinsam und viele Leute haben Verbesserungen 
beigesteuert.

> Er soll sich wohl öfter mal selbst zerstören und muß dann per SPI wieder
> draufgebrannt werden.
"Selbst zersören" bis dato nicht gehört, die Standardeinstellung für BF 
ab Werk ist, dass der Bootloader sich nicht selbst überschreiben kann 
(SPM in boot-section nicht erlaubt per fuse). Auch wenn die Lock-setzen 
Funktion verfügbar ist und verwendet wurde, ist die letzte per 
Bootloader eingespielte Applikation als auch der Bootloader noch "drin".

von Markus B. (Firma: Embedit Mikrocontrollertechnik) (_mb_)


Lesenswert?

Mal ne blöde Frage: was soll der Support von Fuse-/Lockbits via 
Bootloader überhaupt? Fusebits kann ich in einigen wenigen Fällen ja 
gerade noch verstehen wenn man BOD oder so umstellen will, aber sonst...

von 6641 (Gast)


Lesenswert?

Die Lockbits ? Na, wenn man debugen will sollten die nicht gesetzt sein.

von Hannes L. (hannes)


Lesenswert?

6641 wrote:
> Die Lockbits ? Na, wenn man debugen will sollten die nicht gesetzt sein.

Gibt es (außer in der Serienproduktion) überhaupt einen Grund, mit den 
Lockbits zu spielen?

...

von Andreas K. (a-k)


Lesenswert?

Es soll ja auch Menschen geben, die am Gummiseil von der Brücke 
springen.

von 6641 (Gast)


Lesenswert?

>6641 wrote:
>> Die Lockbits ? Na, wenn man debugen will sollten die nicht gesetzt sein.
>
>Gibt es (außer in der Serienproduktion) überhaupt einen Grund, mit den
>Lockbits zu spielen?

Ja. Wenn man das ding dann weitergibt, und die Internas fuer sich 
behalten moechte. Neben dem Spielerischen gibt es hin und wieder auch 
noch den kommerziellen Aspekt der Elektronik... Nein ?

:-)

von Hannes L. (hannes)


Lesenswert?

6641 wrote:
>>6641 wrote:
>>> Die Lockbits ? Na, wenn man debugen will sollten die nicht gesetzt sein.
>>
>>Gibt es (außer in der Serienproduktion) überhaupt einen Grund, mit den
>>Lockbits zu spielen?
>
> Ja. Wenn man das ding dann weitergibt, und die Internas fuer sich
> behalten moechte. Neben dem Spielerischen gibt es hin und wieder auch
> noch den kommerziellen Aspekt der Elektronik... Nein ?

Doch... Das meinte ich mit "Serienproduktion". Ich hätte vielleicht 
"kommerzielle Serienproduktion" schreiben sollen.

Meist werden die Lockbits aber gesetzt, um den Pfusch zu verbergen und 
nicht um das geniale Programm vor Diebstahl zu schützen.

>
> :-)

auch :-)

...

von 6641 (Gast)


Lesenswert?

Es gibt auch noch die kommerziellen Einzelanfertigungen. Ich gehe mit 
dir einig, dass damit meist der Pfusch verborgen werden soll. Was da 
alles unter IP laeuft... das meiste ist eher trivial.

von Andreas K. (a-k)


Lesenswert?

Warum sollte man einen Bootloader in der Produktion verwenden, wenn der 
nur ein einziges Mal benutzt wird um sich abschliessend per Lockbits den 
eigenen Ast abzusägen? Von allein kommt der Bootloader nicht in den AVR 
rein, irgendwann muss der mal ISP oder HVP gesehen haben. Weshalb man 
sich den Bootloader dann auch sparen kann. Einen Bootloader verwendet 
man beispielsweise, um später aktualisieren zu können.

Und wenn darum geht, den Code davor zu schützen, ausgelesen zu werden: 
Wenn der Bootloader das nicht eigens vorsieht, geht das nur per ISP/HVP.

von Andreas K. (a-k)


Lesenswert?

6641 wrote:

> Es gibt auch noch die kommerziellen Einzelanfertigungen.

Aber wenn das nicht grad ein Trivialprogramm ist, dann ist grad dabei 
nachträgliche Änderung eher die Regel als die Ausnahme.

von 6641 (Gast)


Lesenswert?

Eben. Der Bootloader kann beliebig of gestartet werden, und die lockbits 
neu setzten. Die Lockbits verhindern keine Neuprogrammierung, nur das 
Auslesen.
Neue Produkte von mir werden immer den bootloader drin haben. Dann kann 
der Kunde den Firmwareupgrade selbst machen und ich muss das Porto fuer 
den Versand nicht mehr bezahlen.

von Andreas K. (a-k)


Lesenswert?

6641 wrote:

> Die Lockbits verhindern keine Neuprogrammierung, nur das
> Auslesen.

Wenn man es "richtig" macht schon.

Insofern kommt doch dafür vor allem diese Konfiguration in Frage:
- Auslesen per ISP/HVP abgeklemmt.
- Lock Bits so gesetzt, dass der Bootloader noch arbeiten kann.
Wozu muss man dann noch nachträglich die Lockbits ändern?

von Peter D. (peda)


Lesenswert?

Andreas Kaiser wrote:
> Warum sollte man einen Bootloader in der Produktion verwenden, wenn der
> nur ein einziges Mal benutzt wird um sich abschliessend per Lockbits den
> eigenen Ast abzusägen?

Ein Bootloader kann auch dazu dienen, bei Fremdfertigung den Hersteller 
vor "versehentlicher" Überproduktion zu bewahren.
Du läßt die Geräte extern fertigen und brennst dann per Bootloader nur 
noch die Firmware rein.

Oder Du läßt Dir eine universelle Schaltung fertigen, die erst durch die 
Firmware ihre spezielle Funktion erhält.


Peter

von jim (Gast)


Lesenswert?

Andreas Kaiser wrote:
> Warum sollte man einen Bootloader in der Produktion verwenden, wenn der
> nur ein einziges Mal benutzt wird um sich abschliessend per Lockbits den
> eigenen Ast abzusägen?


Siehe Automobilindustrie, in den Steuergeräten schlummern auch 
Bootloader. Und die Software auslesen kannst du vergessen.

Was denkst du den was bei einer Autoinspektion unter anderem gemacht 
wird, wenn ein dicker Fehler bekannt ist, es wird eine neue Software 
geflasht, wenn der Fehler nicht mit Parameter - Einstellungen gefixt 
werden kann.

Und die Service - Techniker haben mit sicherheit kein Debugger usw.



Gruss

von Andreas K. (a-k)


Lesenswert?

jim wrote:

> Was denkst du den was bei einer Autoinspektion unter anderem gemacht
> wird, wenn ein dicker Fehler bekannt ist, es wird eine neue Software
> geflasht, wenn der Fehler nicht mit Parameter - Einstellungen gefixt
> werden kann.

Ich bezog mich darauf, inwieweit Bootloader Sinn ergeben, die sich per 
Programmierung der Lockbits selbst den Ast absägen können und danach 
mangels Zugriff aufs Flash funktionslos werden. Nicht auf Bootloader 
generell.

von Andreas K. (a-k)


Lesenswert?

Peter Dannegger wrote:

> Ein Bootloader kann auch dazu dienen, bei Fremdfertigung den Hersteller
> vor "versehentlicher" Überproduktion zu bewahren.

Ok, das ergibt Sinn.

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.