Using C++ in Embedded Systems - Applying C++11/C++14 Počítačový Kurz
Toto školení si klade za cíl představit C++ jako běžné rozšíření jazyka C při vývoji objektově orientovaných vestavěných systémů. Vzhledem k tomu, že C++ zahrnuje C, toto školení nás přirozeným způsobem provede od C k C++ a podívá se pod pokličku implementace C++. To je zvláště cenné pro pochopení při použití C++ v prostředí s omezenými zdroji. Standard C++ prochází nedávno velkou revizí, známou jako C++11, a na cestě je nová verze, C++14. Tento kurz se zabývá tématy zavedenými v těchto revizích, která jsou zvláště užitečná, jako je vysoce výkonná správa paměti, souběžnost využívající vícejádrové prostředí a programování blízko hardwaru.
CÍL/VÝHODY
Hlavním cílem této třídy je, že budete schopni používat C++ „správným způsobem“.
- Představit C++ jako objektově orientovanou jazykovou alternativu v kontextu vestavěných systémů
- Ukázat podobnosti – a rozdíly – s jazykem C
- Pochopit různé strategie správy paměti – zejména sémantiku přesunu zavedenou s C++11
- Podívat se pod pokličku a pochopit, k čemu různé paradigmy v C++ vedou v strojovém kódu
- Použít šablony k dosažení typově bezpečné abstrakce vyššího řádu pro programování blízko hardwaru – mapování paměti I/O i přerušení – zejména variadické šablony zavedené s C++11
- Poskytnout užitečné návrhové vzory, které jsou zvláště vhodné v kontextu vestavěných systémů
- Několik cvičení k procvičení některých konceptů
DIVÁCI/ÚČASTNÍCI
Toto školení je určeno C++- programátorům, kteří hodlají začít používat C++ v kontextu vestavěného systému.
PŘEDCHOZÍ ZNALOST
Kurz vyžaduje základní znalosti programování C++, odpovídající našim školením „C++ – Úroveň 1“ a „C++ Úroveň 2 – Představujeme C++11“.
PRAKTICKÁ CVIČENÍ
Během školení si procvičíte prezentované pojmy v řadě cvičení. Budeme používat otevřené a bezplatné integrované vývojové prostředí od Eclipse
Návrh Školení
- Co je vložený systém?
- Jednoduchá definice
- Důležité milníky
- Charakteristiky
- Proč používat C++?
- Srovnání s C
- C: podmnožina C++ – téměř
- Výkon
- Přidaná „zdarma“ funkcionalita
- Proč nepoužívat C++?
- Třídy
- Členské proměnné
- Instanční proměnné
- Třídní proměnné
- Členské funkce
- Instanční funkce
- Třídní funkce
- Implicitní metody
- Konstruktor
- Inicializace
- Delegování
- Destruktor
- Operátor přiřazení kopie
- Konstruktor
- Sémantika přesunu – vyhýbání se zbytečnému hlubokému kopírování
- struct v C++
- Balíček/Jmenný prostor
- Členské proměnné
- Dědičnost
- Úvod
- Realizace
- Výkon
- Vícenásobná dědičnost
- Virtuální dědičnost
- Polymorfismus
- Úvod
- Virtuální funkce
- Virtuální destruktor
- Implementace
- Informace o typu za běhu, RTTI
- Výkon
- Šablony
- Úvod
- Funkční šablona
- Třídní šablona
- Variadické šablony
- Rozšíření kódu
- Implementační strategie
- Šablonová meta-Programming
- Šablony versus dědičnost?
- Zpracování chyb
- Zpracování výjimek
- Problémy s výkonem
- Implementace
- Inline kód
- Kdy použít?
- Strategie
- Spuštění
- Spuštění systému
- Část v C
- Část v C++
- Standardní knihovna
- Standardní knihovna šablon, STL
- Knihovna iostream
- Hlavní rozšíření provedená na STL díky C++11:
- Sémantika přesunu
- Variadické šablony
- Souběžnost
- Paměť Management
- Paměťový model C++
- stdint-types
- Atomické typy a jejich operace
- Strategie
- Proměnné
- Umístění new
- Uživatelsky definovaná paměť Management
- Paměťový model C++
- Interoperabilita mezi C a C++
- Maskování jmen
- Statická inicializace
- Dynamická paměť
- Obsah struct
- POD – Datový typ Plain Old
- Design Patterns
- RAII – Získání prostředků je inicializace
- Paměťově mapovaný vstup/výstup
- Přerušení
- Inicializace statických objektů
Požadavky
Pro účast v tomto kurzu nejsou vyžadovány žádné zvláštní požadavky.
Open Training Courses require 5+ participants.
Using C++ in Embedded Systems - Applying C++11/C++14 Počítačový Kurz - Booking
Using C++ in Embedded Systems - Applying C++11/C++14 Počítačový Kurz - Enquiry
Reference (2)
Užil jsem si čas, který jsme měli na řešení cvičení. To bylo velmi užitečné, protože nám to umožnilo strávit nějaký čas přemýšlením o našich řešeních a jejich implementací.
Valeriu - Siemens
Kurz - Using C++ in Embedded Systems - Applying C++11/C++14
Machine Translated
The details on how compiler behaves depending on to the syntax usage. The "Quiz" sections are very stimulating
Andrea Pomatto
Kurz - Using C++ in Embedded Systems - Applying C++11/C++14
Upcoming Courses
Související kurzy
Advanced Embedded Systems Development
35 hodinyToto živé školení vedené instruktorem v České republice (online nebo na místě) je zaměřeno na inženýry, kteří se chtějí naučit používat vestavěný C k programování různých typů mikrokontrolérů založených na různých architekturách procesorů (8051, ARM CORTEX M-3 a ARM9).
Arduino Programming for Beginners
21 hodinyV tomto živém školení pod vedením instruktora v České republice se účastníci naučí, jak naprogramovat Arduino pro použití v reálném světě, jako je ovládání světel, motorů a senzorů detekce pohybu. Tento kurz předpokládá použití skutečných hardwarových komponent v prostředí živé laboratoře (nikoli softwarově simulovaný hardware).
Na konci tohoto školení budou účastníci schopni:
- Naprogramujte Arduino pro ovládání světel, motorů a dalších zařízení.
- Pochopte architekturu Arduina, včetně vstupů a konektorů pro přídavná zařízení.
- Přidejte komponenty třetích stran, jako jsou LCD, akcelerometry, gyroskopy a GPS trackery, abyste rozšířili funkčnost Arduina.
- Pochopte různé možnosti v programovacích jazycích, od C po jazyky přetahování.
- Testujte, laďte a nasazujte Arduino k řešení problémů reálného světa.
Buildroot: a Firmware Generator for Embedded Systems
7 hodinyBuildroot je projekt s otevřeným zdrojovým kódem, který obsahuje skripty, které vytvářejí řetězec nástrojů pro křížovou kompilaci, přizpůsobitelný obraz kořenového souborového systému a Linux jádro pro vestavěná zařízení. Během tohoto praktického kurzu se účastníci naučí, jak jej používat:
- Jak vybrat software, který jde do kořenového systému souborů.
- Jak přidávat nové balíčky a upravovat ty stávající.
- Jak přidat podporu pro nové vestavěné desky.
Během kurzu budou vytvořeny zaváděcí obrazy souborového systému. Vzdálené kurzy jsou poskytovány pomocí emulátoru QEMU , přičemž ve třídě je možné použít buď QEMU nebo skutečné embedded desky dle výběru školitele.
Mezi další projekty s podobnými cíli patří projekt Yocto a OpenWRT. Pomocí těchto prezentací určete, která z nich je pro vaše potřeby správná.
Circuits and Electronics Fundamentals
14 hodinyToto živé školení vedené instruktorem v České republice (online nebo na místě) je zaměřeno na inženýry a počítačové vědce, kteří chtějí aplikovat základy obvodů a elektroniky při navrhování zařízení a systémů, které využívají vlastnosti elektrických součástek pro vývoj hardwarových funkcí. .
Na konci tohoto školení budou účastníci schopni:
- Nastavte a nakonfigurujte potřebné nástroje a programy pro vývoj obvodů a desek plošných spojů.
- Pochopit základní principy obvodů a elektroniky.
- Využijte primární elektronické komponenty při konstrukci efektivních počítačových hardwarových technologií.
- Optimalizujte elektronická zařízení implementací metod obvodové analýzy.
- Aplikujte základy elektroniky a obvodů při vývoji podnikových aplikací.
Digital Signal Processing (DSP) Fundamentals
21 hodinyToto živé školení vedené instruktorem v České republice (online nebo na místě) je zaměřeno na inženýry a vědce, kteří se chtějí naučit a aplikovat implementace DSP, aby efektivně zvládli různé typy signálů a získali lepší kontrolu nad vícekanálovými elektronickými systémy.
Na konci tohoto školení budou účastníci schopni:
- Nastavte a nakonfigurujte potřebnou softwarovou platformu a nástroje pro digitální zpracování signálu.
- Pochopte koncepty a principy, které jsou základem DSP a jeho aplikací.
- Seznamte se s komponentami DSP a použijte je v elektronických systémech.
- Vytvářejte algoritmy a operační funkce pomocí výsledků z DSP.
- Využijte základní vlastnosti softwarových platforem DSP a navrhněte signálové filtry.
- Syntetizovat DSP simulace a implementovat různé typy filtrů pro DSP.
Embedded C Application Design Principles for Automotive Professionals
14 hodinyDvoudenní kurz pokrývající všechny principy návrhu s příklady kódu ve spojení s nejnovější průmyslovou technologií; velmi užitečné pro vývojáře automobilového softwaru
Embedded C Application Design Principles
14 hodinyToto živé školení vedené instruktorem (online nebo na místě) je zaměřeno na vývojáře v jazyce C, kteří se chtějí naučit principy embedded designu v jazyce C.
Na konci tohoto školení budou účastníci schopni:
- Pochopte aspekty návrhu, díky kterým jsou vestavěné programy v jazyce C spolehlivé
- Definujte funkcionalitu vestavěného systému
- Definujte logiku a strukturu programu, abyste získali požadovaný výsledek
- Navrhněte spolehlivou, bezchybnou vestavěnou aplikaci
- Získejte optimální výkon z cílového hardwaru
Formát kurzu:
- Interaktivní přednáška a diskuze
- Cvičení a praxe
- Praktická implementace v prostředí živé laboratoře
Možnosti přizpůsobení kurzu:
- Chcete-li požádat o školení na míru pro tento kurz, kontaktujte nás a domluvíme se.
Electronic Control Unit (ECU) - Practical Vector
28 hodinyToto živé školení vedené instruktorem v České republice (online nebo na místě) je zaměřeno na středně pokročilé automobilové inženýry a techniky, kteří chtějí získat praktické zkušenosti s testováním, simulací a diagnostikou ECU pomocí nástrojů Vector, jako jsou CANoe a CANape.
Na konci tohoto školení budou účastníci schopni:
- Pochopit roli a funkci ECU v automobilových systémech.
- Nastavte a nakonfigurujte nástroje Vector, jako jsou CANoe a CANape.
- Simulujte a otestujte komunikaci ECU v sítích CAN a LIN.
- Analyzujte data a provádějte diagnostiku na ECU.
- Vytvářejte testovací případy a automatizujte pracovní postupy testování.
- Kalibrujte a optimalizujte ECU pomocí praktických přístupů.
Electronic Control Unit (ECU) - Theoretical Vector
21 hodinyToto živé školení vedené instruktorem v České republice (online nebo na místě) je zaměřeno na středně pokročilé automobilové inženýry a vývojáře vestavěných systémů, kteří chtějí porozumět teoretickým aspektům ECU, se zaměřením na vektorové nástroje a metodiky používané v automobilovém designu. a vývoj.
Na konci tohoto školení budou účastníci schopni:
- Pochopte architekturu a funkce ECU v moderních vozidlech.
- Analyzujte komunikační protokoly používané při vývoji ECU.
- Prozkoumejte nástroje založené na vektorech a jejich teoretické aplikace.
- Aplikujte na návrh ECU principy vývoje založené na modelu.
FreeRTOS: Programming for Real Time Operating Systems
14 hodinyV tomto živém školení vedeném instruktorem v České republice se účastníci naučí, jak kódovat pomocí FreeRTOS, když projdou vývojem jednoduchého projektu RTOS pomocí mikrokontroléru.
Na konci tohoto školení budou účastníci schopni:
- Pochopit základní pojmy operačních systémů pracujících v reálném čase.
- Naučte se prostředí FreeRTOS.
- Naučte se kódovat pomocí FreeRTOS.
- Rozhraní aplikace FreeRTOS s hardwarovými periferiemi.
Learning Vivado
14 hodinyToto živé školení vedené instruktorem v České republice (online nebo na místě) je zaměřeno na vývojáře FPGA, kteří chtějí používat Vivado k navrhování, ladění a implementaci hardwarových řešení.
Na konci tohoto školení budou účastníci schopni:
- Vyvíjejte systémy HDL pomocí kódu C a nástrojů Vivado.
- Generujte a implementujte soft procesory v Vivado.
- Testujte a simulujte C kód pomocí Vivado.
LEDE: Set Up a Linux Wireless Router
7 hodinyProjekt LEDE (Linux Embedded Development Environment) je operační systém Linux založený na OpenWrt. Jedná se o kompletní náhradu firmwaru dodávaného dodavatelem široké škály bezdrátových směrovačů a nesíťových zařízení.
V tomto živém školení vedeném instruktorem se účastníci naučí, jak nastavit bezdrátový router na bázi LEDE.
Publikum
- Správci sítí a technici
Formát kurzu
- Část přednáška, část diskuse, cvičení a těžké praktické cvičení
Yocto Project
28 hodinyV tomto živém školení vedeném instruktorem v České republice se účastníci naučí, jak vytvořit systém sestavení pro embedded Linux založený na Yocto Project.
Na konci tohoto školení budou účastníci schopni:
- Porozumět základním konceptům sestavení Yocto Project systému, včetně receptů, metadat a vrstev.
- Vytvořte obrázek Linux a spusťte jej v emulaci.
- Ušetřete čas a energii budováním vestavěných Linux systémů.
The Yocto Project - An Overview - hands-on
28 hodinyPopis
Toto čtyřdenní školení kombinuje teorii s praktickými cvičeními s cílem představit Yocto Project.
Odpovídá na často kladené otázky jako:
- Je opravdu nutné používat jinou verzi toolchainu/knihoven/balíčků pro každý a každý projekt GNU/Linux a navíc pro sledování jiného pracovního postupu?
- Dokážete zajistit, že vývojové prostředí bude identické pro všechny vývojáře/dodavatele a že za 10+ let budete moci stále vyrábět identická sestavení jako dnes?
- Může YP pomoci zjistit, na základě jakých softwarových licencí jsou licencovány balíčky, které používáte?
Praktická sezení se provádějí na cílovém hardwaru (např. Beagle Bone Black Rev. C – http://beagleboard.org/BLACK). Po školení si budete moci stáhnout docker image s Ubuntu 14.x a všemi předinstalovanými závislostmi plus příklady, abyste mohli pracovat s materiálem kurzu ve svých vlastních laboratořích. Upozorňujeme, že toto není úvodní kurz Embedded GNU/Linux. Už byste měli vědět, jak Embedded GNU/Linux funguje a jak nakonfigurovat/sestavit jádro GNU/Linux a ovladače jádra.
Kdo by se měl zúčastnit?
GNU/Linux již používáte pro své projekty a pravděpodobně jste o Yocto Project slyšeli, ale neodvážili jste se na to blíže podívat nebo měli potíže s jeho používáním. Nevíte, zda a jak lze váš každodenní pracovní postup začlenit do YP a obecně vám YP připadá poněkud komplikovaný. Proč to všechno potřebujeme, když vědět všechno bylo (prý) mnohem jednodušší? Po školení byste měli být schopni se rozhodnout, zda potřebujete YP nebo ne. Workshop je zaměřen na softwarové, vývojové, systémové inženýry, testery, administrátory, inženýry a další strany, které se zajímají o YP, s dobrou znalostí Embedded GNU/Linux.