Tworzenie sterowników dla FreeBSD. Michał Hajduk mih@semihalf.com

Podobne dokumenty
Wbudowane układy komunikacyjne cz. 1 Wykład 10

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Współpraca procesora z urządzeniami peryferyjnymi

Działanie systemu operacyjnego

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

Działanie systemu operacyjnego

Systemy wbudowane - wykład 7

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Architektura komputerów. Układy wejścia-wyjścia komputera

Systemy operacyjne system przerwań

2. Architektura mikrokontrolerów PIC16F8x... 13

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Komunikacja z urzadzeniami zewnętrznymi

Programowanie Mikrokontrolerów. Magistrala I2C (Inter-Integrated Circuit).

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Działanie systemu operacyjnego

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura komputerów

Działanie systemu operacyjnego

OSGi Agata Hejmej

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

Komputery przemysłowe i systemy wbudowane

Wprowadzenie do systemów operacyjnych

Charakterystyka mikrokontrolerów

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

FreeBSD w systemach wbudowanych. Rafał Jaworowski raj@semihalf.com, raj@freebsd.org

Struktury systemów operacyjnych

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

Szkolenia specjalistyczne

Prezentacja systemu RTLinux

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

1.2. Architektura rdzenia ARM Cortex-M3...16

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Systemy wbudowane Mikrokontrolery

WPROWADZENIE Mikrosterownik mikrokontrolery

Wykład 3: Implementacja programów wbudowanych

Architektura systemu komputerowego

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Instytut Teleinformatyki

Chipset i magistrala Chipset Mostek północny (ang. Northbridge) Mostek południowy (ang. Southbridge) -

Kurs Zaawansowany S7. Spis treści. Dzień 1

Zastosowania mikrokontrolerów w przemyśle

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

NX700 PLC

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym lokalne interfejsy szeregowe

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Warstwy oprogramowania wejścia/wyjścia

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Futex (Fast Userspace Mutex) Łukasz Białek

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Zarządzanie pamięcią operacyjną

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Projekt TrustedBSD jako klucz do bezpieczeństwa systemu FreeBSD

Magistrala LIN

Q E M U.

Podstawowa konfiguracja routerów. Interfejsy sieciowe routerów. Sprawdzanie komunikacji w sieci. Podstawy routingu statycznego

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

FreeBSD do zabudowy. Czyli nie tylko pecety. Rafał Jaworowski meetbsd 2007, Warszawa

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Pamięci EEPROM w systemach mikroprocesorowych, część 2

Wykład 2. Struktury systemów komputerowych. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

NX70 PLC

Współpraca procesora z urządzeniami peryferyjnymi

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Błąd pamięci karty graficznej lub Uszkodzona lub źle podpięta karta graficzna

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Rozdział 2. Programowanie Arduino i kodowanie społecznościowe (29)

Moduł konwertera RS-232/LON

Kurs Certyfikowany Inżynier Sieci PROFIBUS DP. Spis treści. Dzień 1

Mikrokontrolery w systemach pomiarowo sterujących

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Architektura systemu komputerowego

Architektura Komputerów

Programowanie mikrokontrolerów

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Systemy operacyjne II

Systemy operacyjne III

Wykład 2. Mikrokontrolery z rdzeniami ARM

Transkrypt:

Tworzenie sterowników dla FreeBSD Michał Hajduk mih@semihalf.com AGH, Kraków 23.04.2009

Szkic prezentacji Wstęp, defnicje Architektura urządzeń RTC, I2C, DMA Wprowadzenie do tworzenia sterowników Newbus, autokonfguracja Struktura Przykłady implementacji sterowników RTC, I2C Połączenie ze światem użytkownika, pomocne narzędzia Podsumowanie Pytania, komentarze?

Architektura urządzeń Defnicje RTC Zegar czas rzeczywistego I2C (Philips) Inter IC (Integrated Circuits) Bus DMA Bezpośredni dostęp do pamięci

Magistrala I2C Dwie linie: SDA - Serial Data Line SCL Serial Clock Line Tryb pracy Master / Slave Magistrala szeregowa, dwukierunkowa Transmisja 8 bitowa Adresowanie 7 lub 10 bitowe STOP / START/ REPEATED START 3 prędkości (100 kbps, 400 kbps, 3.4 Mbps) Wykorzystanie (EEPROM, SPD, A/D)

Magistrala I2C c.d. Format ramki START / STOP http://www.standardics.nxp.com/support/documents/i2c/pdf/i2c.bus.specification.pdf

Magistrala I2C c.d. Transmisja danych http://www.standardics.nxp.com/support/documents/i2c/pdf/i2c.bus.specification.pdf

Wybrane interfejsy jądra bus_space(9) Abstrakcja dostępu do magistrali lokalnej CPU Porządek bajtów, szerokość słów, przestrzeń adresowa bus_dma(9) rman(9) Abstrakcja operacji Direct Memory Access Synchronizacja (cache, DMA bez wsparcia dla koherencji) Warstwa zarządzania abstrakcyjnymi zasobami

Newbus Dwa główne interfejsy Device probe, attach, detach shutdown, resume, suspend Bus Mechanizm zorientowany obiektowo Wykorzystanie bus_space bus_space_read bus_space_write mbus root nexus i2c mge rtc

Newbus c.d. Główne zalety Pseudo szyny (pseudo-busses) Modularność Dynamiczne przyłączanie Forma drzewa (łatwość obserwacji zależności) Odzielenie części zależnej i niezależnej od sprzętu Interfejs łatwy w użyciu

Pliki typu.m Interfejs magistrali Rezerwacja zasobów bus_alloc_resource bus_release_resource Przydzielanie przerwań Inne bus_setup_intr bus_teardown_intr bus_generic_attach bus_add_child Interfejs zdefiniowany w pliku typu.m

Struktura sterownika device_method_t cdevsw * probe attach detach shutdown... open close read write ioctl Struktura: device_method_t DEVMETHOD(9) probe attach detach device_t devclass_t softc DRIVER_MODULE(9)... * opcjonalnie

Struktura sterownika c.d. make_dev destroy_dev nazwa sterownika nazwa magistrali (rodzic)

Struktura sterownika c.d. Deklarowanie zasobów Sterownik Pliki platformowe W naszym przypadku: sys/arm/mv/kirkwood/kirkwood.c

Przykładowe implementacje Funckja settime dla sterownika rtc

Przykładowe implementacje c.d. Alokacja zasobó w Dodanie potomka Przyłączenie potomka (wywołanie probe i attach)

CDEVSW Interesuje nas funkcja write Przypomnienie deklaracji

CDEVSW c.d.

Testy i porady Blokady w sterownikach Rozwiązywanie problemów KDB/DDB Panic Weryfkacja poprawności kodu Rozwój aplikacji wspomagających testy Pliki źródłowe wykorzystane w prezentacji sys/arm/mv/rtc.c sys/arm/mv/twsi.c sys/dev/iicbus/

Kompilacja Dynamiczna forma modułu jądra KLD (dynamic kernel linker) kldload, kldunload dodatkowy Makefle Statyczna forma modułu jądra Podpięcie sterownika do systemu budowania. KERNCONF np. sys/arm/mv/kirkwood/fles.db88f6xxx wpis standard / optional np. sys/arm/conf/db-88f6xxx device name_optional

Połączenie ze światem użytkownika (userspace) Implementacja ioctl Wołanie systemowe Funkcje biblioteczne a wołania systemowe Implementacja wołania systemowego Przerwanie software'owe User Space Proce s Kernel Space System Call

Pomocne narzędzia (userspace) i2c(8) (FreeBSD 8 - current ) usr.sbin/i2c/ ioctl

Pomocne narzędzia (userspace) i2c(8) - ostrzeżenie!

Pomocne narzędzia (userspace) truss(1) watchdog(8) pciconf(8) devinfo(8)

Podsumowanie Kernel Mode / User Mode Obiektowość Newbus Struktura sterownika man(1) Wygodny system budowania Wsparcie dla developerów Dlaczego warto! style(9)

Bibliografa, podziękowania Embedded FreeBSD Cookbook (Paul Cevoli, Newnes 2002, ISBN-13: 978-1589950047) The FreeBSD Project FreeBSD Books http://www.freebsd.org/doc/en/books/handbook/ http://www.freebsd.org/doc/en/books/arch-handbook/ http://www.freebsd.org/doc/en/books/developers-handbook/ Zespół programistów Semihalf

Dziękuję za uwagę! Pytania, komentarze?

Tworzenie sterowników dla FreeBSD Michał Hajduk mih@semihalf.com AGH, Kraków 23.04.2009