Nazwa modułu: Programowanie mikrokontroleroẃ i mikroprocesoroẃ Rok akademicki: 2017/2018 Kod: EIT-1-408-s Punkty ECTS: 4 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Informatyka Specjalność: - Poziom studiów: Studia I stopnia Forma i tryb studiów: - Język wykładowy: Polski Profil kształcenia: Ogólnoakademicki (A) Semestr: 4 Strona www: Osoba odpowiedzialna: Bubliński Zbigniew (buba@agh.edu.pl) Osoby prowadzące: Bubliński Zbigniew (buba@agh.edu.pl) Opis efektów kształcenia dla modułu zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń) Wiedza M_W001 Zna języki programowania wykorzystywane przy tworzeniu systemów wbudowanych IT1A_W03 M_W002 Zna zagadnienia związane z językami maszynowymi (asemblerami) wykorzystywanymi przy programowaniu współczesnych mikroprocesorów w różnych zastosowaniach IT1A_W03 M_W003 Zna zagadnienia związane z integracją mikrokontrolerów z urządzeniami zewnętrznymi w celu sterowania nimi lub pobierania od nich danych IT1A_W17, IT1A_W19 M_W004 Zna podstawy budowy i teoretyczne zasady funkcjonowania mikrokontrolerów oraz mikroprocesorów IT1A_W17 Umiejętności M_U001 Potrafi tworzyć oprogramowanie dla systemów wbudowanych zarówno w językach niskiego jak i wysokiego poziomu IT1A_U03, IT1A_U08, IT1A_U17 1 / 5
M_U002 Potrafi posługiwać się środowiskami wytwarzania oprogramowania dla mikrokontrolerów, symulatorami systemów wbudowanych, środowiskami służącymi do programowania mikrokontrolerów oraz oprogramowaniem do wytwarzania kodu maszynowego IT1A_U12, IT1A_U17, IT1A_U21 M_U003 Potrafi stosować języki asemblera w oprogramowaniu dla systemu Linux w wersji 32- oraz 64-bitowej IT1A_U08 M_U004 Potrafi tworzyć oraz analizować dokumentację urządzeń i układów związanych z techniką cyfrową i mikroprocesorową IT1A_U21, IT1A_U24 Matryca efektów kształcenia w odniesieniu do form zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć Wykład audytoryjne laboratoryjne projektowe Konwersatori um seminaryjne praktyczne terenowe warsztatowe Inne E-learning Wiedza M_W001 M_W002 M_W003 M_W004 Umiejętności M_U001 Zna języki programowania wykorzystywane przy tworzeniu systemów wbudowanych Zna zagadnienia związane z językami maszynowymi (asemblerami) wykorzystywanymi przy programowaniu współczesnych mikroprocesorów w różnych zastosowaniach Zna zagadnienia związane z integracją mikrokontrolerów z urządzeniami zewnętrznymi w celu sterowania nimi lub pobierania od nich danych Zna podstawy budowy i teoretyczne zasady funkcjonowania mikrokontrolerów oraz mikroprocesorów Potrafi tworzyć oprogramowanie dla systemów wbudowanych zarówno w językach niskiego jak i wysokiego poziomu 2 / 5
M_U002 M_U003 M_U004 Potrafi posługiwać się środowiskami wytwarzania oprogramowania dla mikrokontrolerów, symulatorami systemów wbudowanych, środowiskami służącymi do programowania mikrokontrolerów oraz oprogramowaniem do wytwarzania kodu maszynowego Potrafi stosować języki asemblera w oprogramowaniu dla systemu Linux w wersji 32- oraz 64-bitowej Potrafi tworzyć oraz analizować dokumentację urządzeń i układów związanych z techniką cyfrową i mikroprocesorową Treść modułu zajęć (program wykładów i pozostałych zajęć) Wykład Wprowadzenie teoretyczne do zagadnień związanych z programowaniem mikroprocesorów Podstawy teoretyczne funkcjonowania mikroprocesorów w zakresie wykonywania rozkazów maszynowych i zarządzania zasobami, architektury mikroprocesorów, klasyfikacja zasobów udostępnianych procesom maszynowym i dostępnych z punktu widzenia programisty, wielozadaniowość i wirtualne tryby pracy, przetwarzanie wielowątkowe, zarządzanie pamięcią (segmentacja i stronicowanie pamięci, ochrona pamięci) Programowanie w językach asemblera Składnia typowych języków asemblera, sterowanie wykonaniem programu, dostęp do pamięci i innych zasobów. Łączenie modułów pisanych w języku asemblera i w językach wysokiego poziomu. Operacje stało- i zmiennoprzecinkowe, wykorzystanie architektury SIMD, interakcje z systemem operacyjnym Mikrokontrolery Typowe architektury mikrokontrolerów, popularne rodziny mikrokontrolerów. Środowiska sprzętowe i firmowe zestawy doświadczalne dla mikrokontrolerów. Programowanie mikrokontrolerów z wykorzystaniem programatorów sprzętowych, aplikacje zarządzające procesem programowania Środowiska do wytwarzania oprogramowania dla mikrokontrolerów Wysoko poziomowe środowiska i języki programowania mikrokontrolerów. Symulatory systemów wbudowanych opartych o mikrokontrolery. Kompilatory języków wysokiego poziomu dla mikrokontrolerów. Programowanie mikrokontrolerów w językach asemblera Projektowanie systemów mikroprocesorowych Techniki integracji mikrokontrolerów i komunikujących się z nimi urządzeń zewnętrznych, programowalne urządzenia wejścia-wyjścia, dokumentowanie systemów mikroprocesorowych 3 / 5
laboratoryjne Wytwarzanie oprogramowania niskiego poziomu Struktura programu poddawanego asemblacji, podstawowe narzędzia (asembler i linker), uruchamianie programów, użytkowanie debuggera Programowanie w językach asemblera Dostęp do danych, tryby adresowania, tworzenie pętli programowych, wydzielanie fragmentów kodu do wielokrotnego użytku, tworzenie funkcji i procedur, parametryzacja, sposoby przekazywania parametrów, rekurencja, przenoszenie i inne procesy przetwarzania danych buforowanych Asemblery w systemach operacyjnych Korzystanie z funkcji systemu operacyjnego, operacje na danych łańcuchowych i blokach danych, techniki łączenia modułów asemblerowych z modułami napisanymi w językach wysokiego poziomu, interfejsy umożliwiające wywoływanie funkcji pomiędzy asemblerem i kodem języka wysokiego poziomu, obliczenia na liczbach rzeczywistych w asemblerze, wykorzystanie jednostki zmiennoprzecinkowej Programowanie mikrokontrolerów Użytkowanie programatorów opartych na łączach szeregowych, interfejs JTAG, proces programowania mikrokontrolera, pamięci programowalne i formaty danych zawierających kod maszynowy dla mikrokontrolera, bity zabezpieczające i konfigurujące programy w mikrokontrolerze, aplikacje komputerowe różnych producentów zarządzające procesem programowania, zintegrowane środowiska do wytwarzania oprogramowania dla mikrokontrolerów na przykładzie produktów firmy Atmel lub pokrewnych Symulatory systemów opartych o mikrokontrolery Uruchamianie programów w symulatorze. Dostęp do portów i urządzeń zewnętrznych (klawiatura, wyświetlacz LED/LCD itp.), taktowanie czasowe wykonania programu, obsługa przerwań. Symulacja procesu wykonania instrukcji programu przez procesor mikrokontrolera (rejestry, adresowanie pamięci, struktura programu wykonywanego, dostęp do danych, przerwania) Integracja systemów opartych na mikrokontrolerach z urządzeniami zewnętrznymi Pakiety typu starter-kit dla mikrokontrolerów, wykorzystane magistral cyfrowych w różnych ich konfiguracjach, układy wspomagające komunikację mikrokontrolera z jego środowiskiem (zatrzaski, bufory, komparatory, zegary, kontrolery przerwań, przetworniki sygnałów), pamięci i inne urządzenia zewnętrzne Dokumentowanie systemów mikroprocesorowych Analiza i tworzenie schematów blokowych systemów mikroprocesorowych oraz map wyprowadzeń linii sygnałowych z układów elektronicznych. Analiza dokumentacji technicznej prostych i zaawansowanych układów cyfrowych Sposób obliczania oceny końcowej 1. Do uzyskania pozytywnej oceny końcowej niezbędne jest uzyskanie pozytywnej oceny z laboratorium oraz zaliczenie testu z części wykładowej. 2. Na laboratoriach Studenci otrzymują dwie oceny cząstkowe. Pierwsza z nich (ocena części Programowanie mikroprocesorów) to wynik kolokwium polegającego na napisaniu kodu w asemblerze (w formie funkcji) wykonującego określone zadanie oraz kodu w języku wysokiego poziomu, będącego programem testowym. Druga to ocena z części Programowanie mikrokontrolerów wynikająca z realizacji zaprojektowania, napisania kodu oraz uruchomienia oprogramowania realizującego określone zadanie w systemie opartym na mikrokontrolerze. 4 / 5
3. Wszystkie oceny cząstkowe z laboratorium są wyrażone w skali procentowej (100% odpowiada maksymalnej, możliwej do uzyskania ocenie). 4. Końcowa ocena procentowa z laboratorium to średnia ważona cząstkowych ocen procentowych (wagi: 0,7 dla mikroprocesorów i 0,3 dla mikrokontrolerów). Jest ona przeliczana na ocenę końcową zgodnie z Regulaminem Studiów. 5. Ocena końcowa procentowa z przedmiotu to średnia ważona ocen procentowych z laboratorium (waga 0,8) i testu z części wykładowej (waga 0,2). Jest ona przeliczana na ocenę końcową zgodnie z Regulaminem Studiów. Wymagania wstępne i dodatkowe Znajomość zagadnień związanych z podstawami elektroniki cyfrowej. Podstawowe umiejętności w zakresie programowania imperatywnego. Zalecana literatura i pomoce naukowe 1. Programowanie mikrokontrolerów AVR, A,Krysiak, 2000, BTC 2. AVR i ARM7. Programowanie mikrokontrolerów dla każdego, Paweł Borkowski, 2010, Helion 3. Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji, Tomasz Francuz, 2011, Helion 4. Asembler. Podręcznik programisty, V. Pirogov, 2005, Helion 5. Praktyczny kurs asemblera, E. Wróbel, 2004, Helion 6. Asembler. Sztuka programowania, R. Hyde, 2004, Helion 7. Układy mikroprocesorowe. Przykłady rozwiązań, 2002, Helion Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji Informacje dodatkowe Brak Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Udział w wykładach Samodzielne studiowanie tematyki zajęć Przygotowanie do zajęć Udział w ćwiczeniach Sumaryczne obciążenie pracą studenta Punkty ECTS za moduł Obciążenie studenta 20 godz 110 godz 4 ECTS 5 / 5