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
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.
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.
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.
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,
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 :-)
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,
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.