Ich stelle diese Frage neu, da sich die letzten Antworten nicht aufs technische, sondern aus betriebswirtshaftliche ausrichteten. Mein (Gedanken)Problem: Ein Betriebssystem wie Android läuft auf verschiedenen Geräten. Die Hersteller verwenden aber alle unterschiedliche Hardware, also unterschiedliche Prozessoren mit unterschiedlicher Anzahl an Pins, etc.. An welchem Punkt wird jetzt also das Betriebssystem auf die Hardware abgestimmt? Muss dazu im Android-Sourceode etwas angepasst werden? Oder muss der Hersteller ein zusätzliches Übersetzungsprogramm entwickeln, dass die Befehle auf die Pins verteilt? Mein Erfahrung bisher ist ein STM32 Disco Board. Für ein Betriebssystem ist das aber nicht geeignet. Der Code dazu (inkl. Touch-Diplay) wurde aber selbst (in C) geschrieben. Dabei musste ich jeden Pin einzeln ansteuern..... Angenommen das STM32-Board hätte genug Power für ein Android-Betriebssystem. Woher weiß das Betriebssystem, mit welchem Pin es beispielsweise die Kamera oder das Display ansteuert? (Beim STM32 Disco muss ich das explizit hineinprogrammieren)
:
Bearbeitet durch User
Inkognito schrieb: > Trollalarm, Moderatoren bitte löschen. Sagt der Gast, der sich Inkognito nennt! :)
Rein fiktiv: Ich gehe jetzt davon aus, dass Deine Hardware "funktionstüchtig" ist. Das Betriebssystem legt du nun in einem Speicher ab. Damit das Betriebssystem weiß, welchen Pin es ansprechen muss, musst du einen auf den Chip angepasstet Treiber programmieren. Diesen bekommst du evtl. beim Hersteller. Du brauchst auch noch einen Bootloader, der das Betriebssystem bootet. Diese gibt es auch Open-Source. Alles in allem ein sehr kompliziertes Vorhaben. Hoffe, ich konnte Dir weiterhelfen.
Inkognito schrieb: > Rein fiktiv: Kannst du dir keinen eigenen Nick ausdenken, anstatt meinen zu kapern?
Max M. schrieb: > Woher weiß das Betriebssystem, mit welchem Pin es beispielsweise die > Kamera oder das Display ansteuert? > (Beim STM32 Disco muss ich das explizit hineinprogrammieren) Oh je, Du schon wieder mit Deinen "Pins". Für die jeweilige Hardware gibt es spezifische "Treiber" die je nach Betriebssystem entweder beim Systemstart, dynamisch bei Benutzung oder fest in den OS-Kern implementiert sind. Ist Google schon wieder ausgefallen?
egbert schrieb: > Ist Google schon wieder ausgefallen? Muss man sich wirklich fragen https://source.android.com/devices/halref/
Android System Architektur http://source.android.com/devices/index.html Hardware Abstraction Layer https://source.android.com/devices/halref/
Die Android-HAL liegt ja auch schon ein paar Schichten höher, als das was der OP meinte. Unter dem Android "lebt" noch ein Linux-Kernel, und dem wird mitgeteilt, an welchen Pins sich welche Hardware befindet. So nach dem Motto: für den SPI Treiber im Kernel bitte eine instanz spi0 mit den Pins xyz anlegen und das Gerät abc ist an spi0 angeschlossen. Bei ARM Architekturen wird hierfür aktuell der Devicetree verwendet. Man schreibt die Konfiguration in einer human-readable Beschreibungssprache, selbiges wird dann in binärdaten übersetzt und dem Kernel beim Booten zum Fraß vorgeworfen.
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.