Bootloader mit Display SSD1306

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Bootloader mit Display SSD1306

      Hallo Forum,

      ich mochte gern eine Displayausgabe während dem ATMega Bootloader machen. Hat das schon jemand gemacht?

      Die ATX Mage haben einen bis zu 8k großen Bootloader. Da müsste doch eine Textausgabe auf einem SSD1306 (ohne Grafik) möglich sein.
      Wie kann ich den Bootloaderbereich für Bascom von 1024 Byte auf 8 erhöhen?

      Grüße
      Andreas
      Mancher Baum hätte wohl sein Wachstum eingestellt, wenn er gewusst hätte was hinterher für ein Mist auf seinem Papier geschrieben wird.
    • Stimmt.
      Aber der Speicherbereicht vom eingestellten Bootloader genießt eigentlich nur einen gewissen Schutz, dass er sich nicht selbst löschen oder überschreiben kann?

      Im Grunde wird beim Booten aber nur ein Jmp auf die Bootloader-Adresse gemacht, die in den Fuse eingestellt ist.

      Man könnte doch anstelle des Bootloaders einfach einen Jump auf den Flashbereich machen und den Bootloader für diese Adresse compilieren?

      Könnte das funktionieren?
    • Mitch64 wrote:

      Man könnte doch anstelle des Bootloaders einfach einen Jump auf den Flashbereich machen und den Bootloader für diese Adresse compilieren?
      Dann wäre sein eigendlicher Speicherbereich leer. Besser diesen ausnutzen und am Ende zu einem Flaschbereich vor im springen um seinen weiteren Code unterzubringen. Damit bliebe mehr für das normale Programm übrig. Dieses muß dann kleiner werden damit der Bootloader sich nicht selbst crasht.
      Vielleicht reicht es nur die Displayroutine in den Normalen Flashbereich zu verlegen. Somit bliebe der Bootloader geschützt und das Display könnte angepaßt werden.
    • Pluto25 wrote:

      Vielleicht reicht es nur die Displayroutine in den Normalen Flashbereich zu verlegen.
      Kann dann aber passieren, dass die vom Programm überschrieben wird. Dann ist die beim nächsten booten futsch. Der bootloader müsste darauf aufpassen.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • Guten Morgen,
      bei den ATX ist der Bootloaderbereich max. 8k gross. Was ich gut finde, es ist nach Datenblatt ein plus Speicherbereich. Also zum Beispiel 32k Flash+8k Bootloader.
      Zusätzlich gibt es in Bascom den Befehl "$loader =xxxx". Damit wird der Bootloader berücksichtigt.
      Nur, wie kann ich den Bootloader in Bascom vergrössern? Default ist doch 1024 Byte.
      Grüsse
      Andreas
      Mancher Baum hätte wohl sein Wachstum eingestellt, wenn er gewusst hätte was hinterher für ein Mist auf seinem Papier geschrieben wird.
    • tschoeatsch wrote:

      Der bootloader müsste darauf aufpassen.
      Oder das Programm je so auslegen das die Routinen an gleicher Adresse bleiben.

      Michael wrote:

      Ansonsten Bootloader selber schreiben
      Das müsste er in jedem Fall? Das Orginal spricht nicht Display.
      Noch eine Methode wäre das das normale Programm die Displayinfos bereitstellt und je nach Anforderung den Bootloader aufruft.

      andreas wrote:

      Nur, wie kann ich den Bootloader in Bascom vergrössern?
      Die Größe ergibt sich duch die Gesamtgröße minus Loaderadresse ($loader =xxxx) Den Compiler sollte man noch mitteilen ($Loadersize) wie groß das ist damit er kein Code erzeugt der ihn überschreiben würde.

      The post was edited 1 time, last by Pluto25 ().

    • Pluto25 wrote:

      Das müsste er in jedem Fall?
      Mir ist nicht klar, ob das @andreas verstanden hat.

      Pluto25 wrote:

      das das normale Programm die Displayinfos bereitstellt und je nach Anforderung den Bootloader aufruft.
      Ich würde tunlichst die Finger von solchen Sachen lassen. Wenn 8k Bootloader nicht ausreichen, dann kann man auch nicht helfen.
      Warum muss man überhaupt Displayroutinen in einen Bootloader haben?
      Kansst du das näher erläutern, @andreas?
      Lieber den Bootloader klein wie möglich und das Hauptprogramm entsprechend gestaltet. Wenn eine Entscheidung gefällt wurde, kann man ja wieder resetten und die Entscheidung auswerten beim Neustart.
    • Hallo Michael,

      der Hintergrund ist, dass es eine Anzeige geben soll, dass der Bootloader gestartet ist. Bei meinem aktuellen Projekt habe ich keine LED frei, die ich für den Bootloder verweden könnte. Daher die Idee, auf dem Display eine Ausgabe zu machen. Entweder nur einfach einen Text "Update Firmware" oder vielleicht einen Fortschrittsbalken.

      Mir geht es nicht darum, den Bootloader neu zu erfinden sondern nur um eine kleine Displayausgabe zu erweitern.
      Mancher Baum hätte wohl sein Wachstum eingestellt, wenn er gewusst hätte was hinterher für ein Mist auf seinem Papier geschrieben wird.