Zusammenspiel von Hard- u. Software

OP #4625023
Lesenswert?

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)
Gast #4625070
Lesenswert?

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.
Gast #4625113
Lesenswert?

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?
Gast #4625358
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren