Module also offered within study programmes:
General information:
Name:
Applications of microcontrollers
Course of study:
2019/2020
Code:
IETP-1-602-n
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
First-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
6
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Part-time studies
Responsible teacher:
Krzak Łukasz (lkrzak@agh.edu.pl)
Module summary

Moduł dotyczy efektywnego wykorzystania języka C oraz systemu operacyjnego czasu rzeczywistego, jako dominujących obecnie w systemach mikrokontrolerowych narzędzi do budowy aplikacji.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence: is able to
M_K001 Student potrafi zespołowo opracować implementację oprogramowania, dbając o jakość kodu źródłowego. ETP1A_K04, ETP1A_K02, ETP1A_K03 Execution of laboratory classes
Skills: he can
M_U001 Student potrafi efektywnie posługiwać się interfejsem prostego systemu operacyjnego w celu implementacji aplikacji wielowątkowej działającej na mikrokontrolerze. ETP1A_U09, ETP1A_U15 Execution of laboratory classes,
Test
M_U002 Student potrafi efektywnie napisać oprogramowanie w języku C na mikrokontroler. ETP1A_U09, ETP1A_U05, ETP1A_U15 Execution of laboratory classes,
Test
Knowledge: he knows and understands
M_W001 Student rozumie podstawy działania aplikacji wielowątkowych, wykorzystujących system operacyjny. Zna podstawowe aspekty programowania wielowątkowego a także związane z tym możliwości i zagrożenia. ETP1A_W14, ETP1A_W06 Test,
Execution of laboratory classes
M_W002 Student zna aktualne trendy i kierunki rozwoju rynku mikrokontrolerów. ETP1A_W06, ETP1A_W16 Execution of laboratory classes
M_W003 Student posiada więdzę dot. tworzenia oprogramowania w języku C dla mikrokontrolerów. Rozumie proces budowania kodu i jego późniejsze działanie na mikrokontrolerze. ETP1A_W14, ETP1A_W06 Test,
Execution of laboratory classes
Number of hours for each form of classes:
Sum (hours)
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
26 16 0 10 0 0 0 0 0 0 0 0
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Social competence
M_K001 Student potrafi zespołowo opracować implementację oprogramowania, dbając o jakość kodu źródłowego. - - + - - - - - - - -
Skills
M_U001 Student potrafi efektywnie posługiwać się interfejsem prostego systemu operacyjnego w celu implementacji aplikacji wielowątkowej działającej na mikrokontrolerze. + - + - - - - - - - -
M_U002 Student potrafi efektywnie napisać oprogramowanie w języku C na mikrokontroler. + - + - - - - - - - -
Knowledge
M_W001 Student rozumie podstawy działania aplikacji wielowątkowych, wykorzystujących system operacyjny. Zna podstawowe aspekty programowania wielowątkowego a także związane z tym możliwości i zagrożenia. + - + - - - - - - - -
M_W002 Student zna aktualne trendy i kierunki rozwoju rynku mikrokontrolerów. + - + - - - - - - - -
M_W003 Student posiada więdzę dot. tworzenia oprogramowania w języku C dla mikrokontrolerów. Rozumie proces budowania kodu i jego późniejsze działanie na mikrokontrolerze. + - + - - - - - - - -
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Udział w zajęciach dydaktycznych/praktyka 26 h
Preparation for classes 52 h
Realization of independently performed tasks 20 h
Examination or Final test 2 h
Module content
Lectures (16h):

Tematy poruszane na wykładzie:

1. Architektura i komponenty systemów wbudowanych, opartych o układy mikrokontrolerów.

W wykładzie znajdują się odpowiedzi na pytania: co to jest system wbudowany, jakie są najnowsze trendy i rozwiązania spotykane w układach mikrokontrolerów oraz jakimi kryteriami należy się kierować w wyborze mikrokontrolera. Obejmuje również wstęp do narzędzi wykorzystywanych podczas ćwiczeń laboratoryjnych.

2. Programowanie mikrokontrolerów w języku C.

W wykładzie skupiono się na przedstawieniu specyficznych aspektów programowania mikrokontrolerów w języku C dot. m.in. wykorzystania standardowej biblioteki języka C, kodu startowego, modelu pamięci, sposobu budowania kodu, a także standardów języka.

3. Wprowadzenie do systemu czasu rzeczywistego i programowania wielowątkowego na mikrokontrolerze.

W wykładzie omówiono zagadnienia czasu rzeczywistego w aplikacjach mikrokontrolerów, pojęcie wielowątkowości i jego realizacja w postaci mikro-jądra systemu operacyjnego, podstawowe funkcje systemu operacyjnego. Wykład zawiera również omówienie technik związanych z programowaniem wielowątkowym na mikrokontrolerze z wykorzystaniem bezpiecznych technik współdzielenia zasobów.

Laboratory classes (10h):

Ćwiczenia laboratoryjne umożliwiają praktyczne zapoznanie studentów z tematami poruszanymi w ramach wykładu. Ćwiczenia obejmują głownie zadania związane z implementacją oprogramowania na dostarczone płyty z mikrokontrolerem wyposażonym w rdzeń z rodziny ARM Cortex-M.

Poruszane zagadnienia:

  • efektywne wykorzystanie języka C w aplikacjach mikrokontrolerowych,
  • metody radzenia sobie ze skalą w projektach oprogramowania dla systemów wbudownych
  • efektywne wykorzystanie popularnych układów peryferyjnych mikokontrolera
  • architektura oprogramowania zorientowana na komponenty
  • testy jednostkowe
  • testy obciążeniowe
  • metody diagnostyki aplikacji mikrokontrolerowych
  • programowanie wielowątkowe wykorzystujące system operacyjny
  • wykorzystanie narzędzi kontroli wersji do pracy zespołowej

Additional information
Teaching methods and techniques:
  • Lectures: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Laboratory classes: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Podstawą do wyznaczenia oceny z ćw. laboratoryjnych jest ocena z końcowego kolokwium zaliczeniowego. Ocena z kolokwium zaliczeniowego może zostać podniesiona o max. 0.5 stopnia w przypadku, gdy student wykazał się znaczną aktywnością na zajęciach laboratoryjnych.

Participation rules in classes:
  • Lectures:
    – Attendance is mandatory: No
    – Participation rules in classes: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Laboratory classes:
    – Attendance is mandatory: Yes
    – Participation rules in classes: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
Method of calculating the final grade:

Ocena końcowa wyznaczana jest na podstawie oceny z ćw. laboratoryjnych.

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Zaległości mogą być nadrobione poprzez uczestnictwo dodatkowych zajęciach w ramach innej grupy laboratoryjnej, o ile są takie możliwości i prowadzący zajęcia wyrazi taką zgodę. Część zaległości można nadrobić dodatkową pracą w domu.

Prerequisites and additional requirements:
  • znajomość podstaw języka C
  • umiejętność napisania podstawowych aplikacji w języku C
  • znajomość podstaw techniki cyfrowej
  • znajomość podstaw techniki mikroprocesorowej
Recommended literature and teaching resources:

1. Sommerville Ian, Inżynieria oprogramowania, WNT, 2008
2. Shibu. K.V., Introduction to Embedded Systems, McGraw Hill Education, 2017
3. Vahid. T., Embedded System Design: A Unified Hardware/Software Introduction, Wiley, 2006
4. Labrosse, J.J., MicroC/OS-II The real-time kernel, CMP Books, 2002
5. Labrosse, J.J., Embedded Systems Building Blocks, CMP Books, 1999

Scientific publications of module course instructors related to the topic of the module:
  1. Paweł Okas, Łukasz Krzak, Cezary Worek, “C++14 concurrency on ARM Cortex-M using FreeRTOS and GCC”, IFAC-PapersOnLine Volume 48, Issue 4, 2015, Pages 262-267
  2. Łukasz Krzak, Rafał Mielniczuk, Cezary Worek, ”Software-defined digital radio baseband processor using Blackfin DSP”, ICSES 2008 International Conference On Signals And Electronic Systems, September 14–17, 2008, Kraków, Poland, conference proceedings s. 523–525. [referat]
  3. Andrzej Kuroś, Cezary Worek, „Implementacja systemu operacyjnego eCOS na mikrokontroler LPC2124”, Elektronika Praktyczna Plus, 2006 nr 1 wyd. spec. s. 53–57. [artykuł w czasopiśmie]
  4. Artur Lipowski, Cezary Worek, „Systemy operacyjne w systemach mikroprocesorowych”, Elektronika Praktyczna Plus, 2006 nr 1 wyd. spec. s. 39–42. [artykuł w czasopiśmie]
Additional information:

None