Co oznacza w oprogramowaniu termin „osadzony”?

9

Chciałem więc pogłębić swoją wiedzę na temat programowania sprzętowego wbudowanego i niższego poziomu, jednak za każdym razem, gdy szukam zadań, które wspominają o „osadzonych” , zawsze są to rzeczy na wysokim poziomie. Dla mnie to nie ma większego sensu.

Co dokładnie oznacza „osadzone”? Kiedy myślę o osadzeniu , myślę o programowaniu mikrokontrolera niższego poziomu i tym podobnych. Jeśli osadzony nie jest do tego właściwym tytułem, to czego powinienem szukać?

durron597
źródło

Odpowiedzi:

4

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.

Pemda
źródło
7

Z Wikipedii / Systemu wbudowanego :

System osadzony to system komputerowy zaprojektowany do wykonywania jednej lub kilku dedykowanych funkcji, często z ograniczeniami obliczeniowymi w czasie rzeczywistym.

Krótko mówiąc, termin ten może odnosić się do dowolnego systemu, który nie jest komputerem ogólnego zastosowania. Może to obejmować proste mikrokontrolery, sprzęt sieciowy i nowoczesne konsole do gier.

Jeśli uważasz, że „rzeczy wysokiego poziomu” oznaczają, że „używa języka programowania wysokiego poziomu” lub nawet „jest dużym projektem obiektowym”, to oczywiście zawsze jest możliwe, że możesz mieć oprogramowanie bardzo wysokiego poziomu w systemie wbudowanym .

Zasadniczo, określając, że twoje oprogramowanie będzie działało na systemie „Embedded”, masz na myśli, że w jakiś sposób twoje oprogramowanie będzie połączone z systemem osadzonym - i być może nie będzie wysoce przenośne.

To bardzo szeroki termin. Niektóre rzeczy, których nie spodziewałbym się usłyszeć pod nazwą „Embedded”, to oprogramowanie komputerowe, aplikacje internetowe i oprogramowanie serwera w ogóle. Nie ma jednak żadnej gwarancji, że oprogramowanie wbudowane wyklucza wszelkiego rodzaju programowanie lub projektowanie na wysokim poziomie.

ProdigySim
źródło
Dodatkowo mogę zauważyć, że celem określenia, czy twoje oprogramowanie jest osadzone, jest oznaczenie, że będziesz mieć mniej bibliotek i istniejących rozwiązań dostępnych do zbudowania twojego rozwiązania.
ProdigySim
+1. Typowymi przykładami systemów wbudowanych są komputery w bankomatach lub bankomatach. Nawet jeśli działają one z gotowych systemów operacyjnych, takich jak Windows lub Linux.
nikie,
1

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