reklama - zainteresowany?

C++ w systemach wbudowanych. Skuteczna migracja z C do nowoczesnego C++ - Helion

C++ w systemach wbudowanych. Skuteczna migracja z C do nowoczesnego C++
ebook
Autor: Amar Mahmutbegovi
Tytuł oryginału: C++ in Embedded Systems: A practical transition from C to modern C++
Tłumaczenie: Robert G
ISBN: 978-83-289-3561-7
stron: 328, Format: ebook
Data wydania: 2026-04-01
Księgarnia: Helion

Cena książki: 62,30 zł (poprzednio: 89,00 zł)
Oszczędzasz: 30% (-26,70 zł)

Nakład wyczerpany

Tagi: C++ - Programowanie

Programi

Spis treści

C++ w systemach wbudowanych. Skuteczna migracja z C do nowoczesnego C++ eBook -- spis treści

Przedmowa

O autorze

O korektorach merytorycznych

Wprowadzenie

Część 1. Wprowadzenie do języka C++ w programowaniu systemów wbudowanych

  • Rozdział 1. Obalanie popularnych mitów na temat C++
    • Wymogi techniczne
    • Krótka historia języka C++
    • C z klasami
      • Nowoczesny C++
      • Typy generyczne
      • constexpr
    • Nadmiar kodu i obciążenie wydajności
      • Konstruktory i destruktory
      • Optymalizacja
      • Szablony
      • RTTI i wyjątki
    • Podsumowanie
  • Rozdział 2. Wyzwania w systemach wbudowanych o ograniczonych zasobach
    • Wymogi techniczne
    • Systemy wbudowane o znaczeniu krytycznym dla bezpieczeństwa i systemy czasu rzeczywistego
      • Moduł sterowania poduszkami powietrznymi i wymagania dotyczące działania w czasie rzeczywistym
      • Pomiar wydajności i nieprzewidywalności oprogramowania wbudowanego
    • Zarządzanie pamięcią dynamiczną
      • Fragmentacja pamięci
      • Wytyczne bezpieczeństwa o znaczeniu krytycznym podczas dynamicznego zarządzania pamięcią w C++
      • Dynamiczne zarządzanie pamięcią w bibliotece standardowej C++
    • Wyłączanie niepożądanych funkcji C++
    • Podsumowanie
  • Rozdział 3. Ekosystem C++ dla systemów wbudowanych
    • Wymogi techniczne
    • Kompilatory i środowiska programistyczne
      • Środowisko programistyczne Arm Keil MDK i kompilator Arm dla systemów wbudowanych
      • Kompilator IAR C/C++ i środowisko programistyczne IAR Embedded Workbench dla architektury ARM
      • Kompilator GCC oraz zintegrowane środowiska programistyczne producentów
    • Analizatory statyczne
    • Testy jednostkowe
    • Profilowanie
    • Podsumowanie
  • Rozdział 4. Przygotowanie środowiska programistycznego C++ dla projektu wbudowanego
    • Wymogi techniczne
    • Wymagania dla nowoczesnego środowiska programistycznego
      • Kompilator
      • Automatyzacja procesu kompilacji
      • Symulator
      • Edytor kodu
    • Środowisko programistyczne oparte na kontenerach
      • Tworzenie programu "Witaj, świecie!" przy użyciu narzędzia CMake
      • Tworzenie oprogramowania wbudowanego przy użyciu narzędzia CMake
    • Środowisko programistyczne oparte na kontenerach i Visual Studio Code
    • Podsumowanie

Część 2. Podstawy języka C++

  • Rozdział 5. Klasy - podstawowe elementy w C++
    • Wymogi techniczne
    • Hermetyzacja
      • Metody dostępowe
      • Metody statyczne
      • Struktury
    • Inicjalizacja i czas przechowywania
      • Inicjalizacja niestatycznych elementów składowych
      • Inicjalizacja statycznych elementów składowych
    • Dziedziczenie i polimorfizm dynamiczny
      • Funkcje wirtualne
      • Polimorfizm dynamiczny
    • Podsumowanie
  • Rozdział 6. Poza klasami - podstawowe koncepcje C++
    • Wymogi techniczne
    • Przestrzenie nazw
      • Nienazwane przestrzenie nazw
      • Zagnieżdżone przestrzenie nazw
    • Przeciążanie funkcji
    • Współpraca z językiem C
      • Łączenie zewnętrzne i językowe w C++
      • Biblioteka standardowa C w C++
    • Referencje
      • Kategorie wartości
      • Referencje do l-wartości
      • Referencje do r-wartości
    • Algorytmy i kontenery biblioteki standardowej
      • Tablica
      • Adaptery kontenerów
      • Algorytmy
    • Podsumowanie
  • Rozdział 7. Wzmacnianie oprogramowania wbudowanego - praktyczne metody obsługi błędów w C++
    • Wymogi techniczne
    • Kody błędów i asercje
      • Globalna obsługa błędów
      • Asercje
    • Wyjątki
    • std::optional i std::expected
    • Podsumowanie

Część 3. Zaawansowane koncepcje języka C++

  • Rozdział 8. Tworzenie za pomocą szablonów kodu ogólnego i wielokrotnego użytku
    • Wymogi techniczne
    • Podstawy szablonów
      • Wywołanie funkcji szablonowej
      • Specjalizacja szablonu
    • Metaprogramowanie z użyciem szablonów
    • Koncepty
    • Polimorfizm podczas kompilacji
      • Wykorzystanie szablonów klas do polimorfizmu w trakcie kompilacji
      • Wzorzec CRTP
    • Podsumowanie
  • Rozdział 9. Poprawa bezpieczeństwa typów za pomocą silnych typów
    • Wymogi techniczne
    • Konwersja niejawna
      • Promocje i konwersje typów liczbowych
      • Konwersja tablicy na wskaźnik
      • Konwersja funkcji na wskaźnik
    • Konwersja jawna
      • Operator rzutowania const_cast
      • Operator rzutowania static_cast
      • Operator rzutowania dynamic_cast
      • Operator rzutowania reinterpret_cast
    • Silne typy
    • Podsumowanie
  • Rozdział 10. Tworzenie ekspresyjnego kodu za pomocą wyrażeń lambda
    • Wymogi techniczne
    • Podstawy wyrażeń lambda
    • Przechowywanie lambdy za pomocą std::function
      • Wzorzec Polecenie
      • Menedżer przerwań GPIO
    • Szablon klasy std::function i dynamiczna alokacja pamięci
    • Podsumowanie
  • Rozdział 11. Obliczenia w trakcie kompilacji
    • Wymogi techniczne
    • Szablony
    • Specyfikator constexpr
      • Przykład 1. Analizator adresów MAC
      • Przykład 2. Tworzenie tablicy wyszukiwania
    • Specyfikator consteval
    • Podsumowanie

Część 4. Zastosowanie języka C++ do rozwiązywania problemów w systemach wbudowanych

  • Rozdział 12. Tworzenie w C++ warstwy abstrakcji sprzętowej
    • Wymogi techniczne
    • Urządzenia peryferyjne odwzorowane w pamięci
      • Urządzenia peryferyjne standardu CMSIS z odwzorowaniem w pamięci
      • Urządzenia peryferyjne odwzorowane w pamięci w C++
      • Bezpieczne odwzorowanie pamięci urządzeń peryferyjnych w C++
    • Liczniki czasu
    • Podsumowanie
  • Rozdział 13. Praca z bibliotekami C
    • Wymogi techniczne
    • Użycie w projektach tworzonych w C++ warstwy abstrakcji sprzętowej napisanej w C
      • Interfejs UART na potrzeby elastycznego projektowania oprogramowania
      • Interfejs UART we wzorcu Adapter
    • Wprowadzenie do klas statycznych
    • Wykorzystanie techniki RAII do opakowania biblioteki littlefs utworzonej w C
      • LittleFS - system plików dla mikrokontrolerów
      • Klasa opakowująca C++ oparta na wzorcu RAII
      • Lepsze zarządzanie plikami dzięki RAII
    • Podsumowanie
  • Rozdział 14. Ulepszanie pętli głównej programu za pomocą sekwencera
    • Wymogi techniczne
    • Pętla główna programu i powody stosowania sekwencera
    • Projektowanie sekwencera
    • Przechowywanie funkcji wywoływalnej
    • Implementacja sekwencera
    • Podsumowanie
  • Rozdział 15. Praktyczne wzorce - tworzenie systemu publikowania temperatur
    • Wymogi techniczne
    • Wzorzec projektowy Obserwator
    • Implementacja w czasie działania programu
    • Implementacja w trakcie kompilacji programu
      • Wykorzystanie szablonów o zmiennej liczbie argumentów
      • Usprawnianie implementacji na etapie kompilacji
    • Podsumowanie
  • Rozdział 16. Projektowanie skalowalnych automatów skończonych
    • Wymogi techniczne
    • Prosta implementacja automatu skończonego
      • Opisywanie stanów i zdarzeń
      • Śledzenie bieżącego stanu i obsługa zdarzeń - klasa automatu skończonego
      • Korzystanie z klasy ble_fsm
      • Analiza danych wyjściowych
    • Implementacja automatu skończonego przy użyciu wzorca projektowego Stan
      • Interfejsy klas stanów automatu skończonego
      • Refaktoryzacja klasy ble_fsm
      • Implementacja wzorca projektowego Stan
      • Wzorzec projektowy Stan
    • Implementacja wzorca stanu z wykorzystaniem techniki tag dispatching
    • Boost SML
    • Podsumowanie
  • Rozdział 17. Biblioteki i frameworki
    • Wymogi techniczne
    • Biblioteka standardowa
      • Implementacje biblioteki standardowej w GCC
      • Liczby i matematyka
      • Kontenery i algorytmy
      • Metaprogramowanie z użyciem szablonów
      • Elementy biblioteki standardowej, których należy unikać w aplikacjach wbudowanych
    • Biblioteka ETL
      • Kontenery o stałej wielkości
      • Użycie etl::delegate do przechowywania funkcji wywoływalnej
      • Inne narzędzia z ETL
    • Pigweed
      • Przewodnik po bibliotece Pigweed
      • RPC i Protocol Buffers
    • Biblioteka CIB
      • Wykorzystanie CIB do publikowania temperatury
      • Rozbudowa przykładu publikującego temperaturę
    • Podsumowanie
  • Rozdział 18. Programowanie dla wielu platform
    • Wymogi techniczne
    • Znaczenie tworzenia przenośnego kodu
    • Reguły projektowe SOLID
      • Reguła jednej odpowiedzialności
      • Reguła otwarte-zamknięte
      • Zasada podstawień Barbary Liskov
      • Zasada rozdzielania interfejsów
      • Zasada odwrócenia zależności
    • Testowalność
    • Podsumowanie

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2026 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.