Forum: Mikrocontroller und Digitale Elektronik Suche Tutorial zum Assembler schreiben eines eigenen Webservers


von Mirte (Gast)


Lesenswert?

Hallo,

Erstmal vorraus: Ich besitze alle Grundlagen (und mehr) in den Bereichen 
Elektrotechnik, µC Programmierung (ehr weniger aber genug) und 
Computertechnik.

Mein Vorhaben: Ich habe vor für mein AVR-Net-IO einen Eigenen Webserver 
zu schreiben, wenn möglich in Assembler oder aber auch in C. Dieser soll 
ein Display mit Textausgabe haben, Porterweiterung, 1-Wire und Infarot 
(RC5) sowie viele weiter features. zudem auch noch ein eigenes HTML 
Design.

Meine Probleme: Ich suche noch ein vernünftiges Tutorial wo erklärt wird 
wie man jetzt zum Beispiel eine HTML Seite in ein Assemblerprogramm mit 
einbindet und bei Anhaken eines Hakens dann ein Ausgang geschaltet wird 
und so etwas.

Meine Frage: Kennt ihr ein solches Tutorial das sich darauf 
spezialisiert TCP/IP (nennt sich mein vorhaben so?) vorzustellen und zu 
erklären?


Einzige Anfforderung: Ich möchte nicht den Code von Ulrig Radig oder 
Ethersex nutzen, sondern meine eigene Firmware machen, um dies zu lernen 
und zu verstehen.

Ich hoffe ja sehr das ihr mir da weiterhelfen könnt,

MFG Mirte

: Gesperrt durch User
von Christian B. (casandro)


Lesenswert?

OK, das Hauptproblem ist dann, Ethernet und TCP/IP zu erlernen.

Dazu besorgst Du Dir idealerweise 2 Linuxrechner (können sehr alte 
Kisten sein, mit Puppylinux geht das zur Not auch mit einem 486ger) auf 
dem einen installierst Du einen Webserver, auf dem anderen einen Browser 
(ist bei den meisten Distributionen sowieso immer dabei). Dann 
installierst du, falls nicht schon erledigt, netcat auf beiden Rechnern.

Zusätzlich brauchst Du noch Wireshark. Das ist ein sehr schönes Programm 
um den Netzwerkverkehr zu analysieren.

Fang dann mal mit einfachen Dingen an. Nutze netcat auf einem Rechner um 
einen Server (listen) Port auf zu machen, und verbinde Dich vom anderen 
Rechner aus drauf. (ebenfalls mit netcat)
Schau dann mal an, was Wireshark so an Paketen ausspuckt und schau in 
der Dokumentation zu Ethernet, IP und TCP nach und versuche das zu 
verstehen.

Dann nimm Dir die Dokumentation zu HTTP vor. Versuche zu verstehen, was 
da passiert.

Einfach ist das alles nicht, aber es sollte sich lohnen.

von Arthur Dent (Gast)


Lesenswert?

Guck dir erstmal an was HTML und TCP/IP überhaupt sind und was ein 
Webserver wie z.B. Apache überhaupt macht. Aus deinem  Post ist 
ersichtlich, das dir das nicht wirklich klar ist. Als Einstieg würde ich 
dir Wiki empfehlen und die Doku zu Apache.
Viel Erfolg!

von Mirte (Gast)


Lesenswert?

Ich weiß sowohl was HTML als auch was TCP/IP ist, HTML ist die Sprache 
(Saag ich mal so) in der "Internetseiten" geschrieben werden, HTML und 
PHP behersche ich übrigens auch. TCP/IP ist das ein Netzwerkprotokoll.
Ich habe ja nicht umsonst nach einem Tutorial gefragt das erklärt wie 
ich das beides in Assembler intregiere...

von Blubberich (Gast)


Lesenswert?

Mach mal weiter mit Deinen Intrigen...

von Name (Gast)


Lesenswert?

Mirte schrieb:
> TCP/IP (nennt sich mein vorhaben so?)

> Ich weiß sowohl was HTML als auch was TCP/IP ist

sagt schon alles.

Ich würde dir vorschlagen, lieber ein paar Stufen kleiner anzufangen.
Dein Projekt in seiner jetzigen Form ist für dich noch viel zu weit 
entfernt.
Hast du denn schonmal einen Webserver auf einem PC ( z.B. in Java ) 
aufgesetzt ? Das wäre schonmal ein kleiner Schritt in die richtige 
Richtung.
Zudem solltest du das OSI-Schichtmodell, gerade im Bezug auf den 
TCP/IP-Stack wirklich gut kennenlernen.
Nur dann ist eine entfernte Chance gegeben, dass das ganze erfolgreich 
verlaufen kann.

von Peter II (Gast)


Lesenswert?

Mirte schrieb:
> TCP/IP ist das ein Netzwerkprotokoll.

hast du schon wirklich mit dem Protokoll beschäftig? Fang erstmal auf 
dem PC an selber TCP/IP zu Programmieren, wenn du das geschaffst hast 
und noch lust hast, dann kannst du es ja mit ASM auf einen µC versuchen.

> einbindet und bei Anhaken eines Hakens dann ein Ausgang geschaltet wird
> und so etwas.
wer soetwas fragt, der hatt http nicht verstanden.

von Christian B. (casandro)


Lesenswert?

Mirte schrieb:
> PHP behersche ich übrigens auch

Entschuldigung, aber das glaube ich Dir nicht. Es gibt Millionen von 
Leuten die zwar behaupten, PHP zu beherrschen es aber dann noch nicht 
können.

von Mirte (Gast)


Lesenswert?

Danke, Aber was geht ess euch was an ob ihr mir glaubt das ich das 
behersche oder nicht?? ich fragt nett nach einem Tutorial dafür und 
bekomme wie immer hier nur zuhören "lern doch erstmal das und das" 
wahrscheinlich von leuten die zu dumm sind ihr leben auf die reihe 
zukrigen oder was??

von Oliver J. (skriptkiddy)


Lesenswert?

Mirte schrieb:
> Danke, Aber was geht ess euch was an ob ihr mir glaubt das ich das
> behersche oder nicht?? ich fragt nett nach einem Tutorial dafür und
> bekomme wie immer hier nur zuhören "lern doch erstmal das und das"
> wahrscheinlich von leuten die zu dumm sind ihr leben auf die reihe
> zukrigen oder was??

Das wars....

von Mirte (Gast)


Lesenswert?

Ja von mir aus, hab bei einem "Netteren" Forum schon eine perfekte 
Antwort bekommen und kann mich jetzt in ruhe an meinen Webserver machen

von Name (Gast)


Lesenswert?

Ich nehme mal an, dass das ganze eine Aufgabe deiner 
Schule/Hochschule/deines Arbeitsnehmers oder Kindergartens ist.
Den Eindruck machst du zumindest ... unter dem Vorwand, etwas lernen zu 
wollen, willst du am besten schon vorgesetzten Code haben und nicht ein 
Fünkchen Eigeninitiative zeigen. Aber keine der bekannten Libraries, das 
würde ja auffallen.
Kurz und knapp: Ohne Fleiß kein Preis. Ich bin raus.

von Oliver J. (skriptkiddy)


Lesenswert?

Mirte schrieb:
> Ja von mir aus, hab bei einem "Netteren" Forum schon eine perfekte
> Antwort bekommen und kann mich jetzt in ruhe an meinen Webserver machen

Mit Sicherheit...

von Christian H. (christian_h)


Lesenswert?

Ich merke, dass nicht das Forum gemein ist, sondern die TSs dumm sind.

von Name (Gast)


Lesenswert?

Genau deswegen liebe ich dieses Forum ... wenn die Frage ordentlich 
gestellt ist und man sieht, dass der TS sich damit beschäftigt, dann 
gibt es auch gute Antworten.
Wenn der TS ein A****loch ist, dann wird er auch so behandelt.

Weiter so, Jungs :)

von Uhu U. (uhu)


Lesenswert?

Mirte schrieb:
> Mein Vorhaben: Ich habe vor für mein AVR-Net-IO einen Eigenen Webserver
> zu schreiben, wenn möglich in Assembler oder aber auch in C. Dieser soll
> ein Display mit Textausgabe haben, Porterweiterung, 1-Wire und Infarot
> (RC5) sowie viele weiter features. zudem auch noch ein eigenes HTML
> Design.

Es gibt kleinere Lebensaufgaben, als sowas in ASM zu schreiben...

Fang doch erst mal mit C auf dem µC an und such dir dafür irgendwas, was 
dich nicht gleich erschlägt.

Wenn du das dann beim Laufen hast, kannst du dir den ASM-Text ansehen, 
den der gcc erzeugt und dir dann überlegen, wie du das besser machen 
kannst.

Über AVR findest du hier massenweise Artikel: 
http://www.mikrocontroller.net/articles/Spezial:Alle_Seiten

Ein AVR-Assembler-Tutorial findest du z.B. hier: 
http://www.avr-asm-tutorial.net/

Ansonsten hilft dir Google gerne...

von spess53 (Gast)


Lesenswert?

Hi

>Danke, Aber was geht ess euch was an ob ihr mir glaubt das ich das
>behersche oder nicht?? ich fragt nett nach einem Tutorial dafür und
>bekomme wie immer hier nur zuhören "lern doch erstmal das und das"
>wahrscheinlich von leuten die zu dumm sind ihr leben auf die reihe
>zukrigen oder was??

Du fragst nach einem Tutorial für Assembler. Als notorischer 
Assemblerprogrammierer behauptet ich, das du das nicht finden wirst. Das 
ist aber eigentlich eine Domäne für höhere Programmiersprachen.
Das ganze ist in Assembler machbar. Allerdings sind PHP/HTML erstmal das 
letzte was dir bei dem Vorhaben hilft. Das verschleiert nur den Blick 
über das geschichtete Netzwerkprotokoll.
Ich bin auch dabei das zu realisieren. Im Moment allerdings ohne 
Zeitdruck, also etwas langsamer. Eine recht gute Vorlage in C ist der 
Webserver von Uli Radig. Den musst du eigentlich nur in Assembler 
umsetzen.

MfG Spess

von Christian B. (casandro)


Lesenswert?

Mirte schrieb:
> ich fragt nett nach einem Tutorial dafür und
> bekomme wie immer hier nur zuhören "lern doch erstmal das und das"

Ich frage mich, was er sich unter einem "Tutorial" vorstellt?

von Purzel H. (hacky)


Lesenswert?

Irgendwie scheint mir ASM nicht das Tool zu sein. Neben den Protokollen 
benoetigt man auch noch ein Filesystem auf irgendwas, Flash, SD-card, 
usw. Denn HTML ist filebezogen. Der Client fordert files an. Eine 
clickbare Oberflaeche macht man uebrigens mit Javascript und Ajax.

von spess53 (Gast)


Lesenswert?

Hi

>Irgendwie scheint mir ASM nicht das Tool zu sein. Neben den Protokollen
>benoetigt man auch noch ein Filesystem auf irgendwas, Flash, SD-card,
>usw. Denn HTML ist filebezogen. Der Client fordert files an.

Nö. Sieh dir mal den oben erwähnten Webserver von Uli Radig an.

MfG Spess

von Purzel H. (hacky)


Lesenswert?

Danke. Ich hab auch mal einen Webserver geschrieben. Man macht sich 
zuviel Arbeit mit ASM, auch wenn es moeglich ist.

von Uhu U. (uhu)


Lesenswert?

spess53 schrieb:
> Nö. Sieh dir mal den oben erwähnten Webserver von Uli Radig an.

Für einen richtigen ASM-Fuchs nicht. Einem Programmier-Anfänger möchte 
ich das nicht empfehlen...

von spess53 (Gast)


Lesenswert?

Hi

>Für einen richtigen ASM-Fuchs nicht. Einem Programmier-Anfänger möchte
>ich das nicht empfehlen...

Meine Antwort war primär auf die Notwendigkeit eines Filesystems 
gerichtet.

MfG Spess

von Purzel H. (hacky)


Lesenswert?

Aha. Das Filesystem braucht man um die Files zu lagern. Denn eine 
Website besteht aus einer Vielzahl von files, das erste ist meist das 
index.html, alle anderen sind von da folgend. Ich hab ein filesystem 
fuer ein flash geschrieben. Da gibt es immer was zu debuggen, und ASM 
ist etwas wenig selbsterklaerend, und schwer wartbar, speziell im 
vergleich mit anderen sprachen.

von Karl H. (kbuchegg)


Lesenswert?

Dekad Oschi schrieb:
> Aha. Das Filesystem braucht man um die Files zu lagern. Denn eine
> Website besteht aus einer Vielzahl von files, das erste ist meist das
> index.html, alle anderen sind von da folgend.

Im Prinzip hast du recht.

Allerdings sind die 'Server', die von einem AVR getrieben werden, so 
einfach, dass man da keine Files benutzt. Egal was der Client anfordert, 
der µC präsentiert ihm immer denselben Text, in den er vielleicht noch 
ein paar Messwerte programmtechnisch einbaut. Maximal gibt es 2 oder 3 
verschiedene Seiten, die ganz einfach als Fixtexte im Programm vorrätig 
sind.

D.h. meistens braucht man kein richtiges Filesystem, sondern der Server 
schaut einfach nur auf den Namen des verlangten Files und entscheidet 
welchen Text er aus einem vordefinierten Array er zurückschickt.


Einen Webserver inklusive TCP/IP Stack in Assembler zu bauen, so crazy 
ist wahrscheinlich noch nicht einmal spess53. Und der ist für mich 
immerhin eine der Assembler Autoritäten hier im Forum.

von Peter II (Gast)


Lesenswert?

Dekad Oschi schrieb:
> Aha. Das Filesystem braucht man um die Files zu lagern. Denn eine
> Website besteht aus einer Vielzahl von files, das erste ist meist das
> index.html, alle anderen sind von da folgend
das muss aber nicht sein, webanwendungen die mit ASP geschrieben sind, 
bestehene aus einer DLL. Das die URL am ende wie eine Datei aussieht hat 
nichts mit dem Server zu tun. Ein Filesystem ist keine vorrausetzung für 
ein webserver.

von Volker S. (volkerschulz)


Lesenswert?

Peter II schrieb:
> Dekad Oschi schrieb:
>> Aha. Das Filesystem braucht man um die Files zu lagern. Denn eine
>> Website besteht aus einer Vielzahl von files, das erste ist meist das
>> index.html, alle anderen sind von da folgend
> das muss aber nicht sein, webanwendungen die mit ASP geschrieben sind,
> bestehene aus einer DLL.

DAS muss allerdings auch nicht sein! ;)

> Das die URL am ende wie eine Datei aussieht hat
> nichts mit dem Server zu tun.

Und das sollte eigentlich jedem klar sein, der sich auch nur im Ansatz 
mit der Funktion eines Webservers beschaeftigt hat. Und eigentlich auch 
denen, die nur per Wordpress-Modul rewriten, damit die URLs huebscher 
aussehen. ;)

> Ein Filesystem ist keine vorrausetzung für
> ein webserver.

Amen.

Volker

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.