Course Code: embedd8526
Duration: 21 hours
Prerequisites:

Aby wziąć udział w tym kursie, nie trzeba spełniać żadnych szczególnych wymagań.

Overview:

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

Course Outline:
  • 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
    • Semantyka przenoszenia – unikanie niepotrzebnego głębokiego kopiowania
    • struct w C++
    • Pakiet/Przestrzeń nazw
  • 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
  • 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
Sites Published:

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