Forum: Mikrocontroller und Digitale Elektronik Organisation von Projekten mit hochkomplexer Hardware


von Christian J. (Gast)


Lesenswert?

Hallo,

ich habe mir mal spasseshalber ein wenig die Hardware des Raspi 
angeschaut, der inzwischen 3,5 Mio verkaufte Exemplare meldet.

Datenblatt der CPU:

http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf

Datenblatt der BCM2863 Soc, die um die CPU gebettet sind:

http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

Verkürztes Datenblatt des VideoCore IV:
http://www.broadcom.com/docs/support/videocore/VideoCoreIV-AG100-R.pdf

Da kommt noch einiges hinzu, wie Buscontroller, Speicheranbindung, 
externe Bausteine, USB, Lan Interface usw.

Ohne dass da jemand alles durchklickt sind das allein fast 2000 Seiten 
Dokumentation. Nur für die Hardware, denn die Software wie 
Grafiktreiber, OpenGL usw. erfordert weitere "Einarbeitung".

Wer sich mal das Datenblatt eines "einfachen" 802 Wlan Stick-Chips 
angeschaut hat samt dem Source der Treibersoftware und zugrunde 
liegender Standards läuft auch schnell Amok.

Ich stelle mir grad so vor jemand aus meiner früheren Firma würde das 
hingelegt "Arbeiten se sich mal ein...", ich wüsste von jedem dass er 
entweder gekündigt hätte oder aus dem Fenster gesprungen wäre.

Ich frage mich daher, wie Projekte wie der Raspi organsisiert werden, 
denn sein Linux muss auf der untersten Ebene exakt auf diese Hardware 
abgebildet werden. Nicht nur auf den Befehlssatz der CPU was schon im 
GCC steckt sondern auch auf dessen komplette Peripherie. Da kommen 
einige hunderttausende Codezeilen zustande. Der Apple 2 wurden noch von 
Woz als 1-Mann Entwicklung gemacht, das dürfte hier wohl utopisch sein.

Weiss hier jemand wie solche Projekte wie der Raspi organsiert werden, 
damit sie beherrschbar bleiben? Was liefert der Hersteller, was wird vom 
Anwender gefordert?


Gruss,
Christian

von Oliver R. (orb)


Lesenswert?

Christian J. schrieb:
> Weiss hier jemand wie solche Projekte wie der Raspi organsiert werden,
> damit sie beherrschbar bleiben?

Jemand der sich damit auskennt entwickelt die Hardware (Eben Upton 
arbeitet bei Broadcom) und setzt auf vorhandene Software die angepasst 
wird. Linux gab es schon für ARM bevor jemand an den PI gedacht hat.

von Christian B. (casandro)


Lesenswert?

Naja, Linux ist ja schon mal da. Was gemacht wird um es auf eine neue 
Architektur zu bringen ist:

1) die Architektur in den gcc zu bringen (moderater Aufwand, aber am 
Anfang braucht man noch keine Optimierung und so)

2) die architekturabhängigen Teile im Kernel zu ändern (Startup-Code und 
Taskswitching, dass kann relativ wenig sein)

3) die Treiber zu schreiben

Diese 3 Schritte werden auch gerne schon von Hardwareherstellern 
gemacht, denn wenn Linux auf dem neuen tollen Superprozessor von Firma X 
läuft, dann kann Firma X die auch verkaufen.

Um die Komplexität in den Griff zu bekommen gibt es die Unix 
Philosophie. Die besagt, sehr stark vereinfacht, dass man für jede 
Teilaufgabe ein einfaches Programm haben soll, welches nur dieses 
Teilproblem löst, sonst nichts. Deshalb gibts da Programme wie sort oder 
cut. Damit kannst Du mit sehr wenig Aufwand sehr komplizierte Probleme 
lösen. Natürlich sprechen alle Systeme (ASCII/UTF-8-)Text, was die Sache 
sehr einfach macht.

Dadurch dass sich damit die Arbeit schon aufteilt und Arbeit auch 
wiederverwendet werden kann, sinkt der Aufwand enorm.

Deshalb gibt Dir zum Beispiel diese kurze Zeile
grep "t=" /sys/bus/w1/devices/10-000801b5-seriennummer/w1_slave | cut -d 
"=" -f 2
die Temperatur eines DS18B20 Temperaturfühlers aus. Noch ein paar echos 
und in das cgi-bin Verzeichnis eines Webservers rein, und Du hast ein 
Web-Thermometer.

Daraus kann man auch in einfacheren Projekten lernen. Zum Beispiel ist 
es durchaus häufig vernünftig zunächst eine einfache Shell und ein 
Dateisystem zu haben. Dadurch vereinfachen sich später viele Problem.

von Christian J. (Gast)


Lesenswert?

Hallo,

der gcc selbst ist ja "neutral". Der seetzt den C99 Standard auf den 
Maschinenbefehlssatz um und berücksichtigt dabei die Eigenheiten der 
CPU. Der ARM11 ist ohne C Compiler und unterlegtes OS ohnehin witzlos. 
Das Datenblatt der CPU sind fast 1000 Seiten. Das haben Leute des GCC 
Teams schon länger gemacht, den ARM 11 auf ihren Compiler portiert. Wenn 
ich grad nach links schaue wo mein Raspi den sdcc Compiler seit ca 2,5h 
durchkompiliert, das sind schon ein paar Zeilen.

Der Grafiktreiber für die GBU zur Anbindung an den Linux Kernel wurde 
von einem Amerikaner in 4 Wochen allein erstellt und er bekam dafür 
10.000 USD Preisgeld. Vermutlich so ein 1 Mann Genie.

Ich frage mich aber grad was die Hersteller so an 
"Abstraktionsschichten" anbieten, damit ihre Kunden eben nicht aus dem 
Fenster springen.

grep "t=" /sys/bus/w1/devices/10-000801b5-seriennummer/w1_slave | cut -d
"=" -f 2

Ich sehe da nur dass cut ein One-Wire Protokoll aktiviert und dass 
unterlegte Treiber den DS, den ich selbst schon verwendet habe mit 
Bitbanging ins sys Verzeichnis abbilden, wo er wie ein Gerät arbeitet. 
Das hat mein Cubietruck auch, da kann man LEDs, CPU usw. drin verändern. 
Das Zauberwort heisst ISO/OSI Modell, mehrere Schichten, die die 
Hardware von der User Umgebung abtrennen. Nix Neues.

von Fpgakuechle K. (Gast)


Lesenswert?

Christian J. schrieb:
> Hallo,
>
> ich habe mir mal spasseshalber ein wenig die Hardware des Raspi
> angeschaut, der inzwischen 3,5 Mio verkaufte Exemplare meldet.


> Ich stelle mir grad so vor jemand aus meiner früheren Firma würde das
> hingelegt "Arbeiten se sich mal ein...", ich wüsste von jedem dass er
> entweder gekündigt hätte oder aus dem Fenster gesprungen wäre.

Naja ein Auto aus der oberklasse hat mindestens eine Computer mit der 
Komplexität RasPi verbaut (Navi,Freisprech,Internet,Multimedia) trotzdem 
schafft es auch ein 8-Klässler sich in die Bedienung einzuarbeiten.

MfG,

von Christian J. (Gast)


Lesenswert?

Fpga Kuechle schrieb:
> trotzdem
> schafft es auch ein 8-Klässler sich in die Bedienung einzuarbeiten.

Davon rede ich nicht, das ist nur das Frontend für Otto-Normaluser. Ich 
finde mich in jedem Dienstwagen in unter 1/2h mit der Bedienung aller 
Geräte zurecht. Das ist so gemacht und gewollt. Außer Mercedes C-Klasse, 
da hat es länger gedauert, den konnte ich nicht mal starten. Allerdings 
fahre ich selbst Scirocco II, da braucht man sowas nicht :-)

von Fpgakuechle K. (Gast)


Lesenswert?

Christian J. schrieb:

> Der Apple 2 wurden noch von
> Woz als 1-Mann Entwicklung gemacht, das dürfte hier wohl utopisch sein.

KOmmt drauf an, Schaltplan für einen ARM-SOC zeichnen ist kein 
Hexenwerk, auch Powersupply etc.. Layout ist bei der kleinen Platine 
auch in ein paar Wochen gezeichnet. Üblicherweise teilt man aber 
dergleich unter ein paar Leuten auf. Einer macht die Power supply einer 
die CPU, ein dritter Ethernet,USB und ESD. Dann kommt der erste 
Prototyp:  jetzt misst jeder, ob alles funzt und was korrregeirt werden 
muß.  Ich schätze bei einem kleinen team von 3 mann sollte man 2 Monate 
für den ersten Prototyp rechnen. Mglw schafft das auch ein erfahrener 
allein in ein paar Monaten.

MfG,

von c.m. (Gast)


Lesenswert?

Christian J. schrieb:

> Weiss hier jemand wie solche Projekte wie der Raspi organsiert werden,
> damit sie beherrschbar bleiben?

genau wie alles komplexe organisiert wird: module. jeder macht seinen 
teil in dem er sich auskennt und gibt das ergebnis dem nächsten weiter, 
der vom mehreren unter ihm (in der herstellungshierarchie) die teile 
gemäß seines wissens zusammenfügt.

ich baue z.b. grade einen 3d drucker in eigenregie zusammen, und benutze 
einzelteile von denen ich nicht weiß wie sie produziert werden. 
irgendjemand hat mir aluprofile produziert, linearführungen, 
sinterlager, microcontroller, schrittmotoren und deren treiber-ic's.
man muss ich nur mal hineinversetzen was es braucht um microschalter mit 
zehntausenden garantierten betätigungen herzustellen - ich kanns mir 
grob vorstellen, wissen und überblicken kann ichs nicht - vor allem 
nicht die gesamtheit allen wissens das in die produktion der teile 
geflossen ist, sie ich hier zusammenstöpsle.

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.