Definieren Sie, was Sie unter höherstufigen Dingen verstehen. Das Schreiben von Treibern und jeder anderen Art von Software, die mit Hardware kommuniziert, ist wahrscheinlich das, woran die meisten Leute denken, wenn Sie eingebettete Software erwähnen. Während das ein Teil davon ist, ist das nur ein kleiner Teil. Sobald Sie alle Einstellungen vorgenommen haben, müssen Sie immer noch die gesamte Anwendung schreiben, die wahrscheinlich nie direkt mit der Hardware kommuniziert. In den meisten Fällen ist dies der größte Teil des Entwicklungsaufwands. Dies kann auf einer bestimmten Ebene mit einer Programmierung auf "höherer" Ebene vergleichbar sein. In der eingebetteten Welt arbeiten Sie jedoch wahrscheinlich unter einigen Einschränkungen, insbesondere in Bezug auf Rechenleistung und Speicher. Hier ist eine Liste von Dingen, über die ich täglich nachdenke und die in den meisten Fällen für die Entwicklung auf höherer Ebene wahrscheinlich weniger wichtig sind.
- Thread-Parallelität (sowohl Schutz als auch Timing)
- Speicherzuweisung sowie Freigabe und Verwendung
- Heap-Management (Vermeidung von Fragmentierung)
- Einhaltung von Echtzeitfristen
- Thread-Priorisierung
- I / 0-Leistung
- DMA-Übertragungen
- Stapelgrößen
- Bibliotheksleistung
- Sprachfunktionen (Ausnahmen blähen Ihren Code auf)
Außerdem sind eingebettete Plattformen in der Regel hochspezialisiert, um ein bestimmtes Ziel zu erreichen, im Gegensatz zu einem PC, der als Plattform für das allgemeine Heterogenitäts-Computing konzipiert ist. Dies bedeutet, dass Sie wahrscheinlich viel benutzerdefinierten Code haben, der möglicherweise portabel ist oder nicht.
Ich vermute, Sie suchen nach Jobs, bei denen "eingebettet" "Computer in einer Box" bedeutet, im Allgemeinen einer, der eine bestimmte Aufgabe erledigt. Es ist sehr wahrscheinlich, dass die meisten Linux-Distributionen oder Microsoft-Betriebssysteme ausgeführt werden, aber es ist ziemlich vollständig und Sie können Standard-GUI-IDEs usw. verwenden. Der eingebettete Teil kommt wirklich, wenn das Gerät als Mehrkanal-Videorecorder, Medien-Streaming-Gerät oder Einbruchalarm ausgeliefert wird.
Heutzutage können Sie viel in einem 1-W-Gerät verarbeiten, sodass die Definition von Embedded entsprechend gewachsen ist. Aber noch vor 20 Jahren hatten wir batteriebetriebene Embedded-Geräte mit ziemlich normalem DOS und erstellten Programme für sie unter Verwendung der IDE des Tages (Symbol-Barcode-Scanner hatten beispielsweise Bibliotheken für C und Pascal, also verwendeten wir Turbo Pascal unter Win3.1 die ausführbaren Dateien erstellen). Wir haben aber auch "Industrie-PCs" ausgeliefert, auf denen DOS und dann unsere Software gestartet wurden, und die Eingabe war auf einige große wasserdichte Tasten beschränkt, die auf einer Edelstahlbox montiert waren. Das 15-Zoll-LCD hinter Glas in dieser Box bedeutete, dass wir viele Ausgabeoptionen hatten, aber das Anbringen einer Tastatur bedeutete das Öffnen der Box (in einer Lebensmittelfabrik). Diese können aus bestimmten Perspektiven als eingebettet betrachtet werden. Meistens hatte der Benutzer nur wenige Optionen zur Fehlerbehebung - aus- und wieder einschalten oder nicht.
quelle