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 drivers
znacznik 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 firmware
tag 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 firmware
został zainstalowany bezpośrednio na chipie lub płycie i tam mieszkałem, dlatego należy go „sflashować”, podczas gdy należy zainstalować driver
system operacyjny.
Wniosek:
Firmware
pozwala sprzętowi na „robienie” rzeczy i drivers
pozwala oprogramowaniu na interakcję ze sprzętem.