Nach meiner persönlichen Erfahrung ist das Wissen der meisten Anfänger über Bootloader sehr rudimentär und ich kenne keine Webseite, auf der dieses Wissen vermittelt wird. Gerade weil durch die Arduinos auch sehr viel mit Bootloadern auf uCs gearbeitet wird, fände ich es sinnvoll, auf eine grundlegende Beschreibung hinweisen zu können. (Einzelbeschreibungen finden sich zu Hunderten, das ist für Anfänger aber eher verwirrend.) Auch der Artikel hier auf mc.net geht nach wenigen einführenden Worten schnell auf die Erstellung eines solchen Bootloaders ein. Der Anfänger braucht aber erstmal eine Erläuterung, wie sowas überhaupt funktioniert. Nun steht in der Anleitung zu den Artikeln, daß grundlegende Beschreibungen eher in der Wikipedia platziert werden sollten. Da muß ich sagen, daß ich mich dafür (noch?) nicht qualifiziert fühle. In Wikipedia umfaßt der Artikel über Bootloader genau 3 Zeilen, die uCs betreffen. Da sollte jemand Schlaueres ran, der auch den professionellen Bereich überblickt. Ich setze zwar uCs professionell ein, baue aber Sondermaschinen in Einzelanfertigung, das ist dem Bastlerbereich viel näher als der professionellen Entwicklung (außerdem bin ich bekennender Minimalist :-). Insofern fände ich es wissensfördernd, wenn wir hier auf mc.net mit einer einfachen Beschreibung für Anfänger beginnen könnten. Umziehen auf Wikipedia wäre sinnvoll, wenn auch genügend Wissen zusammengekommen ist. Mich interessiert, wie Ihr darüber denkt, ob es sowas schon gibt und und ich es nur übersehen habe oder ob meine Vorstellung aus anderen Gründen galoppierender Schwachsinn ist. Gruß Klaus (der soundsovielste)
Einfach mal machen. Dann kann man drüber diskuztieren und ggf. ändern.
Pandur S. schrieb: > eine gute Idee, mach mal. Nun will aber Klaus nicht machen, sondern machen lassen. Ihm reichen ja die Lorbeeren es "erfunden" zu haben.
Deine Idee wurde wohl von Beitrag "USB to TTL mit CH340" ausgelöst, wo du dich ja auch rege beteiligt hast. Es gibt nicht den einen einzig wahren Bootloader und auch keine Standard-Methode, wie er zu funktionieren hat. Deswegen halte ich es nicht für Sinnvoll, einen allgemeinen Artikel zum Thema zu schreiben. Der Arduino Bootloader ist bereits gut dokumentiert: http://arduino-basics.com/arduino-mobil/standalone/bootloader/# Auch ST hat seine Bootloader dokumentiert: https://www.st.com/resource/en/application_note/cd00167594-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf Und von dem uralten STM32duino Bootloader (der eigentlich ein Maple Bootloader ist) halte dich besser fern. Denn er wird seit vielen Jahren nicht mehr gepflegt. Fragen zu weiteren Bootloadern richtest du am besten an den jeweiligen Entwickler. Die kann nämlich jeder so programmieren, wie er es gerne möchte. Klaus S. schrieb: > das ist für Anfänger aber eher verwirrend. Ganz Recht, deswegen empfehle ich keinem Anfänger, sich mit Bootloadern zu befassen. Das ist schlicht kein Anfänger-Thema, so wie es auch keine Anfänger-Anleitungen für Herz-Operationen gibt. Boards wo schon einer drauf ist kann man ja gerne damit benutzen - sofern es klappt. Ansonsten sind in der Regel spezifische USB Programmieradapter angesagt. Klaus S. schrieb: > Umziehen auf Wikipedia wäre sinnvoll, wenn auch > genügend Wissen zusammengekommen ist. Es gibt dort bereits entsprechende Artikel: https://de.wikipedia.org/wiki/Bootloader https://en.wikipedia.org/wiki/Bootloader Die enthalten alle allgemein gültigen Aussagen, die auch auf Mikrocontroller zutreffen. Alles was über die allgemeinen Aussagen hinaus ginge, wäre dann ebenso spezifisch, wie das was du dort bereits vorfindest. Wenn du da jetzt noch alle Varianten von µC Bootloadern unterbringst, hast du einen Museumsreifen Artikel, der in der Form jeden Anfänger wieder überfordern wird.
Klaus S. schrieb: > Gerade weil durch die Arduinos auch sehr > viel mit Bootloadern auf uCs gearbeitet wird, fände ich es sinnvoll, auf > eine grundlegende Beschreibung hinweisen zu können. Was nützt jemanden der Bootloader benutzt das Wissen darüber was ein Bootloader eigentlich ist und wie der genau funktioniert? Um den zu benutzen muss man nicht mal wissen, dass da ein Bootloader im Spiel ist wenn das Programm nach Druck auf den "Hochladen" Button auf der angeschlossenen Platine landet. Also ich bin nicht dafür irgendwas "geheim" zu halten, ich finde nur Dein Argument warum es mehr Erklärungsbedarf gibt nicht gut.
Rudolph R. schrieb: > ich finde nur > Dein Argument warum es mehr Erklärungsbedarf gibt nicht gut. Naja, aber die Idee irgendwas zu erfinden und dann die Anderen machen zu lassen ist doch eine gute, oder?
jo mei schrieb: > Rudolph R. schrieb: >> ich finde nur >> Dein Argument warum es mehr Erklärungsbedarf gibt nicht gut. > > Naja, aber die Idee irgendwas zu erfinden und dann die Anderen > machen zu lassen ist doch eine gute, oder? Darum ging es doch gar nicht. Mehr Informationen zu Bootloadern schaden bestimmt nicht, da habe ich ganz sicher nichts gegen einzuwenden. Wie viele Arduino User stehen vor der Notwendigkeit sich einen eigenen Bootloader zu schreiben? Quasi keiner? Dann sind Arduino User auch kein gutes Argument für mehr Lesestoff zu Bootloadern. Wegfahrsperren nutzt auch quasi jeder Autofahrer, aber kein Autofahrer muss wissen wie die genau funktionieren.
Stefan ⛄ F. schrieb: > Und von dem uralten STM32duino Bootloader (der eigentlich ein Maple > Bootloader ist) halte dich besser fern. Denn er wird seit vielen Jahren > nicht mehr gepflegt. Ist das tatsächlich relevant, wenn er funktioniert? Wir haben Produkte auf Motorola 68000 Basis, deren Firmware immer noch aktiv weiterentwickelt wird. Am Bootloader hat sich seit Ende der 90er nichts mehr getan. Bloß wird das UART nicht mehr von einer RS232 Schnittstelle bedient, sondern von einem FTDI.
René F. schrieb: > Ist das tatsächlich relevant, wenn er funktioniert? Ja, denn auch die dazu nötige PC Software wird schon lange nicht mehr weiter entwickelt. Schon seit Windows 8 bekommt man den dazu nötigen Treiber nur noch mit Tricks installiert. Bald geht es womöglich gar nicht mehr.
Stefan ⛄ F. schrieb: > Ja, denn auch die dazu nötige PC Software wird schon lange nicht mehr > weiter entwickelt. Schon seit Windows 8 bekommt man den dazu nötigen > Treiber nur noch mit Tricks installiert. Nun ja, wenn die Schnittstelle so eines Bootladers vernünftig ist und obendrein auch noch ausreichend dokumentiert, dann dürfte es ein Leichtes sein, dafür ein neueres Programm für den PC zu schreiben. Und vernünftig heißt hier, daß dafür kein spezieller Treiber auf dem PC nötig ist, sondern einer aus dem Standard-Repertoire des OS verwendet wird. W.S.
René F. schrieb: > Ist das tatsächlich relevant, wenn er funktioniert? Du darfst nicht so komplizierte Fragen stellen. Der weiß/kann doch nichts.
W.S. schrieb: > Nun ja, wenn die Schnittstelle so eines Bootladers vernünftig ist und > obendrein auch noch ausreichend dokumentiert, dann dürfte es ein > Leichtes sein, dafür ein neueres Programm für den PC zu schreiben. Und > vernünftig heißt hier, daß dafür kein spezieller Treiber auf dem PC > nötig ist, sondern einer aus dem Standard-Repertoire des OS verwendet > wird. Das ist gar nicht nötig, denn die neueren STM32 Modelle enthalten bereits alle ab Werk einen Bootloader, der mehrere Schnittstellen (auch USB) unterstützt und sowohl von der Arduino IDE als auch von den Cube Programmen verwendet wird. Der Maple Bootloader ist schlicht überflüssig geworden.
Vielleicht sollte ich noch mal ein paar Erläuterungen nachlegen. 1.) Warum mir Wikipedia nicht ausreicht, meine ich dargelegt zu haben. Die lange Liste von Bootmanagern besteht hauptsächlich aus PartitionManagern für PC und meine beiden langjährigen Favoriten Ranish und Xfdisk sind nicht mal erwähnt. 2.) Wenn ich von Anfängern spreche, dann meine ich nicht die blutigen Anfänger, denen man nichts zumuten sollte (wie Stefan richtig erwähnt), sondern welche wie Rudi und mich, die ihre Grütze im Kopf einzusetzen wissen und lediglich auf der Suche nach konzentrierten und guten Informationen sind. Und da bin ich eben ganz anderer Ansicht als Stefan (den ich ansonsten absolut schätze und von dem ich viel gelernt habe). Für den jüngeren Teil der Menschheit reicht es vielleicht aus, den passenden Knopf zu drücken, um die Automatik zu starten. Für die sind diese vielen Anleitungen im Internet. Ich dagegen möchte gern verstehen, was ich da treibe (ich weiß, daß das eine persönliche Marotte ist) und bin deshalb immer auf der Suche nach Informationen, die nicht nur den momentanen Arbeitsbereich abdecken, sondern auch ein wenig das Umfeld beleuchten. Um ein Beispiel zu geben: Wenn ich in der Arduino-IDE den Programmiermodus auswähle, wüßte ich gerne, worin der Unterschied von "ArduinoISP", "ArduinoISP mkII" und "Arduino as ISP" besteht (fyi: ich weiß ihn inzwischen). Einfach nur den richtigen Button genannt zu bekommen ist mir kulturell zu unterbelichtet ;-). Und das, was ich da gelernt habe, würde ich gern weitergeben. Aus meiner Sicht ist die Bootloaderei auch nicht mit einer Herzoperation gleichzusetzen, sondern mit einem einfachen Pflaster. Da gibts die desinfizierenden und wasserdicht abdichtenden sowie die blutstillenden mit Eisensalzen, die die Gerinnung hemmen. Das ist ganz einfaches medizinisches Grundwissen, das sogar manche Apothekenmitarbeiter nicht haben (leider selbst erlebt). Und genau dieses Wissen um die Randbedingungen möchte ich aufschreiben. Das liegt dann wohl eher in der Mitte zwischen den ganz grundlegenden Weisheiten von Wikipedia und der Anleitung, selber einen Bootloader zu schreiben. 3.) Die Hauptfrage geht eigentlich an die Moderatoren, die ich noch nicht richtig kenne (Lothar, Andreas ?), da ich die Regeln eventuell ein bißchen strecke, durch meine Anmeldung aber wohl versprochen habe, mich an sie zu halten. Da ich ein bekennendes Weichei bin, möchte ich nicht "einfach so machen". Regeln sind angewandte Zivilisation, und wie sich die "Freiheit" gerade ausdrückt, kann man bei Adolf Putin bewundern. Gruß Klaus (der soundsovielte)
Klaus S. schrieb: > Aus meiner Sicht ist die Bootloaderei auch nicht mit einer Herzoperation > gleichzusetzen, sondern mit einem einfachen Pflaster. Da gibts die > desinfizierenden und wasserdicht abdichtenden sowie die blutstillenden > mit Eisensalzen, die die Gerinnung hemmen. Deine Sicht ist falsch. Der Bootloader ist ein Stück Software das zuallererst gestartet wird und auf ein bestimmtes Ereignis in einer bestimmten Zeit wartet. Wenn dieses nicht zutrifft wird mit dem eigentlichen Programm losgelegt. Aber falls die Bedingung für den Bootloader doch zutrifft gibt es die Möglichkeit das folgende Programm durch eine andere Version zu ersetzen. In deiner Sichtweise: Den toten komplett verbrennen und gegen einen neuen austauschen. Also nix mit Pflaster oder so.
Klaus S. schrieb: > sowie die blutstillenden > mit Eisensalzen, die die Gerinnung hemmen. Nur zur Richtigstellung: Blut stillen ist das Gegenteil von Gerinnung hemmen.
MagIO schrieb: > Nur zur Richtigstellung: Blut stillen ist das Gegenteil von Gerinnung > hemmen. Was für ein dummer Fehler meinerseits, bitte um Absolution. Björn W. schrieb: > Also nix mit Pflaster oder so. Das war auch eigentlich auf Stefans Bemerkung von der Herzoperation gemünzt. Aber Deine Version mit dem Totschlag gefällt mir auch :-)
Björn W. schrieb: > Deine Sicht ist falsch. Der Bootloader ist ein Stück Software das > zuallererst gestartet wird und auf ein bestimmtes Ereignis in einer > bestimmten Zeit wartet. Wenn dieses nicht zutrifft wird mit dem > eigentlichen Programm losgelegt. Deine Sicht ist leider auch falsch :-) Es gibt Bootloader, die warten, bis der Strom weg ist (mein STM32F103), manche warten eine voreingestellte Zeit (mein Arduino Mini) und der von mir jahrelang heißgeliebte XFDISK kann je nach Einstellung entweder ewig oder eine (fast) beliebige Zahl von Sekunden warten. Das mögliche Maximum hab ich grad nicht parat. Und zur Vermeidung solcher Desinformation fände ich einen Artikel darüber eben sinnvoll. Danke für die kostenlose Lieferung eines Arguments ;-) Gruß Klaus (der soundsovielte)
Klaus S. schrieb: > Björn W. schrieb: >> Also nix mit Pflaster oder so. > Das war auch eigentlich auf Stefans Bemerkung von der Herzoperation > gemünzt. Aber Deine Version mit dem Totschlag gefällt mir auch :-) Ein Totschlag-Argument? Klaus S. schrieb: > Es gibt Bootloader, die warten, bis der Strom weg ist (mein STM32F103), > manche warten eine voreingestellte Zeit (mein Arduino Mini) und der von > mir jahrelang heißgeliebte XFDISK kann je nach Einstellung entweder ewig > oder eine (fast) beliebige Zahl von Sekunden warten Ja und? Das sind doch Sonderlocken. Man kann auch einen Bootloader schreiben, der Audiosignale auswertet (gibt es AFAIK schon), und der das System erst auf Zuruf startet. Das ist dann eine Eigenart dieses Bootloaders und hoffentlich dokumentiert. Aber es braucht nicht in einem Artikel über Bootloader im Allgemeinen zu stehen. Da muß eigentlich nur stehen, was da eigentlich immer steht: "Ein Bootloader ist das Programm, das als erstes nach einen Reset losläuft (Boot) und schaut, ob es ein Firmware-Update auf irgendeiner Schnittstelle angeboten bekommt (Loader)". Die Details (Schnittstelle, Erkennung des "Angebots", Ziel der Firmware etc.) sind plattformabhängig. Das ist halt das Problem mit solchen allgemeinen Begriffen wie "Bootloader". Vergleichbar vielleicht mit "Frühstück". Da findest du auch keine allgemeine Beschreibung, die über Trivialitäten hinausgeht.
Rudolph R. schrieb: > Wegfahrsperren nutzt auch quasi jeder Autofahrer, aber kein Autofahrer > muss wissen wie die genau funktionieren. Nur schreib das mal im Autoschrauber-Forum. Das ist hier ein µC Forum und keines über die Bedienung von Waschmaschinen. Und trotzdem soll es hier Leute geben die nicht Wissen müssen oder sollten wie ein BL funktioniert? Schande über solche Ansichten zu Wissen und Kompetenz.
:
Bearbeitet durch User
Klaus S. schrieb: > Aus meiner Sicht ist die Bootloaderei auch nicht mit einer Herzoperation > gleichzusetzen, sondern... Nun, im Prinzip hast du damit Recht. Ein werksseitig in ein Stück Silizium gesetzter Bootlader ist ein Stück Abstraktion: Er setzt die Algorithmen zum Programmieren des Speichers (und ggf. diverser Config-Register) des betreffenden Chips in irgendeine etwas generalisiertere Schnittstelle/Protokoll um, so daß derjenige, der das zugehörige Brennprogramm für den PC schreibt, sich nicht um die chipspezifischen Details kümmern muß. Er muß sich aber um die herstellerspezifische Schnittstelle/Protokoll zwischen dem Chip und dem PC kümmern. Aber das ist das weitaus kleinere Problem, sofern diese Schnittstelle gut genug dokumentiert ist. Ein ganz anderes Ding sind Bootlader, die nicht vom Hersteller vorgesehen sind, von anderen Leuten (und zu anderen Zwecken) geschrieben sind und deshalb im Nutzbereich des internen Speichers liegen. So etwas denkt man sich zumeist nur dann aus, wenn der betreffende Chip keinen herstellerseitigen Bootlader hat oder wenn man für eine bestimmte Firmware nur eigene Updates zulassen will oder wenn die Leute, die ein Update machen wollen/müssen, eigentlich davon nix verstehen und auch kein Programmiergeschirre haben. W.S.
Stefan ⛄ F. schrieb: > Wenn du da jetzt noch alle Varianten von µC Bootloadern > unterbringst, hast du einen Museumsreifen Artikel, der in der Form jeden > Anfänger wieder überfordern wird. Jetzt wo ich wirklich dran schreibe, merke ich erst, wieviel schwerer es ist, sich schriftlich auszudrücken. Ich habe es gefühlt schon tausendmal erklärt, im Gespräch macht die Interaktion des Gegenübers es viel leichter. Vielleicht sollte ich die Anregung von "Jo mei (Gast)" beherzigen, und es es bei dem Ruhm der "Erfindung" (welcher Erfindung überhaupt?) belassen ;-))) Gruß Klaus Danke an alle Beteiligten, Eure Beiträge helfen mir, das Wichtige vom Unwichtigen zu unterscheiden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.