- LiFePO4 Speicher Test         
Ergebnis 1 bis 8 von 8

Thema: bootloader um Daten in Flash zu packen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534

    bootloader um Daten in Flash zu packen

    Hallo!
    Hat das schon mal jemand gelöst, wie man via Bootloader Daten ins Flash - sprich zum ausführbaren Pogramm dazupacken kann ?

    Wenn ja, wie

    Und dann noch am Liebsten in C statt asm ....

    Liebe Grüße,
    Vajk
    Ich kann mir keine Signatur leisten - bin selbständig!

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    äh... Du willst sowas haben wie dynamisch nachladbare Module??? Oder einfach komplett alles überpinseln?
    Disclaimer: none. Sue me.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534
    genau, "dynamisch nachladbare Module" (ich weiß 10.000er Grenze) aber das wärs, auswechselbare Daten (hinterm Code) ...
    Ich kann mir keine Signatur leisten - bin selbständig!

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Dann brauchst du

    1. einen dynamischen Linker
    2. einen Compiler, der position independent code (pic) macht
    3. deine Applikation muss die vorhanden Module verwalten können und wissen, welche sie braucht/nachladen muss/wegwerfen kann.

    Am einfachsten ist wohl 3. Für Punkt 2 musst du dir nen Compiler besorgen, der das kann (avr-gcc kann es nicht). Nen dynamischen Linker musst du auch schreiben/besorgen.
    Disclaimer: none. Sue me.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534
    ömpf .. tnx
    einfach die Daten an den HexCode anhängen geht nicht ?
    Einfach nach einer "Startsequenz" suchen lassen ... dem Code könnte man doch seine Größe mitteilen ... oder liege ich da falscch.
    Unter Win hab ich so schon einen Kopierschutz gemacht, der die Exe eben nachträglich an bestimmten Stellen verändert ...
    Ich kann mir keine Signatur leisten - bin selbständig!

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Es ginge, wenn der Code immer ab einer festen Position im Flash liegt. Dann geht es auch ohne dynamischen Linker. Der Bootloader des Butterfly (und freie Klone, wie buttload) sind eigentlich in ihrem Kern, das was Du suchst.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Das Problem ist ja nicht, den Hex-Code anzuhängen, sondern den Code zu lokatieren bzw. er muss so generiert sein, daß er unabhängig von seiner Lokatierung ist. Ausserdem muss die Anwendung, die das Zeug lädt, wissen, wo sie das Zeug findet.

    Am einfachsten geht das mit Daten, die unabängig von Lokatierungen sind (also keine Sprung- oder Codeadressen oder sowas enthalten). Typisches Beispiel sind Kalibrierungsdaten. Die Daten werden fest irgendwo ins Flash lokatiert und die Applikation kann darauf zugreifen bzw weiß, wo die Daten liegen (werden). Nach der Kalibrierung werden die Daten an diese Stelle geflasht (Bootloader oder wie auch immer). Um den Ort festzulegen, legst du die Daten in eine eigene Section, deren Ablageort du im Linker Description File festlegst (bei avr-ld zumindest). Alternativ lokatierst du das Zeug ins Flash und übergibst dem Bootloader die Adresse.

    Einige Makros zur Bootloader-Unterstützung findest du im Header avr/boot.h.
    Disclaimer: none. Sue me.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Relozieren muss der Loader nur, wenn die Adressen sich ändern können (sollen). Wenn die Adresse des Moduls im Speicher bekannt ist, geht das auch ohne Relokation. Es schränkt natürlich die Anwendungsmöglichkeiten drastisch ein.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen