Szczegóły ebooka

Język C dla małych urządzeń. Krótki kod o wielkich możliwościach

Język C dla małych urządzeń. Krótki kod o wielkich możliwościach

Marc Loy

Ebook

Wydawałoby się, że język C najlepsze lata ma już za sobą. Opracowano w końcu mnóstwo łatwych w użyciu i efektywnych wysokopoziomowych języków programowania. W rzeczywistości język C wciąż okazuje się niezastąpiony do tak ważnych celów, jak programowanie sterowników, systemów operacyjnych, kart graficznych, a także niewielkich mikrokontrolerów o ograniczonych zasobach. Właśnie teraz, w czasach burzliwego rozwoju internetu rzeczy, język C udowadnia swoją przydatność. Wystarczy nauczyć się tworzyć w nim czysty kod o niewielkich rozmiarach.

W tym podręczniku do praktycznej nauki programowania w języku C szczególną uwagę zwrócono na pisanie kodu umożliwiającego uzyskanie wysokiej wydajności w środowiskach o bardzo małych zasobach. Znalazło się tu gruntowne omówienie podstaw dobrego programowania w języku C. Opisano struktury kontrolne, operatory, funkcje i inne elementy składni C, a także zasady dobrego programowania i wzorce, dzięki którym można zmniejszać rozmiar skompilowanego programu. Przeanalizowano również środowisko Arduino, które jest świetną platformą docelową dla niewielkich programów napisanych w C. Zawarte tu informacje przydadzą się jednak każdemu, kto chce się zająć programowaniem dla systemów wbudowanych.

W książce między innymi:

  • podstawy języka C, w tym typy danych, przepływ sterowania i funkcje
  • zarządzanie pamięcią i działanie programów w prostych urządzeniach
  • tworzenie czytelnego i łatwego w utrzymaniu kodu w języku C
  • optymalizacja kodu pod kątem wydajności
  • testowanie istniejących bibliotek i tworzenie własnych

Programowanie niskopoziomowe? Czysta radość z czystego C!

Wstęp

Rozdział 1. Podstawy języka C

  • Mocne i słabe strony języka C
  • Pierwsze kroki
    • Wymagane narzędzia
    • Tworzenie programu "Witaj, świecie"
    • Kompilowanie kodu
    • Uruchamianie kodu
  • Kolejne kroki

Rozdział 2. Przechowywanie danych i wykonywanie instrukcji

  • Instrukcje w języku C
    • Separatory instrukcji
    • Kolejność wykonywania instrukcji
  • Zmienne i typy
    • Uzyskiwanie danych od użytkownika
    • Łańcuchy i znaki
    • Liczby
    • Nazwy zmiennych
    • Przypisywanie zmiennych
  • Funkcje printf() i scanf()
    • Formaty funkcji printf()
    • Formatowanie danych wyjściowych
    • Instrukcja scanf() i parsowanie danych wejściowych
  • Operatory i wyrażenia
    • Operatory arytmetyczne
    • Kolejność działań
    • Rzutowanie typów
  • Kolejne kroki

Rozdział 3. Sterowanie przepływem

  • Wartości logiczne
    • Operatory porównania
    • Operatory logiczne
  • Rozgałęzienia
    • Instrukcja if
    • Instrukcja switch
  • Operator trójargumentowy i przypisanie warunkowe
  • Instrukcje pętli
    • Instrukcja for
    • Instrukcja while
    • Wersja do/while
  • Zagnieżdżanie
    • Zagnieżdżone pętle i obsługa tabel
    • Zakres zmiennych
  • Ćwiczenia
  • Kolejne kroki

Rozdział 4. Bity i wiele bajtów

  • Przechowywanie wielu danych w tablicach
    • Tworzenie i modyfikowanie tablic
    • Łańcuchy
    • Tablice wielowymiarowe
    • Dostęp do elementów w tablicach wielowymiarowych
  • Przechowywanie bitów
    • Liczby dwójkowe, ósemkowe i szesnastkowe
    • Literały ósemkowe i szesnastkowe w języku C
    • Wprowadzanie i wyświetlanie wartości ósemkowych i szesnastkowych
    • Operatory bitowe
  • Łączenie bitów i bajtów
  • Wyniki konwersji
  • Kolejne kroki

Rozdział 5. Funkcje

  • Znane funkcje
  • Działanie funkcji
  • Proste funkcje
  • Przesyłanie informacji do funkcji
    • Przekazywanie typów prostych
    • Przekazywanie łańcuchów do funkcji
    • Różne typy
    • Wychodzenie z funkcji
  • Informacje zwracane
    • Użycie zwracanych wartości
    • Ignorowanie wartości zwracanych
  • Wywołania zagnieżdżone i rekurencja
    • Funkcje rekurencyjne
  • Zakres zmiennych
    • Zmienne globalne
  • Funkcja main()
    • Zwracanie wartości przez funkcję main()
    • Argumenty wiersza poleceń i funkcja main()
  • Kolejne kroki

Rozdział 6. Wskaźniki i referencje

  • Adresowanie w języku C
    • Wartość NULL i błędy związane ze wskaźnikami
    • Tablice
    • Zmienne lokalne i stos
    • Zmienne globalne i sterta
  • Arytmetyka wskaźników
  • Wskaźniki do tablic
  • Funkcje i wskaźniki
  • Zarządzanie pamięcią tablic
    • Przydzielanie pamięci za pomocą malloc()
    • Zwalnianie pamięci za pomocą free()
  • Struktury w języku C
    • Definiowanie struktur
    • Przypisywanie wartości do składowych struktur i dostęp do nich
    • Wskaźniki do struktur
    • Funkcje i struktury
  • Podsumowanie składni wskaźnikowej
  • Kolejne kroki

Rozdział 7. Biblioteki

  • Biblioteka standardowa języka C
    • Nagłówek stdio.h
    • Nagłówek stdlib.h
    • Nagłówek string.h
    • Nagłówek math.h
    • Nagłówek time.h
    • Nagłówek ctype.h
  • Połączenie wszystkich składników
    • Praca z łańcuchami
    • Obliczanie odsetek
  • Wyszukiwanie potrzebnych bibliotek
  • Kolejne kroki

Rozdział 8. Arduino - realne programowanie

  • Zintegrowane środowisko programistyczne Arduino (Windows, Mac, Linux)
    • Instalacja w systemie Windows
    • Instalacja w systemie macOS
    • Instalacja w systemie Linux
  • Pierwszy projekt w Arduino
    • Wybór płytki
    • Witaj, diodo LED!
    • Dodanie zewnętrznej diody LED
  • Biblioteki Arduino
    • Zarządzanie bibliotekami
    • Użycie bibliotek Arduino
  • Szkice Arduino i język C++
    • Obiekty i zmienne języka C++
    • Więcej ćwiczeń z obiektami
    • Rozważania dotyczące języka C++
    • Obiektowe zadanie domowe
  • Kolejne kroki

Rozdział 9. Mniejsze systemy

  • Środowisko Arduino
    • Wartości specjalne
    • Typy specjalne
    • Wbudowane funkcje
    • Przetestowanie możliwości środowiska Arduino
  • Wejścia i wyjścia mikrokontrolera
    • Czujniki i wejście analogowe
    • Monitor portu szeregowego
    • Czy tu jest gorąco?
    • Wyświetlacze wielosegmentowe
    • Przyciski i cyfrowe wejścia
    • Jak bardzo gorąco jest?
  • Zarządzanie pamięcią w środowisku Arduino
    • Pamięć flash (PROGMEM)
    • Pamięć statyczna
    • Pamięć EEPROM
    • Zapamiętywanie wyborów
  • Przerwania
    • Program obsługi przerwania
    • Programowanie sterowane przerwaniami
  • Ćwiczenia
  • Kolejne kroki

Rozdział 10. Szybszy kod

  • Konfiguracja
  • Obliczenia za pomocą liczb zmiennoprzecinkowych i całkowitych
    • Alternatywne rozwiązania do obliczeń zmiennoprzecinkowych
    • Obliczenia matematyczne a brak obliczeń
    • Tabele przeglądowe
    • Obecny stan projektu
  • Potęga potęgi 2
  • Optymalizacje pętli
    • Rozwijanie dla zabawy i zysku
    • Rekurencja i iteracja
  • Typ string i char[]
  • Ostateczna wersja projektu
  • Kolejne kroki

Rozdział 11. Tworzenie własnych bibliotek

  • Tworzenie własnej biblioteki
    • Dyrektywy preprocesora
    • Makra preprocesora
    • Definicje własnych typów
    • Projekt modelu samochodu
  • Projekty wykorzystujące wiele plików
    • Tworzenie plików .ino
    • Pliki nagłówkowe
  • Importowanie bibliotek niestandardowych
    • Implementacja komunikacji
    • Modernizacja samochodu
    • Budowanie urządzenia sterującego modułem radiowym
    • Tworzenie biblioteki
    • Uaktualnienie projektu samochodu
    • Kontrolowanie sytuacji
    • Ale jazda!
    • Dokumentacja i dystrybucja
  • Kolejne kroki

Rozdział 12. Jeszcze dalsze kroki

  • Zagadnienia średnio zaawansowane i zaawansowane
    • Internet rzeczy i Arduino
    • Kody źródłowe dostępne w środowisku Arduino
  • Inne mikrokontrolery
  • Profesjonalne zastosowanie języków C i C++
  • Powrót do przyszłości

Dodatek A. Sprzęt i oprogramowanie

Dodatek B. Opis specyfikatorów formatu

  • Tytuł: Język C dla małych urządzeń. Krótki kod o wielkich możliwościach
  • Autor: Marc Loy
  • Tytuł oryginału: Smaller C: Lean Code for Small Machines
  • Tłumaczenie: Jacek Janusz
  • ISBN: 978-83-283-8632-7, 9788328386327
  • Data wydania: 2022-04-26
  • Format: Ebook
  • Identyfikator pozycji: jcdlam
  • Wydawca: Helion