Programowanie Systemów Czasu Rzeczywistego Plik
Transkrypt
Programowanie Systemów Czasu Rzeczywistego Plik
(pieczęć wydziału) KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PROGRAMOWANIE SYSTEMÓW 2. Kod przedmiotu: CZASU RZECZYWISTEGO 3. Karta przedmiotu ważna od roku akademickiego: 2012/2013 4. Forma kształcenia: studia drugiego stopnia 5. Forma studiów: studia stacjonarne 6. Kierunek studiów: AUTOMATYKA I ROBOTYKA; WYDZIAŁ AEiI 7. Profil studiów: ogólnoakademicki 8. Specjalność: ROBOTYKA 9. Semestr: 2 10. Jednostka prowadząca przedmiot: Instytut Automatyki, RAu1 11. Prowadzący przedmiot: dr inż. Aleksander Staszulonek 12. Przynależność do grupy przedmiotów: przedmioty specjalizacyjne 13. Status przedmiotu: obowiązkowy 14. Język prowadzenia zajęć: polski 15. Przedmioty wprowadzające oraz wymagania wstępne: Programowanie w jezyku asemblera, programowanie w języku C++, Programowanie obiektowe, Systemy mikroprocesorowe, Podstawy automatyki, Systemy operacyjne, znajomość trybów adresacji, umiejętność programowania systemów mikrokomputerowych na poziomie dostępu do rejestrów, znajomość zaawansowanych technik programowania przy użyciu wskaźników i struktur, umiejętność programowania wielozadaniowego i wielowątkowego. 16. Cel przedmiotu: Celem przedmiotu jest przedstawienie studentom zasad projektowania oprogramowania systemów mikrokomputerowych przeznaczonych do zastosowań w systemach automatyki czasu rzeczywistego. W czasie wykładu kolejno prezentowane są zagadnienia programowania elementów i systemów funkcjonalnych systemów mikrokomputerowych. Omawiane są wybrane elementy systemów operacyjnych czasu rzeczywistego oraz metody tworzenia oprogramowania przy użyciu tych systemów. Wraz z omawianymi elementami programowania prezentowane są przykłady ich rzeczywistych zastosowań 17. Efekty kształcenia: Nr W1 W2 W3 W4 U1 U2 U3 Opis efektu kształcenia Zna budowę i cechy charakterystyczne systemów operacyjnych czasu rzeczywistego. Zna zasady tworzenia sterowników elementów systemów mikrokomputerowych. Ma wiedzę o funkcjach zarządzania czasem w systemach czasu rzeczywistego. Zna elementy zaawansowanego programowania systemów wbudowanych w języku C – operacje na rejestrach, inicjalizacja urządzeń, wskaźniki, struktury, unie. Potrafi programowanć procedury obsugi przerwań w systemach czasu rzeczywistego oraz dynamicznie podmieniać procedury obsugi przerwań. Posiada umiejętności programowania obsługi wejść i wyjść analogowych w systemach czasu rzeczywistego. Potrafi oprogramować podstawowe elementy systemowe jak bootloader, programator pamięci flash. Metoda sprawdzenia efektu kształcenia Forma Odniesienie prowadzenia do efektów zajęć dla kierunku studiów SP WM, L K_W7/3 SP WM, L SP WM, L K_W9/3; W18/3 K_W7/3 SP WM, L K_W3/3 CL, OP/OS, WM, L K_U23/3; U10/1 CL, OP/OS, WM, L K_U23/3 CL, OP/OS, WM, L K_U23/3 K1 K2 Potrafi samodzielnie podejmować decyzje dotyczące wyboru najlepszych rozwiązań oprogramowania systemów komputerowych w automatyce przemysłowej i telekomunikacji Potrafi zaprezentować i obronić zaproponowane rozwiązanie konstrukcyjne. OP/OS WM, L K_K1/1; K2/1; K4/2; K6/1 OP/OS WM, L K_K1/1; K5/1; K6/1 K7/1 18. Formy zajęć dydaktycznych i ich wymiar (liczba godzin) W. : 15 Ćw. : 0 L.: 30 19. Treści kształcenia: Wykład 1. Definicja i podstawy systemów czasu rzeczywistego – wprowadzenie, zastosowania. 2. Elementy języka C oraz języka C++ przydatne w programowaniu systemów czasu rzeczywistego, podstawy programowania obiektowego RTS. 3. Elementy zaawansowanego programowania systemów wbudowanych w języku C – operacje na rejestrach, inicjalizacja urządzeń, wskaźniki, struktury, unie. 4. Definiowanie struktury procesora dla systemu czasu rzeczywistego,podstawowe funkcje systemu operacyjnego czasu rzeczywistego, zasoby, zadania, wielozadaniowość, zarządzanie zadaniami przełączanie kontekstu. 5. kolejkowanie, priorytetyzacja, kernel, komunikacja międzyzadaniowa, komunikaty i kolejki komunikatów, sygnalizacja zdarzeń 6. programowanie procedur obsugi przerwań w systemach czasu rzeczywistego, dynamiczna podmiana procedur obsugi przerwań, metody i przykłady. 7. Procedury wejścia-wyjścia, bufory cykliczne. 8. Zegar czasu rzeczywistego – funkcje i przykłady programowania, 9. Funkcje zarządzania czasem w systemach czasu rzeczywistego. 10. Programowanie interfejsów klawiatury: algorytmy skanowania, podstawowe funkcje interfejsu, programowa stabilizacja przycisków, przykadowe procedury 11. Programowanie obsługi wyświetlaczy LCD: inicjalizacja, przykłady podstawowych funkcji obsugi. 12. Programowanie obsługi wejść i wyjść dwustanowych – zasady i przykłady 13. Programowanie obsługi wejść i wyjść analogowych w systemach czasu rzeczywistego: podstawowe problemy, metody obsugi, próbkowanie bezstratne, przykłady funkcji systemowych. 14. Programowanie obsługi urządzeń do transmisji szeregowej – zasady i przykłady 15. Inicjalizacja systemów czasu rzeczywistego, funkcje i procedury, przyład bootloader’a. 16. Przemysłowe protokoły transmisji danych i ogólne aspekty projektowania oprogramowania systemów czasu rzeczywistego. Zajęcia laboratoryjne I. Wprowadzenie II. Wykorzystanie wskaźników i złożonych struktur danych w języku C III. Zasady programowania sterowników urządzeń IV. Programowanie obsługi przerwań V. Funkcje zegara czasu rzeczywistego –część I VI. Funkcje zegara czasu rzeczywistego –część II VII. Skanowanie klawiatury VIII. Inicjalizacja znakowego wyświetlacza LCD IX. Funkcje sterujące wyświetlaniem znaków alfanumerycznych X. Programowanie obsługi urządzeń do transmisji szeregowej - część I XI. Programowanie obsługi urządzeń do transmisji szeregowej - część II XII. Odczyt wejść analogowych – funkcje przekształcania odczytu XIII. Programowanie cyklicznych buforów wejściowych i wyjściowych XIV. Programowanie podstawowych funkcji jądra systemowego XV. Programowanie bootloader’a –część I XVI. Programowanie bootloader’a –część II 20. Egzamin: nie 21. Literatura podstawowa: 1. Jean J. Labrosse: MicroC/OS-II The Real Time Kernel, CMP Books, Lowrence, Kansas 2. Jean J. Labrosse: Embedded Systems Building Blocks, Second Edition, CMP Books, Lowrence, Kansas 22. Literatura uzupełniająca: 1. Brian W. Kernigham, Denis M. Ritchie – Język ANSI C, WNT Warszawa wyd. IX, ISBN 83204-2979-X 23. Nakład pracy studenta potrzebny do osiągnięcia efektów kształcenia Lp. Forma zajęć 1 Wykład 2 Ćwiczenia 3 Laboratorium 4 Projekt 0/0 5 Seminarium 0/0 6 Inne 2/3 Suma godzin Liczba godzin kontaktowych / pracy studenta 15/0 0/0 30/15 45/15 24. Suma wszystkich godzin: 60 25. Liczba punktów ECTS: 2 26. Liczba punktów ECTS uzyskanych na zajęciach z bezpośrednim udziałem nauczyciela akademickiego: 1 27. Liczba punktów ECTS uzyskanych na zajęciach o charakterze praktycznym (laboratoria, projekty): 1 26. Uwagi: Zatwierdzono: ……………………………. ………………………………………………… (data i podpis prowadzącego) (data i podpis dyrektora instytutu/kierownika katedry/ Dyrektora Kolegium Języków Obcych/kierownika lub dyrektora jednostki międzywydziałowej)