Odpowiedzi:
Oprogramowanie układowe to oprogramowanie działające na urządzeniu. Sterownik to oprogramowanie, które informuje system operacyjny, jak komunikować się z urządzeniem. Nie wszystkie urządzenia mają oprogramowanie wewnętrzne - tylko urządzenia o pewnym poziomie inteligencji.
Nie jestem do końca pewien, co masz na myśli ... mówiąc ogólnie, oprogramowanie układowe nie ma nic wspólnego z „uruchamianiem”… Myślę, że może chodzi o to, czy urządzenia z oprogramowaniem zawsze mają zainstalowane oprogramowanie układowe na urządzeniu, czy jest ładowany po czasie uruchamiania. Jeśli o to pytasz, odpowiedź brzmi nie ...
Najczęściej urządzenia z oprogramowaniem układowym mają oprogramowanie zaprogramowane w urządzeniu (z układem ROM lub programowalnym układem ROM), ale istnieją urządzenia, w których oprogramowanie układowe jest ładowane do urządzenia w czasie inicjalizacji. Mogę wymyślić niektóre karty sieciowe i kamery internetowe, które działają w ten sposób, ale jestem pewien, że są też inne.
only devices with some level of intelligence have firmware? Powiedziałbym, że jest na odwrót, proste (elektroniczne) urządzenia mogą nie mieć systemów operacyjnych, ale mają oprogramowanie wewnętrzne.
Oprogramowanie wewnętrzne implementuje szczegóły niskiego poziomu, które są wymagane do obsługi sprzętu, i zapewnia interfejs API / ABI na wyższy poziom. Sterownik urządzenia zapewnia adapter między systemem operacyjnym a interfejsem API / ABI ujawnionym przez oprogramowanie układowe.
Współczesna definicja lub powszechne użycie oprogramowania układowego nie ma nic wspólnego z konkretną funkcjonalnością oprogramowania. Oprogramowanie układowe to po prostu oprogramowanie przechowywane w nieulotnej pamięci półprzewodnikowej (np. PROM, EEPROM lub flash), a nie w urządzeniu pamięci masowej, takim jak dysk twardy. Przechowywane oprogramowanie może być monolitycznym połączonym plikiem binarnym lub składać się z modułu ładującego, jądra i modułów aplikacji. (OTOH Widziałem niektóre karty tunerów TV dla komputerów PC, które wymagają załadowania „oprogramowania układowego” przez jądro Linuksa w celu zakończenia inicjalizacji.)
Początek tego terminu ma związek z logiką sterowaną przez procesor w porównaniu z logiką przewodową. Oprogramowanie przechowywane na dyskach twardych można łatwo modyfikować i aktualizować. Poprawki i aktualizacje logiki przewodowej wymagały przeprojektowania płyty lub modułu i wymiany. Środkiem ziemi był procesor wykonujący oprogramowanie do sterowania sprzętem. Program został nazwany firma ware odzwierciedla kompromis pomiędzy miękkim ware kontra twardego przewodowej logiki. Pierwotnie oprogramowanie było przechowywane w pamięci ROM, PROM lub EPROM w celu zachowania modułowości płyty. Postępy w EEPROM i układach flash pozwoliły na aktualizację oprogramowania układowego w obwodzie i na pokładzie.
Ponieważ procesory (i urządzenia peryferyjne) stawały się coraz mniejsze, tańsze i wymagały mniej energii, rozszerzono możliwości osadzania ich w każdym urządzeniu / urządzeniu. Aby oprogramowanie do obsługi tych urządzeń było solidne i bezpieczne, oprogramowanie jest przechowywane w układach pamięci flash, a nie na dysku twardym; dzięki temu urządzenie jest mniejsze i znacznie tańsze. Termin oprogramowanie wewnętrzne został rozszerzony, aby objąć całe oprogramowanie urządzeń / urządzeń z wbudowanymi procesorami, nawet jeśli niektóre części przechowywanego kodu nie mogą mieć związku z zastąpieniem logiki przewodowej.
Ktoś ostatnio opublikował to pytanie , mówiąc:
Oprogramowanie układowe to połączenie trwałej pamięci, kodu programu i przechowywanych w nim danych. Typowymi przykładami urządzeń zawierających oprogramowanie wewnętrzne są systemy wbudowane, takie jak sygnalizacja świetlna, urządzenia konsumenckie, zegarki cyfrowe, komputery, urządzenia peryferyjne, telefony komórkowe i aparaty cyfrowe. Oprogramowanie układowe zawarte w tych urządzeniach zapewnia program sterujący dla urządzenia.
W rzeczywistości driversznacznik SuperUser jest zdefiniowany:
Sterownik, zwany także sterownikiem urządzenia lub sterownikiem oprogramowania, to oprogramowanie, które umożliwia programom komputerowym wyższego poziomu interakcję z urządzeniem sprzętowym. Gdy program komputerowy zażąda interakcji z określonym urządzeniem sprzętowym, sterownik zajmie się tłumaczeniem instrukcji i danych wyjściowych między urządzeniem a programem komputerowym wywołującym sterownik.
i firmwaretag jest zdefiniowany:
Zasadniczo różnica między oprogramowaniem a oprogramowaniem układowym polega na poziomie interakcji ze sprzętem. Oprogramowanie układowe działa na bardzo niskim poziomie sprzętu, a oprogramowanie na wysokim poziomie. Oprogramowanie układowe ogólnie kontroluje podstawowe czasy, elementy sterujące i funkcje sprzętu.
Początkowo myślałem, że firmwarezostał zainstalowany bezpośrednio na chipie lub płycie i tam mieszkałem, dlatego należy go „sflashować”, podczas gdy należy zainstalować driversystem operacyjny.
Wniosek:
Firmwarepozwala sprzętowi na „robienie” rzeczy i driverspozwala oprogramowaniu na interakcję ze sprzętem.