SoC - Linux - RaspberryPi...Programmierung?

Hey,

ich habe hier mal eine Frage die nichts mit dem Arduino zu tun hat, bzw. nicht direkt.

Ein Arduino hat ja einen Mikrocontroller der programmiert werden kann und dann den Code ausführt.

Wie ist das aber dann bei einem SoC-Board z.b. dem Raspberry Pi? Im SoC ist ja ein ARM usw. integriert...aber wird dort irgendetwas programmiert? Ich würde gerne wissen wie so ein Board funktioniert...und gibt es da einen Unterschied zu anderen Boards wie z.B. dem Beaglebone oder so etwas?

Ich würde gerne wissen wie diese Boards funktionieren & natürlich steht im Hintergrund die Frage wie aufwändig es ist selbst so ein ARM-Board mit Linux aufzubauen. Bis dahin ist es aber noch ein weiter weg :wink:

Grüße

Rasperry hat eine CPU und externes RAM und Flash wo die Programme und SO laufen.
Grüße Uwe

Und wie weiß das ganze dass es denn jetzt irgendwas aus dem Flash laden soll? Ich bin doch noch nicht so ganz durchgedrungen...

Im Prinzip ist der Pi nichts anderes wie ein (etwas schwächlicher) PC mit Linux. Du hast also einen Desktop, ein Dateisystem, usw.
Anstelle der Festplatte läuft das System halt von einer SD-Card und zusätzlich hat er noch ein paar weitere Schnittstellen (GPIO) ähnlich dem Arduino.

Woher weiß denn das System dass es jetzt die Daten von der SD-Karte ziehen kann. Ist da auch eine Art BIOS oder so drauf? Kennt jemand eine gute Dokumentation zu diesem Thema? Damit ich nicht ständig dazu was fragen muss?

Im Prinzip möchte ich später einmal selbst ein kleines embedded Linux System aufbauen. Ähnlich des Raspberry Pi, nur würde ich gerne auf einen GPU verzichten, aber das ist noch Zukunftsmusik in erster Linie würde ich gerne wissen was denn alles erledigt werden muss damit so ein System funktioniert.

Fujitsu313:
Woher weiß denn das System dass es jetzt die Daten von der SD-Karte ziehen kann. Ist da auch eine Art BIOS oder so drauf? Kennt jemand eine gute Dokumentation zu diesem Thema? Damit ich nicht ständig dazu was fragen muss?

Im Prinzip möchte ich später einmal selbst ein kleines embedded Linux System aufbauen. Ähnlich des Raspberry Pi, nur würde ich gerne auf einen GPU verzichten, aber das ist noch Zukunftsmusik in erster Linie würde ich gerne wissen was denn alles erledigt werden muss damit so ein System funktioniert.

Wenn der Pi Strom bekommt, bootet er automatisch das Linux System von der SD-Karte. Ich vermute also mal, dass er auch ein kleines Mini-BIOS hat, welches den Boot-Vorgang einleitet.
Und ein ähnliches System selber aufzubauen ist nicht ohne. Da stellt sich schon die Frage wozu, bei den aktuellen Preisen vom Pi und co.
Und bei Deiner Fragestellung schätze ich mal (ohne Dich jetzt entmutigen zu wollen), dass Du da einige Jahre intensive Arbeit reinstecken darfst.

Das habe ich mir auch schon gedacht. Einige Jahre Arbeit? Das ist kein Problem...geht ja in die Richtung meines späteren Vorhabens.

Ich würde mich auch mit einem OpenSource Projekt zufrieden geben oder so irgendetwas. Das Ziel ist auf jeden Fall ein eigenes System aufzubauen was doch einiges an Funktionen bieten sollte...

Der Start-Prozess eines Raspberry Pi ist relativ kompliziert:

Die GPU (ja, richtig, der Graphik-Prozessor) startet als erstes und führt ein kleines Stück ROM-Code aus. Dieses liest über den SPI-Bus den Bootloader-Code von der SD-Karte in's RAM, setzt den SPI-Bus wieder zurück (also übergibt die Kontrolle an den ARM-Kern) und startet den ARM-Kern. Der Bootloader installiert dann die Firmware für GPU und Haupt-Prozessor, lädt den Kernel von der SD-Karte und führt ihn schliesslich aus.

Was von Dir BIOS genannt wird, ist also im Bootloader enthalten, dort wird die Hardware initialisiert und für den Betrieb bereit gemacht.

Dies ist allerdings bei den meisten linux-basierten Embedded-Rechnern anders, dort ist meist keine GPU vorhanden und alles findet auf dem Hauptprozessor statt, aber abgesehen von diesem Detail dürfte es meist ähnlich ablaufen.

Wow! Danke! Das macht einiges deutlicher.

Nun stellt sich die Frage wie ich mich selbst an sowas herantasten kann...

Wenn du deinen raspberry hardwarenah programmieren willst, dann schau dir „dexbasic for raspberry pi“ an. Ist inspiriert von der Arduino Idee. Allerdings wird dort mit flat assembler programmiert, und es gibt noch nicht viele libraries. 3 Tutorials gibt es aber schon einmal.