Jako początkujący programista pracowałem tylko z programowaniem aplikacji komputerowych, ale od czasu, gdy zacząłem programować, bardzo często przychodzi mi do głowy pytanie i nie mogę uzyskać prawidłowej odpowiedzi.
Maszyny nie działają same z siebie, to jest praca programisty, mówi mu, co i kiedy robić, ale moja ciekawość tkwi w komputerach. Wezmę przykłady oprogramowania ATM w tym poście, ale pamiętaj, że istnieje wiele innych, takich jak wyświetlacz pralki lub telewizor, telefon komórkowy, nazwij to.
Jak dokładnie zbudowane jest oprogramowanie dla tego rodzaju maszyn? Wyobrażam sobie, że nie może być identyczny z programowaniem komputerowym. Jakiego języka używają, aby takie rzeczy działały i jak można wykonać pracę? Czy są programiści specjalizujący się w tego rodzaju programowaniu? Jak wygląda proces ożywiania tych maszyn?
źródło
Odpowiedzi:
Jest znany jako Embedded Systems lub Embedded Software Development. Poleciłbym tę książkę jeśli chcesz dowiedzieć się więcej na temat ogólnego procesu, nie przechodząc zbytnio do żadnej architektury. Daje ci nawet system operacyjny w czasie rzeczywistym do zabawy.
Programowanie wbudowane jest bardzo zależne od architektury. Zazwyczaj pracujesz z poważną reakcją, rozmiarem programu, odzyskiwaniem błędów i ograniczeniami kosztów. Na przykład możesz mieć Z80 (8-bitowy procesor, są wszędzie) i być może kilka kilobajtów pamięci do zabawy. Możesz mieć tylko pamięć ROM, aby powiedzieć systemowi, co robić i jak skonfigurować program. Może to również być tylko kilka kilobajtów. Dlaczego tak mało pamięci? Cóż, jeśli wyprodukujesz 15 milionów małych przyssawek; każdy grosz staje się 150 000 $.
Sugerowałbym majstrowanie przy czymś takim jak Arduino lub Scribbler Robots, jeśli chcesz dowiedzieć się więcej. Jeśli chodzi o języki, C, C ++ i asembler są typowym zestawem, chociaż Java może być używana (i tak naprawdę została pierwotnie zaprojektowana dla tej domeny, jeśli potrafisz znieść tę myśl). Inne zdecydowanie mogłyby być również użyte, o których wiem Wdrażane są zarówno Lisp, jak i ML.
Dowiedz się jak najwięcej o architekturze, ponieważ, jak powiedziałem, przydział pamięci i operacje bitowe stają się naprawdę ważne.
źródło
Jest tu zdecydowanie osadzony kąt. Ale obecnie widzisz coraz bardziej zaawansowane platformy na tak zwanych urządzeniach wbudowanych. Na przykład telewizory LG i Samsung mają teraz interfejsy API i sklepy z aplikacjami. Telewizory Sony będą miały system Android.
źródło
Widziałem dwa bankomaty otwarte w Denver w Kolorado. Oba były (wówczas) bankomatami Compass Bank i oba były Windows XP w zahartowanej obudowie. Zapytałem technika, co konkretnie jeden z nich prowadził, a on powiedział coś w stylu „XP Embedded”.
Założę się, że programowanie ATM jest mniej podobne do programowania wbudowanego, a bardziej do standardowego programowania systemu Windows.
źródło
Urządzenia tego typu są programowane za pomocą programowania wbudowanego . Jest to programowanie na bardzo niskim poziomie, które w znacznym stopniu zajmuje się logiką i bramkami.
Jeśli jesteś zainteresowany nauczeniem się programowania wbudowanego, polecam zajrzeć do arduino .
źródło