Forum: Mikrocontroller und Digitale Elektronik Webserver mit Flash-Speicher für HMTL-Seiten


von Thomas Haslinger (Gast)


Lesenswert?

Hallo,

ich bräucht mal ein paar Ratschläge, weil ich mich seit ein paar Tagen 
im Kreis drehe, wie ich weitermachen soll...

Ich programmiere gerade eine Elektronik mit Ethernetschnittstelle, über 
die Messwerte gesendet werden. Dies funktioniert soweit. Dann soll 
darauf noch ein kleiner Webserver zum Anzeigen von HTML Seiten laufen. 
Dies funktioniert soweit auch, nur sind momentan die Webseiten noch im 
Quellcode implementiert.

Künftig sollen die Webseiten auf einem externen Flash-Speicher liegen 
(keine SD-Karte!).
Ich habe zunächst nach Quellcodes für FAT-Dateisysteme gesucht. Nur ist 
es überhaupt sinnvoll/notwendig, dass ich auf meinem externen Speicher 
ein FAT-Dateisystem einrichte, wenn ich den Speicher nie an einem PC 
habe?
Das FAT-Dateisystem schein mir doch ziemlich aufwändig. Alle Quellcodes 
die ich gefunden habe, gehen meist von einer SD-Karte aus, die zuvor am 
PC formatiert wurde... somit wäre das programmiertechnisch alles ein 
recht großer Aufwand, müsste den Flash erst formatieren, der Zugriff auf 
SD-Karten ist auch anders als auf einen Flash...

Aber wie würde eine funktionierende Alternative aussehen?
Ich bräuchte einen Speicherbereich, wo ich eine Art Zuordnungstabelle 
habe (Also Dateiname, Größe und wo im Speicher sie liegt). Dann müsste 
ich beim Start nur diese Zuordnungstabelle auslesen und wenn eine Datei 
angefordert wird, nachsehen wo sie liegt und dann lesen und senden, 
oder?

Und dann müsste ich mir noch überlegen, wie ich die Dateien auf das 
Flash bringe, also in ein Binärformat umwandeln, über Ethernet 
übertragen und ins Flash schreieben.

Klingt das irgendwie sinnvoll, oder habe ich was Grundlegendes 
übersehen?

von Andi S. (laserandi)


Lesenswert?

Hi,

Thomas Haslinger schrieb:
> Künftig sollen die Webseiten auf einem externen Flash-Speicher liegen

Warum? Weiter oben hast Du doch geschrieben, dass alles funktioniert. 
Ist der Platz zu klein?

> der Zugriff auf SD-Karten ist auch anders als auf einen Flash...

SD-Karten sind Flash-Speicher mit eigenem µC. Warum möchtest Du alles 
selber stricken? Für SD-Karten gibt es hier dutzende Beispiele. 
Einfacher gehts nicht.

> Ich bräuchte einen Speicherbereich, wo ich eine Art Zuordnungstabelle habe

Nicht unbedingt, kommt darauf an was Du mit den Webseiten machen 
möchtest.

>Und dann müsste ich mir noch überlegen, wie ich die Dateien auf das Flash 
>bringe, also in ein Binärformat umwandeln, über Ethernet übertragen und ins 
>Flash schreieben.

Das hört sich nach ftp-Server an, wurde hier auch schon mehrfach 
veröffentlicht.

Gruß
Andi

von Thomas Haslinger (Gast)


Lesenswert?

Ja der Speicherplatz im Controller ist zu wenig für die Webseiten 
(brauche 1-2MB). Außerdem müsst ich dann ständig die Controllersoftware 
ändern, wenn es Änderungen an der Webseite gibt, was bei uns 
erfahrungsgemäß ziemlich oft ist.

Also alle Beispiele mit SD Karten die ich gefunden habe, waren ziemlich 
umfangreich. Vor allem den ganzen Funktionsumfang einer FAT Partition 
(einzelne Dateien löschen, umbenennen, Datum,...) und eines FTP Server 
brauch ich eigentlich nicht.
Ich will im Prinzip nur einmal einen kompletten Satz Webseiten 
rüberspielen und gut ists.

Klar ist eine SD-Karte auch ein Flash Speicher, aber eben mit eigenem 
Controller und soweit ich gesehen habe, gibt es spezielle 
Softwarebefehle für diese SD Karten. Ich hab aber einen fest 
eingelöteten Flash-Chip, da müsste ich dann alle Befehle umschreiben, 
oder nicht? Und eine SD-Karte kann in diesem Projekt nicht verwendet 
werden.

Du schreibst ich brauche nicht unbedingt einen Speicherbereich mit einer 
Dateizuordnungstabelle. Aber wie soll ich dann wissen wenn über Ethernet 
eine Anfrage für eine bestimmte Seite kommt, wo ich danach im Speicher 
suchen muss?

von Andi S. (laserandi)


Lesenswert?

Man kann sd- Karten auch ohne Dateisystem beschreiben "RAW", genau wie 
jeden anderen Speicher auch, aber ein Dateisystem brauchst Du ja 
scheinbar und wenn Du selber keins erfinden möchtest musst Du halt FAT, 
minix oder ähnliches benutzen.
FAT ist hier wahrscheinlich am besten dokumentiert und kleine FAT's gibt 
es z.B. hier "http://elm-chan.org/fsw_e.html";

Wenn der Flash schon eingelötet ist, wirst Du ja auch Infos haben, wie 
er angeschlossen wurde (SPI, I2C) und welche Befehle Dein Flash 
akzeptiert.
Dann wirst Du diese auf den Quellcode des Filesystems portieren müssen.

Wenn Du die html-Seiten schon auslagerst, müsstest Du doch wieder genug 
Platz auf dem µC haben?

Hier wurde schon mal darüber diskutiert:
Beitrag "kleinste SPI-SD+Fat Lib für AVR"

von ... (Gast)


Lesenswert?

schau doch mal bei Ethersex rein, vielleicht ist das ja was du suchst.

von Purzel H. (hacky)


Lesenswert?

Man kann auch ein Dataflash benutzen und ein vereinfachtes FAT selbst 
schreiben. So schwierig das auch nicht.

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.