Jak zacząć pisać sterowniki urządzeń? [zamknięte]

Chciałbym nauczyć się pisać sterowniki urządzeń, ponieważ myślę, że byłoby fajnie. Używam Mac OS X Macbook, ale mam też maszynę Ubuntu (działającą na Mac Min). Jestem całkiem zaznajomiony z C i obecnie czytam tę książkę . Znalazłem kilka linków w Internecie, takich jak Mac Dev Center . Robię to, bo byłoby fajnie. Myślę, że byłaby prawdziwa satysfakcja, gdyby sprzęt działał dzięki oprogramowaniu, które napisałem.

Myślę, że chciałbym trochę wskazówki lub porady i wskazówki, a czy ktoś zna listę urządzeń, które nie mają sterowników, czy mogę napisać sterownik dla czegoś, co jest już obsługiwane (wolałbym ten pierwszy, więc faktycznie dostarczam wartość). Jakie jest dobre urządzenie na początek? Gryzę więcej niż mogę przeżuć? Nie boję się niskopoziomowego programowania, montażu czy jakiejkolwiek nakładu pracy. Naprawdę chcę wyzwania!

Author: Bjorn Tipling, 2010-02-08

4 answers

Dla Linuksa, możesz zajrzeć do pobrania O ' Reilly Linux Device Drivers książka lub czytanie pdf online. Moim zdaniem jest to jeden z lepszych tekstów na ten temat.

Innym dobrym źródłem jest podręcznik programowania modułów jądra Linuksa.

Możesz też chcieć kupić książkę specjalnie na jądro Linuksa. W tym celu odebrałem kopię rozwoju jądra Linuksa Roberta Love ' a (2nd Edition) (3rd Wydanie w drodze).

 31
Author: jschmier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-16 04:25:40

Pisanie sterownika urządzenia może być dość proste lub niemal dowolnie skomplikowane. Na przykład, brałem udział w projekcie, w którym sześciu z nas zajęło prawie trzy lata, aby rozwiązać jeden błąd w sterowniku urządzenia. Oczywiście, podczas poszukiwania usunęliśmy dziesiątki innych błędów... kod znacznie się poprawił. Poprawka okazała się być łatką 8-liniową, która kosztowała, zachowawczo, około miliona dolarów.

Ale jako projekt poboczny do tego napisałem sterownik ethernetowy z arkusza danych układu w tydzień i zajęło kolejny tydzień, aby go debugować. Od tamtej pory nie musiałem jej dotykać.

Nie ma sposobu, aby powiedzieć ogólnie, ile pracy będzie sterownik; sterownik GPU może kosztować setki milionów, sterownik dla pojedynczej diody LED kosztuje najwyżej kilka godzin pracy.

 21
Author: Andrew McGregor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-08 22:01:49

Jeśli chcesz przejść do rozwoju sterowników urządzeń Linuksowych, bezpłatna książka O ' Reilly Linux Device Drivers, Third Edition jest obowiązkową lekturą.

Aby znaleźć nieobsługiwane elementy sprzętowe, dla których mógłbyś napisać sterownik, pytaj na Linux mailing lists. Może jakieś urządzenie USB 3.0? ;)

 4
Author: AndiDog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-08 15:58:14

Dla komputerów Mac warto przyjrzeć się książce Mac OS X Internals. Jest przemyślany i ciężki, ale przyjemny w czytaniu. Dotyczy głównie komputerów Mac opartych na PowerPC, ale ma dodatek o komputerach opartych na Intelu. Dla Linuksa spójrz na Linux Device Drivers, 3rd Edition - jest lżejszy (darmowe pliki PDF online:) i jest naprawdę zorientowany na Sterownik urządzenia, może być lepszym początkiem.

 2
Author: Nikolai Fetissov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-08 16:07:53