Zdefiniuj, co rozumiesz przez rzeczy na wyższym poziomie. Pisanie sterowników i wszelkiego rodzaju oprogramowania komunikującego się ze sprzętem jest prawdopodobnie tym, o czym myśli większość ludzi, gdy wspomina się o oprogramowaniu wbudowanym. Chociaż jest to jego część, to tylko niewielka część. Po skonfigurowaniu tej aplikacji jest jeszcze cała aplikacja do pisania, która prawdopodobnie nigdy nie komunikuje się bezpośrednio ze sprzętem, a co więcej, w większości przypadków jest to większość wysiłków programistycznych. Na pewnym poziomie może to być porównywalne z programowaniem „wyższego” poziomu. Jednak w świecie osadzonym prawdopodobnie pracujesz pod pewnymi ograniczeniami, szczególnie jeśli chodzi o moc obliczeniową i pamięć. Oto lista rzeczy, o których myślę na co dzień, które w większości przypadków prawdopodobnie mają mniejsze znaczenie w rozwoju wyższego poziomu.
- Współbieżność wątków (zarówno ochrona, jak i czas)
- Alokacja i zwalnianie pamięci oraz wykorzystanie
- Zarządzanie stertami (unikanie fragmentacji)
- Dotrzymywanie terminów w czasie rzeczywistym
- Priorytetyzacja wątków
- Wydajność I / 0
- Przelewy DMA
- Rozmiary stosu
- Wydajność biblioteki
- Funkcje językowe (wyjątki rozszerzają kod)
Ponadto platformy wbudowane są zwykle wysoce wyspecjalizowane, aby osiągnąć jeden konkretny cel, w przeciwieństwie do komputera PC, który został zaprojektowany jako platforma do ogólnych obliczeń heterogeniczności. Oznacza to, że prawdopodobnie masz dużo niestandardowego kodu, który może, ale nie musi być przenośny.
Podejrzewam, że szukasz pracy, w której „osadzony” oznacza „komputer w pudełku”, zazwyczaj taki, który wykonuje jedno określone zadanie. Całkiem prawdopodobne, że działa większość dystrybucji Linuksa lub systemu operacyjnego Microsoft, ale będzie ona dość ukończona i będziesz mógł używać standardowych IDE GUI i tak dalej. Wbudowana część naprawdę pojawia się, gdy urządzenie jest dostarczane jako wielokanałowy rejestrator wideo, urządzenie do strumieniowego przesyłania multimediów lub alarm antywłamaniowy.
Obecnie w urządzeniu o mocy 1 W można dużo przetwarzać, więc odpowiednio wzrosła definicja osadzania. Ale nawet 20 lat temu mieliśmy wbudowane zasilane bateryjnie urządzenia z dość standardowym systemem DOS i budowaliśmy dla nich programy przy użyciu IDE dnia (skanery kodów kreskowych Symbol miały biblioteki na przykład dla C i Pascal, więc użyliśmy Turbo Pascal na Win3.1 do budowanie plików wykonywalnych). Ale wysłaliśmy również „komputery przemysłowe”, które uruchomiły DOS, a następnie nasze oprogramowanie, a dane wejściowe były ograniczone do kilku dużych wodoodpornych przycisków zamontowanych na pudełku ze stali nierdzewnej. 15-calowy wyświetlacz LCD za szkłem w tym pudełku oznaczał, że mieliśmy wiele opcji wyjścia, ale podłączenie klawiatury oznaczało otwarcie pudełka (w fabryce żywności). Można je uznać za osadzone z pewnych perspektyw. W większości przypadków użytkownik miał niewiele opcji odzyskiwania po błędzie - włącz i wyłącz to.
źródło