Forum: Mikrocontroller und Digitale Elektronik Bootloader überschrieben??


von Keiner (Gast)


Lesenswert?

Hallo ich habe einen Arduino Uno und wollte darauf ein Sketch hochladen 
darin waren ein paar Bibliotheken enthalten für TFT Touchscreen usw. Das 
hat auch wunderbar funktioniert mir gefiel dann die Schrift nicht und 
ich habe eine Font Bibliothek eingefügt. Beim Hochladen hat dann 
irgendwas nicht funktioniert und seit dem Leuchtet nur noch die Power 
LED und die L LED. Kann es sein das mein Programm zu groß war und der 
Bootloader mit überschrieben wurde. Oder ist das so nicht möglich? Ich 
habe leider nicht auf die größe geachtet und kann jetzt leider auch 
nicht mehr nachgucken weil das Programm schon wieder umgeändert worden 
ist.

von Adam P. (adamap)


Lesenswert?

Keiner schrieb:
> Kann es sein das mein Programm zu groß war und der
> Bootloader mit überschrieben wurde. Oder ist das so nicht möglich?

Kann eigentlich nicht sein.
Der Bootloader ist am Anfang vom Flash, die größe wird über die FUSES 
eingestellt. Macht die Ardunio IDE von sich aus.

Jedoch ist nicht auszuschliessen, dass evtl. etwas anderes bei der 
Übertragung schief gelaufen ist.

Außer du hast nicht über USB mit dem Bootloader dein Sketch hochgeladen, 
sondern mit einem externen Programmer.

: Bearbeitet durch User
von Keiner (Gast)


Lesenswert?

Kann man denn den Bootloader dadurch schrotten wenn was schief läuft??

von Adam P. (adamap)


Lesenswert?

Keiner schrieb:
> Kann man denn den Bootloader dadurch schrotten wenn was schief
> läuft??

Möglich ist alles, auch wenn es eher komisch wäre.
Ich nutze den Bootloader leider nicht (wenn ich mal was mit Arduino 
mache).

Falls du noch ein Ardunio hast, dann nutze den doch als ISP Programmer 
und flash dir auf den UNO wieder den Bootloader.

von Keiner (Gast)


Lesenswert?

Aktuell habe ich keinen hier aber ist bestellt. Der Verkäufer meinte nur 
ob ich den Bootloader überspielt habe aber ich war eigentlich der 
Meinung das es so gar nicht geht

von c-hater (Gast)


Lesenswert?

Adam P. schrieb:

> Der Bootloader ist am Anfang vom Flash

Nein, bei den Mega-AVR8-Arduinos ist er am Anfang des 
Bootloaderbereichs. Dieser wiederum liegt selber aber am Ende des 
Flashs, nicht am Anfang.

Und deswegen ist es (zumindest theoretisch) natürlich durchaus möglich, 
den Bootloader zu überschreiben, wenn die Anwendung zu groß wird.

Allerdings wird beim Arduino typisch das das Schreib-Lockbit für den 
Bootloaderbereich aktiviert, was genau dies wirkungsvoll verhindert. Der 
Bootlader bleibt also erhalten. Aber natürlich ist die Anwendung dann 
unvollständig, was zu beliebigen Fehlfunktionen führen kann. Spätestens 
nach einem Power-Cycle sollte man aber wieder im Bootloader landen.

von Rudolph R. (rudolph)


Lesenswert?

Das ist möglich und das passiert, beim herum Probieren mit Marlin ist 
mir das auch schon passiert, knapp drüber und der Bootloader war 
gekillt.

Beim AVR liegt der Bootloader am Ende vom FLASH und kann nicht geschützt 
werden, dafür muss der Bootloader-Code schon selber sorgen.
Edit: okay, das stimmt nicht, es gibt Lock-Bits mit denen verhindert 
werden kann das SPM in den Boot Loader Bereich schreibt, nur sind die 
Chips üblicherweise nicht gelockt.

Kann auch gut sein das es Arduino-Bootloader gibt die dafür nicht 
anfällig sind.

Bei ARMs liegt der Bootloader am Anfang vom FLASH und kann zumindest bei 
einigen Derivaten wie ATSAMC/ATSAMD gegen einfaches Überschreiben 
geschützt werden.

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Adam P. schrieb:
> Kann eigentlich nicht sein.
Dem stimme ich zu.

Adam P. schrieb:
> Der Bootloader ist am Anfang vom Flash,
Dem nicht.
Er liegt am Ende.

Keiner schrieb:
> Oder ist das so nicht möglich?
Es ist bei einem UNO nicht möglich, dass der Bootloder sich selber 
zerstört.

Rudolph R. schrieb:
> Das ist möglich und das passiert, beim herum Probieren mit Marlin ist
> mir das auch schon passiert, knapp drüber und der Bootloader war
> gekillt.
> Beim AVR liegt der Bootloader am Ende vom FLASH und kann nicht geschützt
> werden, dafür muss der Bootloader-Code schon selber sorgen.
> Kann auch gut sein das es Arduino-Bootloader gibt die dafür nicht
> anfällig sind
Auch bei einem Arduino Mega ist das nicht möglich.

Klarer:
Ich habe keine Ahnung, welche Böcke ihr da schießt.
Aber eins weiß ich ganz genau: Ihr buddelt auf der falschen Baustelle.

c-hater schrieb:
> Allerdings wird beim Arduino typisch das das Schreib-Lockbit für den
> Bootloaderbereich aktiviert, was genau dies wirkungsvoll verhindert. Der
> Bootlader bleibt also erhalten. Aber natürlich ist die Anwendung dann
> unvollständig, was zu beliebigen Fehlfunktionen führen kann. Spätestens
> nach einem Power-Cycle sollte man aber wieder im Bootloader landen.
So ist es.
Wobei die IDE einen anschreit, wenn das Programm zu groß wird.

von Stefan F. (Gast)


Lesenswert?

Soweit ich weiß, reagiert der Flash Speicher empfindlich auf instabile 
Stromversorgung. Unter ungünstigen Umständen können sogar Daten verloren 
gehen, während man ausschließlich lesend darauf zugegriffen hat.

Die Brown-Out Detection (dazu gibt es eine Fuse) sollte das 
zuverlässig verhindern. Aber manchmal hat man gute Gründe, sie nicht zu 
aktivieren.

von Erwin D. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Die Brown-Out Detection (dazu gibt es eine Fuse)

in der Arduino-IDE?
Die Fuses kann ich eigentlich nur mit einem Programmer über ISP setzen.
Oder irre ich mich in diesem Punkt?

von Stefan F. (Gast)


Lesenswert?

Erwin D. schrieb:
> Die Fuses kann ich eigentlich nur mit einem Programmer über ISP setzen.
> Oder irre ich mich in diesem Punkt?

Das stimmt. Wenn man mit der Arduino IDE den Bootloader "brennt" müsste 
der Brown-Out Detector automatisch mit aktiviert werden.

Worum es mir eigentlich ging ist, darauf hinzuweisen, das selbst der BOD 
kein 100% sicheres Mittel ist, Flash-Verluste bei instabiler 
Stromversorgung zu verhindern.

von Rudolph R. (rudolph)


Lesenswert?

Arduino Fanboy D. schrieb:
>> Oder ist das so nicht möglich?
> Es ist bei einem UNO nicht möglich, dass der Bootloder sich selber
> zerstört.
>
> Auch bei einem Arduino Mega ist das nicht möglich.

Das ist ja mal eine mutige Ansage, Du kennst alle verschiedenen Optiboot 
Varianten die so im Umlauf sind?

Es sollte nicht so sein, richtig.

Ich hatte das mit einem Ender3 Board, also einem ATMega1284P.
Bootloader wieder drauf, alles wieder gut.

Was ich hier an Arduinos so herum liegen habe sind Seeduinos, weil ich 
die geschenkt bekommen habe.
Damit habe ich mal probier und in PlatformIO Arduino code erzeugt der 
mit 31204 Bytes etwas zu lang war.
PlatformIO interessiert das noch nicht, das geht offenbar davon aus das 
der Bootloader nur 512 Bytes lang ist.

Flash: [==========]  96.7% (used 31204 bytes from 32256 bytes)

Das wird geschrieben und erst beim Verify wird ein Fehler festgestellt.
Schön, der Bootloader-Bereich von dem Seeduino ist wohl geschützt.

Leider bekomme ich das Ding aus irgendeinem Grund mit dem AtmelICE nicht 
ausgelesen. So als ob ISP bei dem M328P ausgeschaltet wäre.
Nicht mal ein Chip-Erase funktioniert, seltsam.

Aber ganz offensichtlich ist da schon mal kein Bootloader mit 512 Bytes 
drin.

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x7800
         0xff != 0x6f
avrdude: verification error; content mismatch

Damit ist der Bootloader in diesem Uno Clone 2k groß.

von Erwin D. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Worum es mir eigentlich ging ist, darauf hinzuweisen, das selbst der BOD
> kein 100% sicheres Mittel ist, Flash-Verluste bei instabiler
> Stromversorgung zu verhindern.

Ist mir persönlich noch nicht passiert,
aber es gibt ja bekanntlich nichts, was es nicht gibt :-)

von Einer K. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Das ist ja mal eine mutige Ansage, Du kennst alle verschiedenen Optiboot
> Varianten die so im Umlauf sind?
Natürlich!
Es gibt nur einen einzigen offiziellen Bootloader für den Mega.
Da hat sich nie was dran geändert.
Gleiches gilt für den UNO.

Ich will nicht bezweifeln, dass du mit irgendwelchen modifizierten 
Boards, oder Eingenanfertigungen Probleme hast.

Aber mit den originalen hat das nichts zu tun.

Stefan ⛄ F. schrieb:
> Worum es mir eigentlich ging ist, darauf hinzuweisen, das selbst der BOD
> kein 100% sicheres Mittel ist, Flash-Verluste bei instabiler
> Stromversorgung zu verhindern.
Schön, wenn du meinst, dass das so ist.
Aber mit dem Bootloader hat das nichts zu tun.
Es ist ein Fakt, dass dieser sich nicht selbst überschreiben/löschen 
kann.
Wenn denn die Fuses richtig stehen....

von Thomas E. (thomase)


Lesenswert?

Erwin D. schrieb:
> Ist mir persönlich noch nicht passiert

Das ist noch nie jemandem passiert. Er erzählt vom EEPROM. Da lässt sich 
dieser Fehler mit einem ausreichend grossen Kondensator und entsprechend 
langsamem Zusammbruch der Versorgungsspannung ohne BOD zuverlässig 
reproduzieren.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Schön, wenn du meinst, dass das so ist.
> Aber mit dem Bootloader hat das nichts zu tun.

Ja und?

Der TO wollte wissen, was möglicherweise passiert ist. Ist es ein 
Fehler, dabei etwas weiter über den Tellerrand zu schauen?

Muss ich mit jetzt auch noch an den Aussagen zum Bootloader festbeißen, 
nur weil ein paar wenige andere Personen das tun?

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der TO wollte wissen, was möglicherweise passiert ist. Ist es ein
> Fehler, dabei etwas weiter über den Tellerrand zu schauen?

Ja, aber doch nicht so weit, wie du....
Das von dir beschriebene Problem "kann" mit dem EEPROM auftreten, wenn 
BOD falsch oder gar nicht gesetzt ist.

Das das bei korrekt gesetztem BOD auch beim lesen des Flashes passiert, 
ist gänzlich neu für mich. Das Datenblatt hält sich da auch bedeckt. 
Oder kannst du da auf einen Eintrag verweisen?
Von daher, befürchte ich, dass dir da die Fantasie aus dem Ruder 
gelaufen ist.

Siehe:
Stefan ⛄ F. schrieb:
> Worum es mir eigentlich ging ist, darauf hinzuweisen, das selbst der BOD
> kein 100% sicheres Mittel ist, Flash-Verluste bei instabiler
> Stromversorgung zu verhindern.
Ja, eine unsaubere Versorgung, verursacht Resets.
Aber doch keine Flash Verluste im laufenden Betrieb.
Glaubst du da wirklich dran?
Belege?

Oder sprichst du über irgendwelche anderen µC, als AVRs?

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Oder kannst du da auf einen Eintrag verweisen?

Jemand mit Dr. Titel der Beruflich Schaltungen für die KFZ Industrie 
entwickelt wies mich darauf hin, dass das auch mit FLASH passieren kann, 
nachdem es mir mit dem EEPROM passiert ist und ich das ganz überraschend 
fand.

Außerdem hatte ich mal ein Modem, dessen Flash Speicher (da war es noch 
ein separater Chip) spontan Teile seines Inhaltes verlor. Das könnte 
so ein Fall gewesen sein.

von Einer K. (Gast)


Lesenswert?

Alles klar!
Bei irgendeinem ungenannt gebliebenen µC, kann das nach Hörensagen 
passieren.
Und dein Modem hat einen Defekt, oder ist schlampig gebaut.
Kann ja sein .....

Keiner schrieb:
> Hallo ich habe einen Arduino Uno

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Bei irgendeinem ungenannt gebliebenen µC, kann das nach Hörensagen
> passieren.

Es ging um einen AVR, konkret um einen Xmega128D3.

> Und dein Modem hat einen Defekt

Nach Austausch des Flash Speichers lief es wieder für einige Jahre, bis 
ich es nicht mehr brauchte.

> oder ist schlampig gebaut. Kann ja sein .....

das möchte ich nicht behaupten. Es war ein Produkt der Firma Dr. 
Neuhaus. Falls dir das was sagt.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Nach Austausch des Flash Speichers lief es wieder für einige Jahre, bis
> ich es nicht mehr brauchte.
Also, dass ein Flash einen Defekt hat, kann ich mir schon vorstellen. 
Wäre auch nicht der erste defekte Flash, der mir über den Weg läuft.

Aber das hat dann nichts damit zu tun, dass AVRs bei unsauberer 
Versorgung ihren Flash Inhalt Zerrütten.

Das sind zwei völlig unterschiedliche Probleme.
Wirf sie in einen Topf, wenn dir das richtig erscheint.
Aus meiner Sicht ist das allerdings arg irrational.




Stefan ⛄ F. schrieb:
> Es ging um einen AVR, konkret um einen Xmega128D3.
Habe da mal etwas hinterhergesucht, und kann keine gleichlautenden 
Berichte finden. Auch in den Errata nicht.
Da finden sich bei den Xmega schon einige Einträge zum EEPROM, aber 
nicht zu spontanen Flash Verwirrungen.

Kann man das reproduzieren?
Sicher, dass dein Dr, nicht irgendeinen Bock geschossen, oder sich 
geirrt, hat?
------

Nein, ich will keine Antworten auf die Fragen.
Denn ich weiß mittlerweile dass du nicht bereit bist den Rückwärtsgang 
einzulegen.
Und deine Fantasiewelt gönne ich dir.
Auch wenn es mich etwas stört, dass du den Kram als Realität verkaufst.

Wenn du möchtest, dann kann ich ja mal einen Lehrgang mit dir 
durchziehen, wie man den Wahrheitsgehalt von Annahmen und Behauptungen 
halbwegs objektiv einschätzen/beurteilen kann.

Stefan ⛄ F. schrieb:
> Ist es ein
> Fehler, dabei etwas weiter über den Tellerrand zu schauen?
Meistens ja!
Denn hinter dem Tellerrand befindet sich unbekanntes Gebiet.
Nicht wissen usw.
Und daraus kann man NICHTS ableiten.
Schon gar nicht Tipps/Beurteilungen usw.

von Rainer V. (a_zip)


Lesenswert?

Stefan ⛄ F. schrieb:
> Jemand mit Dr. Titel der Beruflich Schaltungen für die KFZ Industrie
> entwickelt wies mich darauf hin, dass das auch mit FLASH passieren kann,
> nachdem es mir mit dem EEPROM passiert ist und ich das ganz überraschend
> fand.

Jetzt mal nur am Rande...ich schätze die Beiträge von Stefan sehr und 
möchte ihm an dieser Stelle sagen, dass er sich sicher nicht hinter 
einer "Dr.-Authorität" verstecken muß! Bei mir galt und gilt nach wie 
vor höchstes Misstrauen, wenn der Doktor "einschreitet". Natürlich 
kommts auch auf den Doktor selbst an :-)
Gruß Rainer

von Percy N. (vox_bovi)


Lesenswert?

Arduino Fanboy D. schrieb:
> Denn hinter dem Tellerrand befindet sich unbekanntes Gebiet.
> Nicht wissen usw.

Sofort alle Forschung einstellen! GEFAHR!

von Adam P. (adamap)


Lesenswert?

c-hater schrieb:
>> Der Bootloader ist am Anfang vom Flash
>
> Nein, bei den Mega-AVR8-Arduinos ist er am Anfang des
> Bootloaderbereichs. Dieser wiederum liegt selber aber am Ende des
> Flashs, nicht am Anfang.

Arduino Fanboy D. schrieb:
> Adam P. schrieb:
>> Der Bootloader ist am Anfang vom Flash,
> Dem nicht.
> Er liegt am Ende.

Ja sorry, war etwas unüberlegt und zu schnell...

Aber sollte der Linker nicht trotzdem ein Fehler werfen,
bzgl. kein Platz im Flash?

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Kann man das reproduzieren?

Wie gesagt, mein Fall auf dem AVR betraf das EEPROM, und ja es war 
reproduzierbar mit einer schlechten Stromversorgung.

In dem Zuge wurde *mir* gesagt, dass das auch der FLASH Speicher 
Inhalte verlieren kann, wenn die Stromversorgung schlecht ist. Das 
wiederum ist mir noch nicht reproduzierbar passiert. Da gab es nur den 
einen Fall mit dem Modem, wo der Auslöser des einmaligen Fehlers 
unbekannt ist.

> Nein, ich will keine Antworten auf die Fragen.
> Denn ich weiß mittlerweile dass du nicht bereit bist
> den Rückwärtsgang einzulegen.

Was soll das werden? Aus meiner Sicht scheinst du mal wieder sehr darauf 
erpicht zu sein, Fehler in meinen Aussagen zu entdecken. Tatsächlich 
führt deine einseitige Sichtweise dazu, dass du den Sinn meiner Aussagen 
verdrehst und mir dann für deine Verdrehten Bedeutungen niedere 
Absichten unterstellst. Kannst du das mal bitte sein lassen?

Um das hier nochmal für dich eindeutig klar zu stellen: Ich habe nicht 
behauptet dass der FLASH Speicher Daten verlieren kann. Das kam von 
dem erwähnten Dr. Man wird ja wohl noch zitieren (bzw. Informationen 
weiter geben dürfen) ohne gleich ein schlechter Mensch zu sein!

Ich würde dir gerne Ersatz für die fehlenden Tassen in deinem Schrank 
schicken. Mache mal eine Liste und schicke mir deine Postanschrift.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Kannst du das mal bitte sein lassen?
Nein!
Begründung folgt.


Stefan ⛄ F. schrieb:
> Was soll das werden? Aus meiner Sicht scheinst du mal wieder sehr darauf
> erpicht zu sein, Fehler in meinen Aussagen zu entdecken. Tatsächlich
> führt deine einseitige Sichtweise dazu, dass du den Sinn meiner Aussagen
> verdrehst und mir dann für deine Verdrehten Bedeutungen niedere
> Absichten unterstellst.
Seit Monaten/Jahren, erwische ich dich immer mal wieder mit 
Behauptungen/Lügen, welcher an den Haaren herbeigezogen sind.

Nicht nur!
In den weitaus meisten Fällen liegst du richtig.
Ich schätze deine Kompetenz.
Oft, stimme ich dir zu.
Und sei es auch nur, in dem ich still mitlese und dabei nicke.
Auch schon ein paar mal öffentlich, wenn du mit einer korrekten 
Argumentation auf Widerstand gestoßen bist.

Aber:
Du machst Projektionsfehler. Ganz grobe Schnitzer.
Welche dann dazu führen, dass deine Argumentationen, die Kausalketten, 
defekt sind. Zwischen Ursache und Wirkung, gibt es einen 
Kausalzusammenhang. Du neigst dazu, wenn dir dieser nicht bekannt ist, 
ihn mit deiner Fantasie dahin zu malen.
Dieses gemalte Fantasiebild, das projizierst du auf die Realität.
Was du dann siehst, ist eine Mischung aus Realität und Einbildung.
Und diese plapperst du hier im Forum raus.
Dabei ist es dir scheiß egal, wie groß der Wahrheitsgehalt ist. Für dich 
ist er hoch, denn du sagst ja nur, was du siehst.

Beispiel:
Die Behauptung, dass es gute Gründe gibt, dass Arduino kein Board mit 
einem Tiny85 herausgebracht hat.
z.B. Sowas interessiert mich. Arduino ist ein Teil dessen, mit dem ich 
mich beschäftige.
Solche Gründe, warum das Arduino nicht tun sollte, sind mit nicht 
bekannt. Dabei kenne ich einige Gründe, warum Arduino das tut, was es 
tut. Aber den nicht.
Also frage ich nach. Ich frage dich dann. Denn du hast ja die Behauptung 
aufgestellt, dass es gute Gründe gibt.
Üblicher weise eierst du dann ein wenig rum, wirfst mir vor, dich in die 
Pfanne hauen zu wollen....
Aber dann kristallisiert sich raus, Du kennst die Gründe gar nicht.
Die Realität sieht eher so aus:
Du hättest "gute Gründe", wenn du Arduino wärst, kein solches Board zu 
produzieren.

Siehst du, was ich meine?
Du projizierst deine Gründe, auf die Arduinos. Obwohl die höchst 
vermutlich nie sowas gesagt haben, oder je dran gedacht. Das ist dir 
aber vollkommen egal. Die Gründe gibt es in deiner Fantasie, und das 
reicht dir, um sie hier raus zu blähen.

Deine Projektion überdeckt die Realität, und wird hier als Wahrheit von 
dir verkauft.

Bedenke:
Ich glaube nicht, dass unbedarfte in der Lage sind dieses sofort zu 
erkennen. Und hier im Forum haben wir es mit Unbedarften zu tun. Nicht 
alle, aber einige nimmst du so auf die Schippe.
Ich bezeichne das mal, als unbeabsichtigtes Lügen und Verarschen.
Ja, unbeabsichtigt. Ein Serientäter ohne Absicht.

Stefan ⛄ F. schrieb:
> Ich habe nicht
> behauptet dass der FLASH Speicher Daten verlieren kann.

Naja...
Stefan ⛄ F. schrieb:
> Soweit ich weiß, reagiert der Flash Speicher empfindlich auf instabile
> Stromversorgung. Unter ungünstigen Umständen können sogar Daten verloren
> gehen, während man ausschließlich lesend darauf zugegriffen hat.
>
> Die Brown-Out Detection (dazu gibt es eine Fuse) sollte das
> zuverlässig verhindern. Aber manchmal hat man gute Gründe, sie nicht zu
> aktivieren.

In dem Augenblick kann ich nur dich fragen!
Da ist noch kein Dr. im Spiel.
Da ist nur deine Behauptung.

Das das schreiben vom Flash, eine stabile Versorgung benötigt...
Unwidersprochen. Steht auch so im Datenblatt.

> Unter ungünstigen Umständen können sogar Daten verloren
> gehen, während man ausschließlich lesend darauf zugegriffen hat.
Das hat sich jetzt als Hörensagen herausgestellt.
Der Versuchsaufbau ist für mich nicht reproduzierbar.
Die Kausalkette ist unvollständig, und damit kaputt.

Natürlich betrifft mich das!
Ich arbeite tagtäglich, seit es (bezahlbare) Flash gibt, mit solchen 
Speichern.
Natürlich frage ich nach, wie du darauf kommst.
Das willst du mir zum Vorwurf machen, dass ich Behauptungen hinterfrage, 
die mich und meine tägliche Arbeit betreffen?

Stefan ⛄ F. schrieb:
> Kannst du das mal bitte sein lassen?
Nein!
Behauptungen, welche mich betreffen hinterfrage ich.
Ich will dann Fakten sehen.


> Die Brown-Out Detection (dazu gibt es eine Fuse) sollte das
> zuverlässig verhindern. Aber manchmal hat man gute Gründe, sie nicht zu
> aktivieren.
Das ist auch so ein Dingen...
Welche Gründe gibt es, BOD nicht zu aktivieren, wenn man sich doch so 
mit hoher Wahrscheinlichkeit Fehlfunktionen einhandelt. Und seien es 
auch nur zerrüttete EEPROM Inhalte.
Der einzige Grund, der mir da spontan einfällt: Dummheit.

Stefan ⛄ F. schrieb:
> Lege dich doch mit dem Dr. an, nicht mir mir!
Kein Interesse mich mit irgendwem anzulegen.
Und doch:
Das ist wieder so eine irrationale Projektion!
Ich kenne weder den Dr., noch ist er irgendwie für mich erreichbar.
In deiner Fantasie/Projektion sollte ich mich lieber mit dem Herrn 
unterhalten.
Eigentlich eine gute Idee!
Nur sieht die Realität anders aus.
Ich habe keine Chance.

Ich gebe dir den Rat:
Überprüfe deine Projektionen sorgfältiger.


----------------

Percy N. schrieb:
> Arduino Fanboy D. schrieb:
>> Denn hinter dem Tellerrand befindet sich unbekanntes Gebiet.
>> Nicht wissen usw.
>
> Sofort alle Forschung einstellen! GEFAHR!

Auch du hast was ganz wichtiges nicht verstanden!
Natürlich sollte man sich schon etwas Mühe geben seinen Horizont zu 
erweitern.
Was dann dazu führt, dass der Tellerrand weiter nach draußen wandert.

Aber über den Rand hinweg ins Unbekannte zu schauen, und aus dem 
Unbekanntem  dann Begründungen/Verhalten und so ein Zeugs abzuleiten ist 
Unsinnig.

Das führt zu irgendwelche wirren Verschwörungstheorien und 
vergleichbaren Blödsinn.
Beispiel: https://youtu.be/W9qH5lbs96M
Da kann man das Tellerrand Paradox erleben.

von Erwin D. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Welche Gründe gibt es, BOD nicht zu aktivieren, wenn man sich doch so
> mit hoher Wahrscheinlichkeit Fehlfunktionen einhandelt. Und seien es
> auch nur zerrüttete EEPROM Inhalte.
> Der einzige Grund, der mir da spontan einfällt: Dummheit.

Da ploppt bei mir sofort eine Frage auf:
Warum hat der Hersteller die BOD als Fuse angelegt und nicht fest 
implementiert? Also scheint es doch Gründe zu geben, sie nicht zu 
verwenden. Welche das sind, weiß ich auch nicht. Aber ich möchte es gern 
wissen.
Hast du eine Antwort?

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Seit Monaten/Jahren, erwische ich dich immer mal wieder mit
> Behauptungen/Lügen, welcher an den Haaren herbeigezogen sind.

Ich habe das also schon korrekt erkannt. Du hast mich auf dem Kieker, 
und das schränkt deine Sicht ein.

von Jens M. (schuchkleisser)


Lesenswert?

BOD verbraucht Strom, und BOD kann nur mit wenigen Stufen umgehen, der 
Prozessor hingegen je nach Stromquelle auch mit anderen Spannungen 
stabil laufen.

Und: ich bin eigentlich davon ausgegangen, das der Bootloader die zu 
schreibende Adresse prüft und sich nicht selbst überschreibt, unabhängig 
der Fuses.
Andere Bootloader (auch auf anderen Architekturen) machen das, aber ich 
hab mir den Optiboot nie angesehen und das auch nicht getestet.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Erwin D. schrieb:
> Warum hat der Hersteller die BOD als Fuse angelegt und nicht fest
> implementiert? Also scheint es doch Gründe zu geben, sie nicht zu
> verwenden. Welche das sind, weiß ich auch nicht. Aber ich möchte es gern
> wissen.
> Hast du eine Antwort?

Der Brown-Out Detektor braucht Strom. Bei Geräten, die lange mit 
Batterien laufen sollen will man ihn eventuell deaktivieren.

von Erwin D. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Erwin D. schrieb:
>> Warum hat der Hersteller die BOD als Fuse angelegt und nicht fest
>> implementiert? Also scheint es doch Gründe zu geben, sie nicht zu
>> verwenden. Welche das sind, weiß ich auch nicht. Aber ich möchte es gern
>> wissen.
>> Hast du eine Antwort?
>
> Der Brown-Out Detektor braucht Strom. Bei Geräten, die lange mit
> Batterien laufen sollen will man ihn eventuell deaktivieren.

Das leuchtet ein. Natürlich.
Also ist es doch nicht nur Dummheit ;-)

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich habe das also schon korrekt erkannt. Du hast mich auf dem Kieker,
> und das schränkt deine Sicht ein.

Dann hast du meinen Text nicht verstanden.

Also nochmal klar:
Wenn du Dinge "Berichtest" welche mich betreffen, dann überprüfe ich sie 
und übernehmen sie nicht einfach in mein Weltbild.

Wenn mir da Diskrepanzen auffallen, frage ich nach bzw. berichte ich sie 
dir.
Ja, das darfst du persönlich nehmen, wenn du das möchtest.
Mache ich aber bei anderen auch so, was du gerne ignorieren darfst.

Du bist da also niemand besonderes für mich, nur eben sehr auffällig und 
leicht überführbar.

------------

Stefan ⛄ F. schrieb:
> Der Brown-Out Detektor braucht Strom. Bei Geräten, die lange mit
> Batterien laufen sollen will man ihn eventuell deaktivieren.

Das kann man auch beim Eintritt in den Schlafmodus tun. Egal wie die 
Fuses stehen. (bei allen AVR?)
Und im Schlaf wird man auch kein EEPROM bespielen, oder FLASH 
beschreiben.
Außerhalb des Schlafmodus, fällt der BOD Verbrauch sowieso nicht auf.
Gerade im Batteriebetrieb ist BOD recht wichtig, damit man sich eben das 
EEPROM nicht schreddert.


-------------

Jens M. schrieb:
> Und: ich bin eigentlich davon ausgegangen, das der Bootloader die zu
> schreibende Adresse prüft und sich nicht selbst überschreibt, unabhängig
> der Fuses.
Nein, der Bootloader prüft da nix.
Es sind die LOCK Fuses, welche verhindern, dass der Bootloader sich 
selber löscht.

von Erwin D. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Gerade im Batteriebetrieb ist BOD recht wichtig, damit man sich eben das
> EEPROM nicht schreddert.

Weil du gerade das Argument von Stefan entkräftet hast, möchte ich dich 
nochmals fragen, warum der Hersteller die BOD mittels Fuse abschaltbar 
gemacht hat. Dein Argument von oben (Dummheit) kann es wohl nicht sein.

von O. R. (oscherischery)


Lesenswert?

Jede Funktion sollte irgendwie abschaltbar sein. Wir hatten einen 
Controller im Einsatz (keinen Atmel), bei dem die Corespannung beim 
Löschen von Flash-Blöcken so sehr gezappelt hat, dass die BOD auslöste 
und den Bootloader in den Reset schickte. Workaround und spätere 
Empfehlung des Herstellers im Errata Sheet war dann keine BOD im 
Bootloader, aktive BOD in der Applikation. Vor solchen Problemen ist 
kein Hersteller sicher, daher will man möglichst flexibel sein.

von Percy N. (vox_bovi)


Lesenswert?

Arduino Fanboy D. schrieb:
> Natürlich sollte man sich schon etwas Mühe geben seinen Horizont zu
> erweitern.
> Was dann dazu führt, dass der Tellerrand weiter nach draußen wandert.

Also den Tellerrand mit sich herumschleppen? Das erinnert mich an eine 
Formulierung von  F. J. Strauß.

von Erwin D. (Gast)


Lesenswert?

Percy N. schrieb:
> Also den Tellerrand mit sich herumschleppen? Das erinnert mich an eine
> Formulierung von  F. J. Strauß.

Und mich erinnert das an Kurt (sorry, böses Wort)

von Stefan F. (Gast)


Lesenswert?

Erwin D. schrieb:
> Weil du gerade das Argument von Stefan entkräftet hast, möchte ich dich
> nochmals fragen, warum der Hersteller die BOD mittels Fuse abschaltbar
> gemacht hat. Dein Argument von oben (Dummheit) kann es wohl nicht sein.

Lass gut sein. Hier weiter nach zu bohren führt nur zu noch mehr 
persönlichen Angriffen die niemandem helfen.

von Percy N. (vox_bovi)


Lesenswert?

Erwin D. schrieb:
> Und mich erinnert das an Kurt (sorry, böses Wort)

So pflegt jeder seine eigenen mehr oder minder traumatischen 
Erinnerungen ...
https://youtu.be/Y_t1KLtK0KI

: Bearbeitet durch User
von Erwin D. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Lass gut sein. Hier weiter nach zu bohren führt nur zu noch mehr
> persönlichen Angriffen die niemandem helfen.

Stefan, ich möchte überhaupt niemanden angreifen. Mich hat es einfach 
interessiert und deshalb hab ich diese Frage gestellt. Ganz ohne 
Hintergedanken. Und mittlerweile sind ja schon einige Argumente genannt 
worden, aufgrund derer nicht ersichtlich ist, wer nun recht hat und wer 
nicht.

von Joachim B. (jar)


Lesenswert?

Arduino Fanboy D. schrieb:
> Kein Interesse mich mit irgendwem anzulegen.

bezweifel ich, mich nimmst du gerne!

Stefan halte ich zu Gute das er seine offensichtlichen Fehler einsieht.
Das kann ich akzeptieren, mich nervt nur sein Helfersyndrom wo er immer 
wieder bei unklarer Ausgangslage helfen möchte wo man nicht helfen kann.
Da versuche ich immer weniger zu helfen, denn mit unklarer 
Wunschvorstellung können nur 90% - 100% aller vorgeschlagenen Hilfen ins 
Leere laufen.

Bei dir hatte ich letztens auch wieder Gepöbel zu mir entdeckt, aber 
wenigstens offen und nie hinterrücks, aber ich sehe nur was geschrieben 
wird.

Also halten wir doch fest, normalerweise kann bei Arduino der Bootloader 
nicht überschrieben werden ohne ISP, aber wir kennen nicht alle 
Umstände, mittlerweile habe ich hier 2 nano die stottern, kann an 
anderem liegen das untersuche ich noch, auch nanos kann man überflashen 
wenn die seit Jahren als Aufbau immer wieder neu programmiert werden und 
andere Fehler können auch eintreten.

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

Arduino Fanboy D. schrieb:
> Das kann man auch beim Eintritt in den Schlafmodus tun. Egal wie die
> Fuses stehen. (bei allen AVR?)

Die P-Typen können so konfiguriert werden, daß sie das selbständig tun.

von Thomas E. (thomase)


Lesenswert?

Stefan ⛄ F. schrieb:
> Arduino Fanboy D. schrieb:
>> Seit Monaten/Jahren, erwische ich dich immer mal wieder mit
>> Behauptungen/Lügen, welcher an den Haaren herbeigezogen sind.
>
> Ich habe das also schon korrekt erkannt. Du hast mich auf dem Kieker,
> und das schränkt deine Sicht ein.

Das liegt auch ein bisschen an dir selbst. Du kommst hier schon das eine 
oder andere Mal mit irgendwelchen Behauptungen, die tatsächlich an den 
Haaren herbeigezogen sind. Ich erinnere nur an deine Ausführungen zum 
Debuggen mit der Waschmaschine.

Aber darum soll es jetzt gar nicht gehen. Daß du ein ausgeprägtes 
Helfersyndrom hast, haben auch schon andere Leute festgestellt. 
Vielleicht solltest du dich da mal ein wenig zurücknehmen: Du mußt nicht 
für alles eine Erklärung liefern.

Das aktuelle Thema kann niemand erklären. Wie so oft sitzt auch hierbei 
wahrscheinlich das Problem wieder einmal vor dem PC. Da hat irgend 
jemand Mist gebaut, kann sich nicht mehr erinnern, was das genau war und 
hofft jetzt auf Hilfe. Die kann ihm in diesem speziellen Fall aber 
keiner geben.

Zum Thema deines unbekannten Dr. als zitierfähige Referenz: Ich hatte 
vor gar nicht so langer Zeit eine Schaltung vorliegen, die nur mit 
Atmega 328P lief, nicht aber mit Atmega 328. Ich behauptete natürlich, 
daß das totaler Unsinn sei.

Das war auch etwas auf Arduino-Basis. Aber mit eigener Hardware. In der 
Software, die mir im Quelltext vorlag, waren so elementare Fehler drin, 
daß ich fast meine Tastatur gefressen habe, als ich das gesehen habe. Da 
gab es nur noch eines: Ein bisschen Reverse Engineering, die Schaltung 
hatte ich nicht vorliegen, und komplett neu schreiben. Seitdem läuft das 
auf allen AVR, die über die benötigte Peripherie verfügen.

Der Experte, der das verzapft hat, ist Professor und Rektor einer TH.

von Einer K. (Gast)


Lesenswert?

Also...

Unerklärliche Flash Desaster, bei aktiviertem Brownout wären der total 
GAU.
Wenn sich das bewahrheiten würde .....

Bisher sprechen meine Erfahrungen klar dagegen.
Das gehört zu den Dingen die nicht auftreten können/dürften.
Das würde die µC Familie zum Tode verurteilen. Freiwillig in ein Gerät 
einbauen, welches mit X% Wahrscheinlichkeit in der Garantiezeit kaputt 
geht?
Nein!
In der Industrie? Ganz Sicher nicht.

Einen solchen Wackelkandidaten setzt man nicht freiwillig ein, wenn es 
gleichwertige/bessere Alternativen gibt.

Die Preisfrage ist ja:
Wie hoch ist die Wahrscheinlichkeit, dass der Flash Inhalt "erodiert", 
ohne dass ein konkreter Defekt vorliegt?
Da spielt das Alter eine Rolle, die Betriebsstunden, die Temperatur, die 
Anzahl Löschungen. Und so weiter.
Wo ist da der Verfall durch Spannungsschwankungen trotz BOD 
unterzubringen. Mit wie viel Prozent trägt das zur 
Ausfallwahrscheinlichkeit bei?

Die Ausfallwahrscheinlichkeit von AVR ist bei mir bisher NULL.
OK, den ein oder anderen habe ich schon gemeuchelt.
Aber da wars immer ich.


-------------------

Zu der Frage, soll man Brownout abschalten?
Ist mir egal.

Aber dumm am abgeschaltetem Brownout ist halt, dass alles passieren 
kann!
Der µC darf jeglichen Unsinn bauen, wenn man ihn außerhalb der 
Spezifikation betreibt.
Ich finde, das ist ein Punkt, welcher klar hervor sticht.

Als gültigen Kompromiss, finde ich es toll, den Brownout abzuschalten, 
wenn es in den Tiefschlaf geht.

Man könnte einen AVR wählen, welcher das kann.
Oder muss eben mit den Folgen/Risiko leben.

So, das war eine Meinungsäußerung, welche keinesfalls Anspruch auf 
absolute Objektivität erhebt. Auch keine Religion/Doktrin.

Und sowieso...
Meinungen darf es viele geben.
Ich selber haben manchmal durchaus mehrere Meinungen zu einem Thema. Die 
dürfen sich ruhig widersprechen.

Aber, zum Glück, gibt es nur eine einzige Realität. Eine!
Die können wir nicht, oder nur eher winzige Aspekte davon, wahrnehmen.

Auch die immer wieder aufpoppende Frage, oder Priestertreffen, welche 
Sprache ist die beste?
Ist mir egal!
Vor und Nachteile findet man bei jeder.
Ich unterhalte mich gerne über die verschiedenen Aspekte einer solchen 
Sprache.
Es gibt Fakten, eben die, die den Sprachstandard betreffen, oder auch 
den konkreten Compiler/Assembler. Die muss man nicht bewerten, wenn man 
diese Dinge nicht selber erfindet. Und dann gibt es Meinungen dazu.
z.B. ich finde C++ doof, weil ich OOP doof finde.
Und dutzende mehr.
Aber zu sagen, dass C++ Mist ist, nur weil man keine OOP oder Zeiger 
mag, hat in einem Forum nix zu suchen, denke ich mal.
Fakten muss/kann/sollte man auf ihren Wahrheitsgehalt prüfen.
Aber nicht einteilen in gut, böse oder was auch immer.

Wenn mir Himbeereis nicht schmeckt, dann ist das so. Wenn mir einer 
Himbeereis aufs Auge drücken will, och nöö...
Aber bei jeder Gelegenheit rausposaunen, wie scheiße doch Himbeereis 
schmeckt. Wie beschissen das ist.
Nöö... Himbeereis ist ein Fakt!

----

Und wenn ein Stefanus, oder ein jar, oder irgendwer anders Quatsch 
erzählt, ins besondere Meinungen als Fakten verkaufen will, gibts 
Gegenwind.
Arduino basher stehen da übrigens ganz weit oben auf der Liste!
(aber das wisst ihr ja schon)

von Joachim B. (jar)


Lesenswert?

Arduino Fanboy D. schrieb:
> Ich selber haben manchmal durchaus mehrere Meinungen zu einem Thema. Die
> dürfen sich ruhig widersprechen.

Arduino Fanboy D. schrieb:
> Und wenn ein Stefanus, oder ein jar, oder irgendwer anders Quatsch
> erzählt, ins besondere Meinungen als Fakten verkaufen will, gibts
> Gegenwind.

alles klar :)

Arduino Fanboy D. schrieb:
> In der Industrie? Ganz Sicher nicht.
>
> Einen solchen Wackelkandidaten setzt man nicht freiwillig ein, wenn es
> gleichwertige/bessere Alternativen gibt.

Das MUSS der Beweis sein das man NIE Schrott verkauft bekommt! [/IRONIE]

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Und wenn ein Stefanus ... Meinungen als Fakten verkaufen
> will, gibts Gegenwind.

Wenn ich begriffe wie "ich glaube", "eventuell", "es könnte sein", "mir 
ist mal passiert", "jemand hat gesagt" ... benutze, reagierst du genau 
so pampig. Alles was nicht deinem Kenntnisstand entspricht, scheint für 
dich derart inakzeptabel zu sein, dass man betroffenen Personen 
unverzüglich das Maul stopfen muss. Du geht da aus meiner Sicht mit 
einem Eifer vor, wie die Zeugen Jehovas mit ihrer einzig wahren 
Wahrheit.

Ich habe nichts dagegen, dass man unterschiedliche Meinungen 
gegenüberstellt. Mir gefällt die persönlich herablassende Art nicht, wie 
du es machst.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Mir gefällt die persönlich herablassende Art nicht, wie
> du es machst.
Das ist eine Meinung/Einstellung, und darum gestehe ich sie dir auch zu.
Den Wahrheitsgehalt darfst du selber analysieren.
z.B. könntest du dich mal prüfen wie du auf sanfte Kritik reagierst.

Hier ein Beispiel, wie ich sanfte Kritik zum Einsatz bringe:
Arduino Fanboy D. schrieb:
> Ich vermute das solltest du nochmal überdenken...
Es hat dann noch ein paar Beiträge gedauert, bis Falk das dann wirklich 
getan hat. Aber er hat es getan.

Eine solche Kommunikation ist mit dir, meiner Erfahrung nach, eher nicht 
möglich.

Ich glaube so langsam, dass ein freundlicher Hinweis, in deinem 
Empfinden, ein Nachweis für eine Aggression des Gegenübers ist. Auch 
schon einfache Nachfragen landen in der Schublade.

Du hast ganz offensichtlich große Probleme damit, den Wahrheitsgehalt 
deiner
eigenen Aussagen zu überprüfen.
Du hast große Probleme damit, wenn andere, z.B. ich, deine Aussagen auf 
den Wahrheitsgehalt überprüfen.

Wie kann das sein?
Ich vermute, dass du dich sehr stark mit deinen Aussagen identifizierst. 
So wird dann eine Kritik an der Sache, oder auch nur ein Nachfrage, zu 
einer aggressiven Attacke auf deine Person. Du scheinst da wenig 
Unterscheid zu machen.



Stefan ⛄ F. schrieb:
> Worum es mir eigentlich ging ist, darauf hinzuweisen, das selbst der BOD
> kein 100% sicheres Mittel ist, Flash-Verluste bei instabiler
> Stromversorgung zu verhindern.
Hier im Forum haben einige kompetente Leute mitgelesen.
Bisher habe ich noch nicht gesehen, dass dir einer zugestimmt hat.
Bisher habe ich nichts in den offiziellen Dokus gefunden.
Bisher noch nicht erlebt.
OK, das ist kein unschlagbarer Beweis.
Aber ein Indiz.


Stefan ⛄ F. schrieb:
> Die Brown-Out Detection (dazu gibt es eine Fuse) sollte das
> zuverlässig verhindern.
Das "sollte" impliziert die Möglichkeit, dass sich das Flash eben doch 
bei aktiviertem BOD ändert.
Das betrifft mich und meine Arbeit.
Ganz konkret.


Angela Merkel sollte keine Reptiloidin sein
Die Eliten sollten kein Kinderblut trinken
Flash sollte seinen Inhalt nicht verlieren, trotz BOD
Die Erde sollte nicht flach sein.

Hinter jedem dieser Sollte steht ein "ist sie aber doch" oder eine 
abgeschwächte Form davon "Beweise doch das Gegenteil", "Lege dich mit 
dem Dr. an"

Dieses ist meine Meinung:
Deine Ansage, die mit dem Flash Verlust, ist bei den närrischen 
Verschwöhrungstheorien einzuordnen.

Warum du das tust?
Kann ich nur vermuten.....
Es liegt in der Natur des Menschen, Angst zu haben. Und aus Mangel an 
rationalen Ängsten, werden irrationale geschaffen. Du hast eine diffuse 
Angst vor dem Flash Verlust, und möchtest sie hier im Forum verbreiten.

Da dir das nicht schmeckt, wenn man dir da einen Stock in die Speichen 
schiebt, was ich durchaus verstehen kann, ist es völlig ok, wenn du mich 
als deinen Feind betrachtest.

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Hier im Forum haben einige kompetente Leute mitgelesen.
> Bisher habe ich noch nicht gesehen, dass dir einer zugestimmt hat.

Sachlich hat er hier vollkommen Recht.

Natürlich kann ein amoklaufender µC beliebige Schäden anrichten, also 
auch Flash überschreiben. Er funktioniert ja in dieser Situation nicht 
mehr normal, also gilt auch keine der normalen Regeln mehr.

Und das passiert auch tatsächlich und jeder kann es leicht provozieren. 
Einfach BOD deaktivieren und eine Versorgung anschließen, bei der man 
die Geschwindigkeit des Spannungsabfalls kontrollieren kann. Es ist dann 
ziemlich einfach, Flash-Korruption zu provozieren.

Die Wahrscheinlichkeit dafür hängt übrigens offensichtlich in hohem Maße 
davon ab, ob und wie viele SPM-Instruktionen im Code enthalten sind. 
Passende Bitmuster in Datenbereichen im Flash genügen allerdings auch.

Aber selbst die vollständige Abwesenheit solcher Bitmuster in Code und 
Daten kann den Flash nicht vollständig schützen, der GAU wird nur 
deutlich unwahrscheinlicher.

Und, um auch gleich noch die Frage zu klären, warum man den BOD im 
Deepsleep bei vielen Devices abschalten kann: Im Deepsleep steht der 
Takt des internen Oszillators still. Genau dieser Takt treibt aber auch 
den NVM-Controller. Ohne Takt->keine Aktion.

Blöderweise ist aber auch dieser Mechanismus nur eine 
Wahrscheinlichkeits-Sache. Denn der abstürzende Controller kann den Takt 
"versehentlich" aktivieren. Aber nach den Gesetzen der 
Wahrscheinlichkeit ist es eben wesentlich unwahrscheinlicher, dass dies 
passiert und dann auch noch die restlichen Bedingungen zusammenkommen, 
die eine Flash-Korruption bewirken.

von Einer K. (Gast)


Lesenswert?

c-hater schrieb:
> Natürlich kann ein amoklaufender µC beliebige Schäden anrichten, also
> auch Flash überschreiben. Er funktioniert ja in dieser Situation nicht
> mehr normal, also gilt auch keine der normalen Regeln mehr.
>
> Und das passiert auch tatsächlich und jeder kann es leicht provozieren.
> Einfach BOD deaktivieren und eine Versorgung anschließen, bei der man
> die Geschwindigkeit des Spannungsabfalls kontrollieren kann. Es ist dann
> ziemlich einfach, Flash-Korruption zu provozieren.

Das wissen wir alle!
(glaube ich)
Steht auch mehr oder weniger im Datenblatt so.
Spezifikationen, nennt sich das, glaube ich... ;-)
Beim Betrieb, außerhalb der Spezifikation, sind alle Gräueltaten zu 
erwarten.

Stefan ⛄ F. schrieb:
> Worum es mir eigentlich ging ist, darauf hinzuweisen, das selbst der BOD
> kein 100% sicheres Mittel ist, Flash-Verluste bei instabiler
> Stromversorgung zu verhindern
BOD ist eben ein Weg/Mittel/Werkzeug, die Spezifikationen einzuhalten.
Ein Grund weniger für den Amoklauf.
Es gibt noch genügend weitere!


Es gilt 2 Sachen zu unterscheiden:
Amoklaufende Software, welche dann Flash manipulieren
Ein Verlust des Flashes rein durch Spannungsschwankungen trotz 
aktiviertem BOD

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Es gilt 2 Sachen zu unterscheiden:
> Amoklaufende Software, welche dann Flash manipulieren
> Ein Verlust des Flashes rein durch Spannungsschwankungen trotz
> aktiviertem BOD

Nein, das stimmt nicht wirklich. Ein wegen Spannungsmangel abstürzender 
Controller generiert sich seinen Code ja quasi selber, auf verschiedenen 
Ebenen. Zum einen kann der Flash nicht fehlerfrei gelesen werden, zum 
anderen kann der Instruktionsdekoder Mist bauen oder irgendwelche Gatter 
in der Buslogik können wild hin- und herschalten.

Das ist ja genau das Problem: in einem abstürzenden Controller kann 
ALLES schief gehen und vieles davon passiert quasi- oder sogar 
wirklich zufällig.

Das ist die eine Seite der Sache. Die andere ist, dass es in der Praxis 
fast immer zu Situationen kommen wird, in denen die Versorgung 
getrennt/zugeschaltet wird oder werden muss. Und damit ist nunmal 
zwangsläufig verbunden, dass eigentlich verbotene Spannungsbereiche 
der Versorgung durchlaufen werden. In unserem Universum kann nämlich 
nichts instantan geschehen.

Das Schadpotential ist also grundsätzlich immer vorhanden, man kann nur 
Wahrscheinlichkeiten minimieren.

von Einer K. (Gast)


Lesenswert?

c-hater schrieb:
> Das Schadpotential ist also grundsätzlich immer vorhanden, man kann nur
> Wahrscheinlichkeiten minimieren.
Ein Mittel um dieser Wahrscheinlichkeit Grenzen aufzuerlegen ist BOD.

Wie hoch schätzt du die Wahrscheinlichkeit, dass ein Flashverlust, trotz 
korrekt aktiviertem BOD, auf Grund von Spannungsschwankungen, auftritt?

Andere Gründe für den Amoklauf, zB. Programmfehler, mal außen vor 
gelassen.
Denn, dass ein Amoklauf Schaden anrichten kann, da sind wir uns einig.

von 900ss (900ss)


Lesenswert?

Arduino Fanboy D. schrieb:
> Du hast ganz offensichtlich große Probleme damit

Könntest du dich vielleicht um deine eigenen Probleme kümmern und nicht 
mit deiner Küchentischpsychologie hier auf andere Leute losgehen? Das 
ist ja furchtbar.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Wie hoch schätzt du die Wahrscheinlichkeit, dass ein Flashverlust, trotz
> korrekt aktiviertem BOD, auf Grund von Spannungsschwankungen, auftritt?

Ist mir noch nie passiert. Insofern schätze ich mal mutig 0,01%.

von Einer K. (Gast)


Lesenswert?

900ss D. schrieb:
> Könntest du dich vielleicht um deine eigenen Probleme kümmern
Auch wenn es dich nicht kümmert...
Aber Flash Versager wären schon ein/mein Problem.

Stefan ⛄ F. schrieb:
> Ist mir noch nie passiert. Insofern schätze ich mal mutig 0,01%.
Mir auch noch nicht!

von Sebastian (Gast)


Lesenswert?

Ich schätze ja sehr das hier mir zwischen den ganzen Post auch geholfen 
wird aber mal ganz ehrlich so wie hier miteinander umgegangen wird bzw. 
Diskussionen geführt werden nervt. Ich habe 3 Fragen gestellt und in 
allen 3 werden irgendwelche " Kriege"  geführt.

PS: Bootloader war defekt neu aufgespielt und das Teil läuft

von Manfred (Gast)


Lesenswert?

Sebastian schrieb:
> Bootloader war defekt neu aufgespielt und das Teil läuft

Dann wäre als nächstes die "Problemsoftware" erneut auf den Arduino zu 
laden, gucken, ob es den wieder zerlegt.

Wie schon weiter vorne geschrieben: Die A*-IDE kennt das Board und wird 
bei Überschreitung der Größe die Compilierung abbrechen, damit dürfte es 
niemals zu einem Überschreiben des Bootloaders kommen.

Mir ist ein Überschreiben noch nie passiert, aber man soll ja niemals 
Nie sagen :-)

Wurde aber gebastelt, anderer Bootloader, falsche Fuses oder falscher 
Boardtyp ausgewählt, kann ich mir sowas vorstellen. Hast Du die 
boards.txt verändert?

Benutzt Du einen Bootloader, der nicht von Arduino veröffentlicht 
wurde?

Hast Du evtl. ein schlechtes USB-Kabel, was Aussetzer fabriziert?

von Gerhard O. (gerhard_)


Lesenswert?

Möchte hier nur ein paar meiner eigenen Erfahrungen kundgeben.

Da man bei importierten Arduino Bords nie weiß welcher Bootloader vom 
Hersteller installiert wurde, spiele ich grundsätzlich bei Einsatz einer 
neuen Bord einen Standard, geprüften Optiboot-BL der keine Probleme mit 
Sleep bzw dem Wachhund hat. Mir ist schon einigemal aufgefallen, daß die 
meisten Chinabord Nanos und Pro-Minis mit dem Watchdog nicht richtig 
Ball spielen und sich der Bootloader in einer Loop aufhängt aus der 
alleine nicht mehr herauskommt.

Die besprochenen Probleme hier sind mir noch nicht passiert. Ich habe 
seit einigen Jahren einige dieser Bords im Dauereinsatz und bisher noch 
keine Ausfälle erleben müssen, was aber nicht unbedingt viel heissen 
muß, weil der Teufel bekanntlich in den Details steckt.

Was Zuverlässigkeit betrifft kann ich mich auch bei den Chinabords nicht 
beklagen. Ausfälle hatte ich bei keiner Bord. Ich achte aber im Betrieb 
immer auf industrielle Gesichtspunkte bezüglich Qualität der Versorgung 
und externe (Schutz) Beschaltung und habe noch nie Anomalitäten im 
laufenden Betrieb erleben müssen.

Mikrocontroller scheinen an sich extrem zuverlässig sein. Wir hatten 
ausser einem PIC EEPROM problem in zwanzig Jahren bei unseren Produkten 
null Ausfälle (so weit bekannt) außer einem Fall wo die FW versehentlich 
das EEPROM wiederholt laufend beschrieben hatte und die Anwendung nach 
einigen Monaten Betrieb eventuell fehlerhaft wurde. Auch bei mir hatte 
ich noch keinen einzigen Ausfall erleben müssen. In meiner Wetterstation 
laufen PICs schon zwanzig Jahre ohne irgendwelche Ausfälle.

Was das Programmieren des FLASH mittels BL betrifft fanden sich die 
seltenen erlebten Probleme immer vor dem Monitor und Tastatur. Einen BL 
habe ich mir mit AVRDude noch nie zerschossen.

Man muß allerdings darauf achten, daß im boards.txt korrekte Angaben 
bezüglich des verwendeten Bootloaders gemacht worden sind und 
tatsächlich wissen wie groß der BL tatsächlich ist. Fehlerhafte Angaben 
dort können möglicherweise Probleme deswegen verursachen und eine 
korrekte FLASH Size Berechnung vor dem Programmieren verhindern.

Inwieweit fehlerhafte Angaben den BL beschädigen können ist mir etwas 
unklar. So weit ich mich jetzt erinnern kann lässt sich in den 
Fuse-Einstellungen der BL Bereich eigentlich festlegen und sollte 
deshalb geschützt sein. Aber da müsste ich jetzt das Datenblatt 
diesbezüglich lesen um da sicher zu sein...

An sich wäre es am Besten den gewählten Bootloader anhand des 
mitgelieferten Source Codes daheim selber zu kompilieren und die 
Eckdaten verifizieren um Überraschungen bei den Fuse-Einstellungen und 
Anwenden zu vermeiden. Dann kann jan auch die Einstellungen im 
boards.txt File nachprüfen. Man muß es ja nur einmal machen.

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.