Forum: Ausbildung, Studium & Beruf Zusammenspiel von Hard- u. Software


von Max M. (cybonit)


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)

: Bearbeitet durch User
von Inkognito (Gast)


Lesenswert?

Trollalarm, Moderatoren bitte löschen.

von Ich (Gast)


Lesenswert?

Inkognito schrieb:
> Trollalarm, Moderatoren bitte löschen.

Sagt der Gast, der sich Inkognito nennt! :)

von Inkognito (Gast)


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.

von Inkognito (Gast)


Lesenswert?

Inkognito schrieb:
> Rein fiktiv:

Kannst du dir keinen eigenen Nick ausdenken, anstatt meinen zu kapern?

von egbert (Gast)


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?

von Michael B. (laberkopp)


Lesenswert?

egbert schrieb:
> Ist Google schon wieder ausgefallen?

Muss man sich wirklich fragen

https://source.android.com/devices/halref/

von Rickpat (Gast)


Lesenswert?


von mh (Gast)


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.

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.