Aby wziąć udział w tym kursie, nie trzeba spełniać żadnych szczególnych wymagań.
To szkolenie ma na celu wprowadzenie C++ jako powszechnego rozszerzenia języka C w kontekście obiektowego programowania systemów wbudowanych. Ponieważ C++ obejmuje C, to szkolenie poprowadzi nas w naturalny sposób od C do C++, pozwalając zajrzeć pod maskę implementacji C++. Jest to szczególnie cenne, gdy C++ jest stosowany w środowisku z ograniczonymi zasobami. Standard C++ przeszedł ostatnio gruntowną rewizję, znaną jako C++11, a nowa wersja, C++14, jest w przygotowaniu. Kurs ten obejmuje tematy wprowadzone w tych poprawkach, które są szczególnie przydatne, takie jak wydajne zarządzanie pamięcią, współbieżność wykorzystująca środowisko wielordzeniowe oraz programowanie blisko sprzętu.
CELE/KORZYŚCI
Głównym celem tej klasy jest umiejętność używania C++ w “poprawny sposób”.
- Wprowadzenie C++ jako obiektowego języka alternatywnego w kontekście systemu wbudowanego
- Pokazanie podobieństw – i różnic – w stosunku do języka C
- Zrozumienie różnych strategii zarządzania pamięcią – szczególnie semantyki przenoszenia wprowadzonej w C++11
- Zajrzenie pod maskę i zrozumienie, do czego prowadzą różne paradygmaty w C++ w kodzie maszynowym
- Wykorzystanie szablonów do osiągnięcia bezpiecznych typowo abstrakcji wyższego rzędu dla programowania blisko sprzętu – dostępu do pamięci mapowanej I/O oraz przerwań – szczególnie szablonów wariadycznych wprowadzonych w C++11
- Dostarczenie kilku przydatnych wzorców projektowych, szczególnie przydatnych w kontekście systemów wbudowanych
- Kilka ćwiczeń w celu przećwiczenia niektórych koncepcji
ODBIORCY/UCZESTNICY
Szkolenie skierowane jest do C++- programistów, którzy zamierzają rozpocząć korzystanie z C++ w kontekście systemu wbudowanego.
WCZEŚNIEJSZA WIEDZA
Kurs wymaga podstawowej wiedzy z zakresu C++ programowania, odpowiadającej naszym szkoleniom ”C++ – Level 1” i ”C++ Level 2 – Introducing C++11”.
ĆWICZENIA PRAKTYCZNE
Podczas szkolenia przećwiczysz prezentowane koncepcje w szeregu ćwiczeń. Wykorzystamy otwarte i darmowe zintegrowane środowisko programistyczne Eclipse
- Co to jest system wbudowany?
- Prosta definicja
- Kilka kamieni milowych
- Charakterystyka
- Dlaczego używać C++?
- Porównanie z C
- C: Podzbiór C++ – prawie
- Wydajność
- Dodatkowa funkcjonalność „za darmo”
- Dlaczego nie używać C++?
- Klasy
- Zmienne składowe
- Zmienne instancji
- Zmienne klas
- Funkcje składowe
- Funkcje instancji
- Funkcje klas
- Niejawne metody
- Konstruktor
- Inicjalizacja
- Delegowanie
- Destruktor
- Operator przypisania kopiującego
- Konstruktor
- Semantyka przenoszenia – unikanie niepotrzebnego głębokiego kopiowania
- struct w C++
- Pakiet/Przestrzeń nazw
- Zmienne składowe
- Dziedziczenie
- Wprowadzenie
- Realizacja
- Wydajność
- Dziedziczenie wielokrotne
- Dziedziczenie wirtualne
- Polimorfizm
- Wprowadzenie
- Funkcja wirtualna
- Wirtualny destruktor
- Implementacja
- Informacje o typie w czasie wykonywania, RTTI
- Wydajność
- Szablony
- Wprowadzenie
- Funkcja szablonowa
- Klasa szablonowa
- Szablony wariadyczne
- Rozrost kodu
- Strategie implementacji
- Meta szablon Programming
- Szablony a dziedziczenie?
- Obsługa błędów
- Obsługa wyjątków
- Problemy z wydajnością
- Implementacja
- Kod inline
- Kiedy używać?
- Strategie
- Uruchomienie
- Uruchomienie systemu
- Część C
- Część C++
- Biblioteka standardowa
- Standardowa biblioteka szablonów, STL
- Biblioteka iostream
- Główne rozszerzenia wprowadzone w STL dzięki C++11:
- Semantyka przenoszenia
- Szablony wariadyczne
- Współbieżność
- Pamięć Management
- Model pamięci C++
- stdint-types
- Typy atomowe i ich operacje
- Strategie
- Zmienne
- Placement new
- Pamięć zdefiniowana przez użytkownika Management
- Model pamięci C++
- Interoperacyjność między C a C++
- Name Mangling
- Statyczna inicjalizacja
- Dynamiczna pamięć
- Zawartość struct
- POD – Plain Old Data type
- Design Patterns
- RAII – Resource Acquisition Is Initialization
- Memory-mapped I/O
- Interrupt
- Inicjalizacja obiektów statycznych
United Arab Emirates - Using C++ in Embedded Systems - Applying C++11/C++14
Qatar - Using C++ in Embedded Systems - Applying C++11/C++14
Egypt - Using C++ in Embedded Systems - Applying C++11/C++14
Saudi Arabia - Using C++ in Embedded Systems - Applying C++11/C++14
South Africa - Using C++ in Embedded Systems - Applying C++11/C++14
Brasil - Using C++ in Embedded Systems - Applying C++11/C++14
Canada - Using C++ in Embedded Systems - Applying C++11/C++14
中国 - Using C++ in Embedded Systems - Applying C++11/C++14
香港 - Using C++ in Embedded Systems - Applying C++11/C++14
澳門 - Using C++ in Embedded Systems - Applying C++11/C++14
台灣 - Using C++ in Embedded Systems - Applying C++11/C++14
USA - Using C++ in Embedded Systems - Applying C++11/C++14
Österreich - Using C++ in Embedded Systems - Applying C++11/C++14
Schweiz - Using C++ in Embedded Systems - Applying C++11/C++14
Deutschland - Using C++ in Embedded Systems - Applying C++11/C++14
Czech Republic - Using C++ in Embedded Systems - Applying C++11/C++14
Denmark - Using C++ in Embedded Systems - Applying C++11/C++14
Estonia - Using C++ in Embedded Systems - Applying C++11/C++14
Finland - Using C++ in Embedded Systems - Applying C++11/C++14
Greece - Using C++ in Embedded Systems - Applying C++11/C++14
Magyarország - Using C++ in Embedded Systems - Applying C++11/C++14
Ireland - Using C++ in Embedded Systems - Applying C++11/C++14
Luxembourg - Using C++ in Embedded Systems - Applying C++11/C++14
Latvia - Using C++ in Embedded Systems - Applying C++11/C++14
España - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Italia - Using C++ in Embedded Systems - Applying C++11/C++14
Lithuania - Using C++ in Embedded Systems - Applying C++11/C++14
Nederland - Using C++ in Embedded Systems - Applying C++11/C++14
Norway - Using C++ in Embedded Systems - Applying C++11/C++14
Portugal - Using C++ in Embedded Systems - Applying C++11/C++14
România - Using C++ in Embedded Systems - Applying C++11/C++14
Sverige - Using C++ in Embedded Systems - Applying C++11/C++14
Türkiye - Using C++ in Embedded Systems - Applying C++11/C++14
Malta - Using C++ in Embedded Systems - Applying C++11/C++14
Belgique - Using C++ in Embedded Systems - Applying C++11/C++14
France - Using C++ in Embedded Systems - Applying C++11/C++14
日本 - Using C++ in Embedded Systems - Applying C++11/C++14
Australia - Using C++ in Embedded Systems - Applying C++11/C++14
Malaysia - Using C++ in Embedded Systems - Applying C++11/C++14
New Zealand - Using C++ in Embedded Systems - Applying C++11/C++14
Philippines - Using C++ in Embedded Systems - Applying C++11/C++14
Singapore - Using C++ in Embedded Systems - Applying C++11/C++14
Thailand - Using C++ in Embedded Systems - Applying C++11/C++14
Vietnam - Using C++ in Embedded Systems - Applying C++11/C++14
India - Using C++ in Embedded Systems - Applying C++11/C++14
Argentina - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Chile - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Costa Rica - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Ecuador - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Guatemala - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Colombia - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
México - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Panama - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Peru - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Uruguay - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Venezuela - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Polska - Using C++ in Embedded Systems - Applying C++11/C++14
United Kingdom - Using C++ in Embedded Systems - Applying C++11/C++14
South Korea - Using C++ in Embedded Systems - Applying C++11/C++14
Pakistan - Using C++ in Embedded Systems - Applying C++11/C++14
Sri Lanka - Using C++ in Embedded Systems - Applying C++11/C++14
Bulgaria - Using C++ in Embedded Systems - Applying C++11/C++14
Bolivia - Uso de C ++ en sistemas integrados: aplicación de C ++ 11 / C ++ 14
Indonesia - Using C++ in Embedded Systems - Applying C++11/C++14
Kazakhstan - Using C++ in Embedded Systems - Applying C++11/C++14
Moldova - Using C++ in Embedded Systems - Applying C++11/C++14
Morocco - Using C++ in Embedded Systems - Applying C++11/C++14
Tunisia - Using C++ in Embedded Systems - Applying C++11/C++14
Kuwait - Using C++ in Embedded Systems - Applying C++11/C++14
Oman - Using C++ in Embedded Systems - Applying C++11/C++14
Slovakia - Using C++ in Embedded Systems - Applying C++11/C++14
Kenya - Using C++ in Embedded Systems - Applying C++11/C++14
Nigeria - Using C++ in Embedded Systems - Applying C++11/C++14
Botswana - Using C++ in Embedded Systems - Applying C++11/C++14
Slovenia - Using C++ in Embedded Systems - Applying C++11/C++14
Croatia - Using C++ in Embedded Systems - Applying C++11/C++14
Serbia - Using C++ in Embedded Systems - Applying C++11/C++14
Bhutan - Using C++ in Embedded Systems - Applying C++11/C++14
Nepal - Using C++ in Embedded Systems - Applying C++11/C++14
Uzbekistan - Using C++ in Embedded Systems - Applying C++11/C++14