Forum: Mikrocontroller und Digitale Elektronik Programmierung SD-Karte


von Peter (Gast)


Lesenswert?

Hallo,
ich möchte ein Projekt beginnen wo eine SD-Karte beschrieben und gelesen 
wird. Klar es gibt genug Bibliotheken aber ich wollte gerne den Code so 
anpassen das er perfekt auf meine Bedürfnisse passt. Bevor ich nun ein 
Bibliothek wo weite anpasse wollte ich gerne von vorne selber anfangen. 
Ich habe mit C eine .exe programmiert um Dateien von einer SD-Karte 
auszulesen und mir ist auch bekannt wie die Ordnung auf einer SD-Karte 
gehalten wird. Nun aber zu meiner Frage:

Wenn ich eine Datei erstelle muss ja ein Parameter hinterlegt werden wo 
die Datei beginnt. Muss ich dieses Parameter selber beschreiben sprich 
vorher prüfen wo platz für den Inhalt der Datei ist oder mach es die 
Sd-Karte intern selber?

Wenn ich eine Datei schreibe und mehr als 512 byte beschreibe wird ja 
eine zweite Seite aufgeschlagen. Nun wird ja in der FAT festgehalten wo 
Seite 2 usw. zu finden sind. Muss man und er FAT Selber die Pfade 
angeben oder macht die SD-Karte das intern selber?

Also reicht es einfach auf die SD Karte zu schreiben mit Angabe von 
Adresse und Daten oder muss ich manuell auch eintragen von wo bis wo die 
Datei zu finden ist?

Danke für eure Hilfe schonmal im voraus und frohe Weihnachten euch allen 
:)

von Falk B. (falk)


Lesenswert?

@ Peter (Gast)

>ich möchte ein Projekt beginnen wo eine SD-Karte beschrieben und gelesen
>wird.

Einfach.

> Klar es gibt genug Bibliotheken

Nutze sie.

>aber ich wollte gerne den Code so
>anpassen das er perfekt auf meine Bedürfnisse passt.

Perfektionist?

https://de.wikipedia.org/wiki/Perfektionismus_%28Psychologie%29

>Bevor ich nun ein
>Bibliothek wo weite anpasse wollte ich gerne von vorne selber anfangen.

Ob das so sinnvoll ist, das Rad immer wieder neu zu erfinden?

>Ich habe mit C eine .exe programmiert um Dateien von einer SD-Karte
>auszulesen

Auf dem PC?

>und mir ist auch bekannt wie die Ordnung auf einer SD-Karte
>gehalten wird.

Nennt sich FAT.

>Wenn ich eine Datei erstelle muss ja ein Parameter hinterlegt werden wo
>die Datei beginnt.

Nö, darum kümmert sich die Bibliothek, so man denn eine benutzt.

> Muss ich dieses Parameter selber beschreiben sprich
>vorher prüfen wo platz für den Inhalt der Datei ist oder mach es die
>Sd-Karte intern selber?

Und du willst uns erzählen, du wüßtest wie auf einer SD-Karte Ordung 
gehalten wird? Das bezweifle ich mal ;-)

>Wenn ich eine Datei schreibe und mehr als 512 byte beschreibe wird ja
>eine zweite Seite aufgeschlagen. Nun wird ja in der FAT festgehalten wo
>Seite 2 usw. zu finden sind. Muss man und er FAT Selber die Pfade
>angeben oder macht die SD-Karte das intern selber?

;-)
Eine SD-Karte kann nur einzelen Pages a 512 Bytes beschreiben und lesen. 
Was in den Pages steht, interessiert die SD-Karte nicht. Darum muss der 
"Anwender" sich kümmern. Sinnvollerweise überläßt man das der FAT-Lib 
seiner Wahl.

>Also reicht es einfach auf die SD Karte zu schreiben mit Angabe von
>Adresse und Daten oder muss ich manuell auch eintragen von wo bis wo die
>Datei zu finden ist?

Logisch.

Und warum meinst du nun immer noch, daß du eine Bibliothek "perfekt" an 
deine Anforderungen anpassen zu müssen? Worin sind deine Anforderungen 
so besonders, als daß sie die meisten Libs nicht erfüllen könnten?

von Peter II (Gast)


Lesenswert?

die Karte macht überhaupt nichts selber. Du musst du alles machen.

Du musst dafür sorgen, das ein gültiges Dateisystem vorhanden ist, auch 
das die Einträge in der FAT alle richtig sind. (Sofern du ein 
FAT-Dateisystem verwendest).

von Peter (Gast)


Lesenswert?

Danke so weit. Dann war ja meine Vermutung ganz richtig und ich muss 
alles vorgeben.

Warum ich keine Bibliothek verwenden möchte?
Viele geben die Eins vor wo angeschlossen wird. Ich möchte gerne selber 
entscheiden welche meiner SPI Schnittstellen verwendet wird. Auch möchte 
ich selber festlegen wie viele Daten auf einmal ausgelesen werden z.b. 
und ich möchte gerne wissen was mein Programm da macht und nicht macht. 
Gerade wenn es um die Fehlersuche geht finde ich es sehr nützlich ;)

Im Prinzip dachte ich daran ganz von FAT 16 oder ähnlichem weg zugehen 
und ein eigenes Format zu nutzen. Zwar kann man dann die Karte nicht am 
PC auslesen aber das will ich ja auch nicht :) Aber ich könnte den 
Aufbau einfacher erhalten oder?

von Falk B. (falk)


Lesenswert?

@ Peter (Gast)

>Warum ich keine Bibliothek verwenden möchte?
>Viele geben die Eins vor wo angeschlossen wird.

Quark. Das ist frei einstellbar.

>Ich möchte gerne selber
>entscheiden welche meiner SPI Schnittstellen verwendet wird.

Das kannst du.

> Auch möchte
>ich selber festlegen wie viele Daten auf einmal ausgelesen werden

Daran hindert dich keiner.

>z.b.
>und ich möchte gerne wissen was mein Programm da macht und nicht macht.
>Gerade wenn es um die Fehlersuche geht finde ich es sehr nützlich ;)

Unsinn. Eine gescheite Lib ist gut bis sehr gut getestet. Da muss und 
WILL man die internen Dinge gar nicht wissen!

>Im Prinzip dachte ich daran ganz von FAT 16 oder ähnlichem weg zugehen
>und ein eigenes Format zu nutzen. Zwar kann man dann die Karte nicht am
>PC auslesen aber das will ich ja auch nicht :) Aber ich könnte den
>Aufbau einfacher erhalten oder?

Sag doch einfach. Ich will frickeln weil ich denke schlauer zu sein als 
der Rest der Welt. Mach mal, viel Spaß.

von Dr. Sommer (Gast)


Lesenswert?

Peter schrieb:
> und ein eigenes Format zu nutzen.

Die SD Spezifikation schreibt die Nutzung von FAT16/FAT32/exFAT (bei 
SDSC/SDHC/SDXC) vor. Wenn du das nicht verwendest, ist das Betrieb 
außerhalb der Spezifikation. Das kann funktionieren, muss aber nicht, 
insbesondere nicht mit der angegebenen Geschwindigkeit und Haltbarkeit.

Peter schrieb:
> Viele geben die Eins vor wo angeschlossen wird. Ich möchte gerne selber
> entscheiden welche meiner SPI Schnittstellen verwendet wird.

Das kannst du bei fertigen Libraries Problemlos einstellen. Wegen dieser 
winzigen Änderung eine eigene Library zu erstellen ist sinnlos.

Lies mal die SD Spezifikation anstatt hier aufs geratewohl rumzufragen. 
Das musst du zur Implementierung deiner eigenen Library sowieso tun. 
Vielleicht vergeht dir angesichts der Komplexität dann doch die Lust an 
der Eigenentwicklung...

von S. Landolt (Gast)


Lesenswert?

Peter schrieb:
> Zwar kann man dann die Karte nicht am PC auslesen
Das ist durchaus möglich, und für die ersten Gehversuche u.U. recht 
nützlich; ich verwende 'Win32 Disk Imager', es gibt sicher noch andere.

von Chr. M. (snowfly)


Lesenswert?

Auch Librarys die schon fertig sind kann man bearbeiten.

Das geht übrigens auch mit Arduino..<gd&r>

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Welche Lib würdet ihr dann empfehlen wo man all diese Sachen selber 
anpassen kann? Habe mir ElmChan's angesehen aber die ist ja auch sehr 
komplex und habe nicht wirklich den Punkt gefunden wo man z.b. die Eins 
vorgeben kann. Würde mich hier gerne über Hilfe freuen.

Ach und sehe mich nicht schlauer als der Rest der Welt aber das gemachte 
Nest war nie ganz so meins. Aber bin bereit ein zusehen wenn eine andere 
Lösung mit gleichen Ziel bequemer ist :)

von Karl H. (kbuchegg)


Lesenswert?

>>und ich möchte gerne wissen was mein Programm da macht und nicht macht.
>>Gerade wenn es um die Fehlersuche geht finde ich es sehr nützlich ;)
>
> Unsinn. Eine gescheite Lib ist gut bis sehr gut getestet. Da muss und
> WILL man die internen Dinge gar nicht wissen!

und wenn doch: es hindert einen keiner, die vorhandene Lib zu 
analysieren, wie das alles funktioniert. Das hat dann auch den grossen 
Vorteil, dass man etwas lernt, dass man die Lib intern kennt und somit 
auch Anpassungen vornehmen kann, so es denn unbedingt sein muss.

> PC auslesen aber das will ich ja auch nicht :) Aber ich könnte den
> Aufbau einfacher erhalten oder?

Das bezweifle ich. Gerade FAT16 ist an Einfachheit eigentlich kaum noch 
zu schlagen. Es gibt
* ein Inhaltsverzeichns. Logisch, das muss es geben. Denn woher soll man 
denn sonst wissen, wo welche Datei residiert und auf welchen Blöcken in 
welcher Reihenfolge die Daten gespeichert sind
* einen Mechanismus mit dem man feststellen kann, welche Blöcke belegt 
sind und welche nicht. Auch das ist logisch, denn wenn auf ein Datei 
geschrieben werden soll, dann muss ich ja wissen, wo ich auf der Karte 
schreiben kann ohne das ich bestehende Daten zerstöre
* und die Daten selber, gespeichert in Form von Datenblöcken auf der 
Karte.

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:
> Welche Lib würdet ihr dann empfehlen wo man all diese Sachen selber
> anpassen kann? Habe mir ElmChan's angesehen aber die ist ja auch sehr
> komplex und habe nicht wirklich den Punkt gefunden wo man z.b. die Eins
> vorgeben kann.

Welche 'Eins'?

Du meinst den SPI Anschluss.

Dann stöbere mal weiter im Code. Irgendwo wird es zentrale SPI Routinen 
geben. Ist ja schliesslich keine Raketentechnik. Zum Beispiel würde eine 
Codesuche quer über den ganzen Code mit dem Stichwort 'SPI' höchst 
wahrscheinlich auch die SPI Funktionen finden. Dort ist dann dein 
Anpasspunkt, um das SPI entweder per Hardware machen zu lassen (wenn 
dein µmC das kann) oder mittels Software-SPI jede beliebige 
Pinkombination zu benutzen.

> Ach und sehe mich nicht schlauer als der Rest der Welt aber das gemachte
> Nest war nie ganz so meins.

Dann musst du was dagegen tun. Soweit schon richtig.
Aber: Wenn ich aus dem was du schreibst und wie du es schreibst 
extrapolieren darf, dann stellst du dir das alles einfacher vor als es 
ist. Es reicht eben nicht, mit for und if-"Schleifen" umgehen zu können, 
wenn man eine hinreichend komplexe Sache programmieren will. Ein 
Dateisystem ist sicherlich nicht Raketentechnik, aber so komplex ist es 
auch wieder nicht. Vor allen Dingen dann nicht, wenn die Anforderungen 
nicht so wahsinnig hoch gestellt werden. Aber für einen Anfänger, der 
mit Datenstrukturen auf Kriegsfuss steht, ist das nichts.
Dein Anfangsposting zeigt, dass du da rechlich naiv an die Sache 
rangehst. Eine SD Karte ist eine riesige Halle mit haufenweise 
Schachteln. In jeder Schachtel kannst du 512 Bytes ablegen. Es ist jetzt 
deine Aufgabe ein Sytsem zu finden, mit dem die Ordnung in die 
Schachteln bringst, jederzeit weisst, was in welcher Schachtel abgelegt 
ist und welche Schachteln eigentlich zu einer Serie gehören und wie 
diese Serie heisst und in welche Schachtel du die nächsten 512 Bytes 
reingeben kannst, weil sie frei ist. Und das ganze so, dass diese 
Ordnung ebenfalls in den Schachtel dokumentiert ist. Denn es gibt 
unbegrenzt viele derartige Hallen und du musst dich nur mit dem zurecht 
finden, was du in den Schachteln vorfindest. Und das möglichst schnell 
und wenn geht auch dann noch, wenn eine der Schachteln feucht wurde und 
auseinanderfällt.
Das ist der Job, den es zu bewältigen gilt.

: Bearbeitet durch User
von Dieter F. (Gast)


Lesenswert?

Peter schrieb:
> Im Prinzip dachte ich daran ganz von FAT 16 oder ähnlichem weg zugehen
> und ein eigenes Format zu nutzen.

Wer hindert Dich daran?

Peter schrieb:
> Aber bin bereit ein zusehen wenn eine andere
> Lösung mit gleichen Ziel bequemer ist :)

Äh ...

Peter schrieb:
> Habe mir ElmChan's angesehen aber die ist ja auch sehr
> komplex und habe nicht wirklich den Punkt gefunden wo man z.b. die Eins
> vorgeben kann.

Wenn ich alles so zusammenzähle -> Troll

von Peter (Gast)


Lesenswert?

Was die Struktur angeht habe ich ein gutes Tutorial durchgearbeitet. 
Darum bin ich auch der Meinung es hinzubekommen die Struktur selber 
einzuhalten. Ich denke ich werde mir Elm Chan's FatFs ansehen und 
durcharbeiten und anpassen so dass es genau das macht was ich mir 
wüsche. Da sollte ich auf jedenfalls heraus finden wie wo was 
geschrieben oder gelesen wird. Diese Befehle kann ich ja dann selber 
stück für stück testen und sehen was passiert. Gute oder schlechte Idee?

Hat jemand Erfahrung mit dieser Lib?

von Peter (Gast)


Lesenswert?

Danke Dieter für deine Ausführungen :D Troll hihi klar als Bill Gates 
damals anfing meinten auch alle der sei verrückt :D Und wo sitzen wir 
jetzt davor? Dieser Troll ;)

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:
> Was die Struktur angeht habe ich ein gutes Tutorial durchgearbeitet.
> Darum bin ich auch der Meinung es hinzubekommen die Struktur selber
> einzuhalten. Ich denke ich werde mir Elm Chan's FatFs ansehen und
> durcharbeiten und anpassen so dass es genau das macht was ich mir
> wüsche. Da sollte ich auf jedenfalls heraus finden wie wo was
> geschrieben oder gelesen wird.

Das ist ganz einfach. Denn Elm Chan hat ja dokumentiert, wie sein System 
Lay aussehen muss
1
Device Control Interface
2
3
Since the FatFs module is a file system layer, it is completely separated
4
from the physical devices, such as memory card, harddisk and any type of
5
storage devices. FatFs accesses the storage devices via a simple interface
6
shown below. The low level device control module is not a part of FatFs
7
module. It is provided by implementer. Also sample implementations for some
8
platforms are available in the downloads.
9
10
disk_status - Get device status
11
disk_initialize - Initialize device
12
disk_read - Read sector(s)
13
disk_write - Write sector(s)
14
disk_ioctl - Control device dependent features
15
get_fattime - Get current time

Das sind also die Funktionen, die jemand der die Elm Chan Lib benutzen 
will, für seine Hardware schreiben muss. Dort findet dann auch 
logischerweise die Anpassnung an deine Hardware statt. Wenn von den 
Treibern, die Elm Chan zur Verfügung stellt, einer prinzipiell passt, 
dann ist das auch die Stelle an der du deine Hardware Änderungen 
einfliessen lässt bzw. wo die den vorhandenen Treiber anpasst.
Wenn es keinen passenden gibt, dann musst du eben einen schreiben. Die 
Funktionen sind ja ausführlich dokumentiert, was sie zu tun haben.
Für jemanden der ein komplettes Filesystem selber schreiben will, sollte 
das eigentlich ein Kinderspiel sein.

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:
> :D Troll hihi klar als Bill Gates
> damals anfing meinten auch alle der sei verrückt

Was wird das? Ein verkapptes Gallileo Gambit?

Bill Gates hatte dir gegenüber einen riesigen Vorteil. Er konnte etwas.
Und nein, keiner meinte er wäre verrückt. Denn die Leute mit denen er zu 
tun hatte, sahen ja, dass der Junge gut drauf war, wusste wovon er 
spricht und das auch mit funktionierendem Code belegen kann.
Und eines ist sicher: Gates brauchte kein Forum, damit die ihm sagen 
wies geht. Er hat es einfach gemacht!
Nur was du nicht siehst, das sind die Jahre an Lernzeit, die 
durchgearbeiteten Nächte, die zehntausend vollgekritzelten 
Schmierzettel, die verschlissenen Bücher und der vergossene Schweiss, 
damit er in diese Liga kam.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@ Peter (Gast)

>Welche Lib würdet ihr dann empfehlen wo man all diese Sachen selber
>anpassen kann? Habe mir ElmChan's angesehen

Die ist TOP!

>aber die ist ja auch sehr
>komplex und habe nicht wirklich den Punkt gefunden wo man z.b. die Eins
>vorgeben kann.

Nö, das ist eher einfach.

Beitrag "Re: Elm Chan FatFs SD Karte auf Keil MCB2300 LCP2378"

>Ach und sehe mich nicht schlauer als der Rest der Welt aber das gemachte
>Nest war nie ganz so meins. Aber bin bereit ein zusehen wenn eine andere
>Lösung mit gleichen Ziel bequemer ist :)

Wenn man aus reinem Spaß an der Freud eine FAT Lib selber schreiben 
will, OK. Aber die allermeisten Leute wollen sie nur benutzen, um etwas 
vollkommen anderes zu erreichen.

von Dieter F. (Gast)


Lesenswert?

Peter schrieb:
> Troll hihi klar als Bill Gates
> damals anfing meinten auch alle der sei verrückt :D Und wo sitzen wir
> jetzt davor? Dieser Troll ;)

Wenn Du nicht anonym unterwegs wärst würde ich mir vielleicht Deinen 
Namen merken - aber bei dem, was Du hier ablieferst lohnt sich das 
nicht. Der Vergleich ist um Dimensionen zu hoch gegriffen :-) -> Troll³

von Ralph S. (jjflash)


Lesenswert?

Bill Gates hat vor allen Dingen viel bei der Fa. " Digital Research" 
abgeguckt.... um es mal vornehm auszudrücken.... und dann der Fa. IBM 
als PC-DOS verkauft...

von crami (Gast)


Lesenswert?

@Peter

Ein ähnliches Konzept wie es Peter vorschwebt wurde früher bei der 
Programmiersprache FORTH angewendet:

Dort wurden Daten (vom sogenannten Frame Stack) als  fixe Blöcke (512 
Bytes ?) auf externen Datenträgern in durchnummerierten Blöcken 
abgelegt.

Ein Block konnten dann mit dem Befehl load(x) oder write(x) auf den 
Datenträger geschrieben oder gelesen werden (z.B.) Floppy des C64.

Mit der Arduino SD Library lässt sich dasselbe anstellen. Mit den 
Befehlen

#include <SDCARD.h>

und

SDCARD.readblock(sector number); //read 512 bytes from this sector
SDCARD.writeblock(sector number); //write 512 bytes to this sector

Blöcke irgendwo auf der SD-Karte lesen bw. schreiben.

Wie Peter erwähnt, ist eine SD-Karte hardwaremässig in Sektoren à 512 
Byte  eingeteilt, eine SD-Karte hat dann 65536 Sektoren.
Bei der üblichen Verwendung einer SD-Karte mit FAT16 ist sie so 
eingeteilt:

Sektor 0   MBR und Partition
Sektor 1   Boot Sektor
Sektoren (xx)  FAT
Anschliessend folgen die Sektoren mit den Daten.

Man kann SD Karte natürlich beliebig beschreiben, sie ist dann jedoch 
auf einem PC mit dem File Manager unlesbar. Dazu braucht man dann einen 
Hex Editor wie HDX.

Links:

http://forum.arduino.cc/index.php?topic=52871.0
http://codeandlife.com/2012/04/02/simple-fat-and-sd-tutorial-part-1/

von Stefan F. (Gast)


Lesenswert?

> Man kann SD Karte natürlich beliebig beschreiben, sie ist
> dann jedoch auf einem PC mit dem File Manager unlesbar.

Sollte man aber nicht tun, weil dadurch die Haltbarkeit und Performance 
der Karte drastisch reduziert werden können. SD Karten sind 
ausschließlich für FAT Filesysteme spezifiziert. Die Karte muss das 
Filesystem "verstehen" um freie Blöcke zu erkennen und Daten so zu 
verteilen, dass alle Speicherzellen gleichmäßig verschleissen.

Bei meinen SD Karten stand sogar im Beipackzettel, dass die Garantie 
erlischt, wenn man sie anders formatiert, als sie geliefert wurden.

von Peter II (Gast)


Lesenswert?

Stefan U. schrieb:
> Sollte man aber nicht tun, weil dadurch die Haltbarkeit und Performance
> der Karte drastisch reduziert werden können. SD Karten sind
> ausschließlich für FAT Filesysteme spezifiziert. Die Karte muss das
> Filesystem "verstehen" um freie Blöcke zu erkennen und Daten so zu
> verteilen, dass alle Speicherzellen gleichmäßig verschleissen.

wobei das auch nicht ganz sein kann. Wenn man die Karte randvoll macht. 
Und immer nur ein Inhalt von Dateien ändert, darf sie auch nicht gleich 
Kaputt gehen. Dabei muss sie auch Sektoren umsortieren.

von Konrad S. (maybee)


Lesenswert?

Stefan U. schrieb:
> Sollte man aber nicht tun, weil dadurch die Haltbarkeit und Performance
> der Karte drastisch reduziert werden können. SD Karten sind
> ausschließlich für FAT Filesysteme spezifiziert. Die Karte muss das
> Filesystem "verstehen" um freie Blöcke zu erkennen und Daten so zu
> verteilen, dass alle Speicherzellen gleichmäßig verschleissen.

Der Part mit "spezifiziert" ist OK. Der Rest fällt unter "Urban 
Legends". Meine Raspberrys usw. bevorzugen andere Filesysteme und keine 
der SD-Cards ist explodiert.

von Jim M. (turboj)


Lesenswert?

crami schrieb:
> Wie Peter erwähnt, ist eine SD-Karte hardwaremässig in Sektoren à 512
> Byte  eingeteilt, eine SD-Karte hat dann 65536 Sektore

Das sind 32 MByte. So kleine SD Karten gab es IIRC nie, das wären dann 
eher MMC Karten als Vorläufer. Die wären dann übrigens mit FAT12 
formatiert...

crami schrieb:
> Bei der üblichen Verwendung einer SD-Karte mit FAT16 ist sie so
> eingeteilt:
>
> Sektor 0   MBR und Partition
> Sektor 1   Boot Sektor
> [...]

Völliger Blödsinn. MBR ist Sektor 0, aber aber die Partition beginnt 
praktisch immer erst ein paar Sektoren später. Die Aufteilung ist wegen 
der Page Größen - 1 MByte bei moderneren SD und 4 MByte bei SDHC - 
wesentlich komplizierter: Die FAT beginnt auf Page 1 (also 1 oder 4 
MByte Offset) und die Daten dann auf Page 2. Die Cluster (32KB) sind so 
aufgeteilt dass es keine Cluster gibt die über Page Grenzen gehen - 
sonst müssten beim Schreiben dieser Cluster 2 Pages angefasst werden. 
Darum sollte man es auch vermeiden, SD Karten mit Windows Boardmitteln 
zu formatiern.

Auf 'ner Windoof Kiste sieht man als Laufwerk übrigens nur die 1. 
Partition, was immer mal für Verwirrung sorgt.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> Das sind 32 MByte. So kleine SD Karten gab es IIRC nie

Ich habe eine 64MB Karte.

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.