-         
Ergebnis 1 bis 6 von 6

Thema: AVR Studio 4: externe Datei in den Flash einbinden

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    697

    AVR Studio 4: externe Datei in den Flash einbinden

    Anzeige

    Hallo,

    ich spiele gerade mit einem ESP8266 Modul und möchte zur Konfiguration dessen auch einen kleinen Webserver implementieren. Die HTML-Antworten könnte ich im Quellcode codieren. Mir schwebt aber eine andere Lösung vor:

    Gibt es eine Möglichkeit beliebige Dateien (in diesem Beispiel eine *.html Datei) vom Linker mit in das Hex-File einbinden zu lassen?

    Viele Grüße
    Andreas

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    34
    Beiträge
    3.406
    ja sicher geht das, du kannst im Code und im Linkerscript eine externe Variable an einem bestimten Speicherplatz deklarieren und dann eine externe Datei mit binärdaten einfach einbinden, aber du musst die menschenlesbare html-Datei halt vorher umwandeln damit der Linker die Datei auch versteht. Dafür gibt es aber Werkzeuge im Netz. Ich habe so etwas vor Jahren mal im Praxissemester eingesetzt, da ging es um das Icon für die Taskleiste eines Service den ich programmiert hatte.
    Da wurde das bmp mit in den compiler (nicht linker) von Borland Turbo Pascal eingebunden, indem als Pre-Compile Script ein Tool aufgerufen wurde, welches die BMP in einen compilefähiges Stringarray übersetzt hat und dann mit eincompiliert hat.

    Leider habe ich keinen Zugriff mehr darauf udn mein Gedächtnis hat leider auch keine DEtails mehr darüber gespeichert, aber im Grunde würde ich dir vorschlagen eine kleine .exe zu bauen, welche per CMD mit Parametern gefüttert wird, welche deine html files einlesen und zu so etwas wie

    uint8_t [tröflzig] main_html;

    Strings umwandeln und dann als .c Datei speichern, welche du in deinem Code entsprechend als extern Variablen referenzierst und die generierten .c Files im Compiler mit einbindest.

    Ich bin etwas verunsichert wie oder warum du einen ESP826 mit AVR Studio4 programmierst, aber falls du eine API für den WEbserver verwendest, bieten diese recht häufig die Option an ein "angepasstes" HTML file einzulesen, welches dann teilweise aus HTML und teilweise aus code besteht oder Platzhalter beinhaltete die du beim Aufruf als Parameter mit passenden Werten befüllen kannst. (Vergleichbar mit PHP)

    Falls du nicht auf C festgelegt bist, kann ich dir µPython und die Flask Library ans Herz legen, die .py Scripts und HTML Files kannst du über die UART in den ESP schieben (ggf. über die Verwendung einer SD Card nachdenken) und die HTMLs können genau so wie in PHP mit passenden Schlüsselzeichen unterbrochen und mit weiterem Python Code befüllt werden, sodass man noch nciht einmal die main.py ändern muss wenn man etwas an den HTMLs ändern möchte.

    Der Interpreter öffnet dann die HTML und gibt alles bis zu der Escapesequenz aus, führt dann den Python Code aus, welcher als print Funktion den zu ergänzenden HTML Code ausgibt. Danach sendet er den Rest der HTML Datei.

    Das Reddit Forum basiert zum Beispiel auf dieser Technologie, da läuft ein Python Webserver welcher (quasi) HTML (Lückentext-)Files mit weiterem Python Scripts aufruft und die Python Scripts füllen dann die fehltstellen entsprechend auf.
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.046
    Ein gutes Beispiel wie man so was macht findest Du hier:
    https://www.ulrichradig.de/home/inde...erver-software

    Ich hab den Code für einen AVR IO Web ( Pollin ) mit ATMEGA 644 verwendet.

    Man kann hier auch Messwerte in eine html Datei einbauen!

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.241
    Blog-Einträge
    7
    Gibt es eine Möglichkeit beliebige Dateien (in diesem Beispiel eine *.html Datei) vom Linker mit in das Hex-File einbinden zu lassen?
    Etwas einfacher vielleicht über das SPIF - File System. Dateien über die Arduino-IDE hochladen und dann im Programm verwenden. AVR-Studio 4 - weiß ich nicht, ob da eine Möglichkeit zum Aufspielen von Dateien besteht.


    MfG

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    4.768
    stimmt, stünde die TOP-Frage unter "Arduino", hätte ich das auch schon geschrieben.
    Zur Sicherheit hier ein Link: https://github.com/esp8266/arduino-esp8266fs-plugin
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    697
    Hallo,

    Zitat Zitat von Ceos Beitrag anzeigen
    Ich bin etwas verunsichert wie oder warum du einen ESP826 mit AVR Studio4 programmierst,
    Da fehlt wohl eine wichtige Info in meinem Posting: Ich programmiere natürlich ein ATmega CPU, die über den USART mit dem ESP8266 spricht. Vielen Dank für deine Denkanstöße. Da werde ich mal weiter forschen. Die HTML-Datei sollte nur als Beispiel dienen. Am Ende möchte ich einen Ordner haben, in dem ich einfach eine Webseite ablegen kann inklusiver Bilder und allem was dazu gehört. Ein Script soll diese dann in den Flash des AVR mit einbinden.

    @wkrug: Mir sind einige Webserver-Module bekannt, auch das von Ulrich Radig. Ich möchte aber etwas lernen und das ganze selbst versuchen. Aktuell klappt es schon soweit, dass ich eine Seite aufrufen kann und diese auch ausgeliefert und im Browser angezeigt wird. Der nächste Schritt ist jetzt die Einbindung der html-Dateien.

    @Moppi und @HaWe: Arduino verwende ich nicht. Aber danke!

    Viele Grüße
    Andreas

Ähnliche Themen

  1. [ERLEDIGT] Wie eine xxx.h Datei einbinden?
    Von Greyhaired im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 2
    Letzter Beitrag: 15.10.2015, 13:23
  2. Studio 5 einrichten und Libs einbinden
    Von Wombatz im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 12.06.2011, 22:26
  3. Antworten: 7
    Letzter Beitrag: 27.02.2010, 21:12
  4. dxf-Datei in Eagle einbinden
    Von metrogeare im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 5
    Letzter Beitrag: 21.06.2007, 18:50
  5. Externe Unterprogramme im AVR Studio
    Von kaisobczak im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 27.04.2005, 13:58

Berechtigungen

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