J - Helion
ebook
Autor: Stephen OuallineTytuł oryginału: Bare Metal C: Embedded Programming for the Real World
TÅ‚umaczenie: Krzysztof B
ISBN: 978-83-8322-086-4
stron: 328, Format: ebook
Księgarnia: Helion
Cena książki: 87,00 zł
Książka będzie dostępna od maja 2023
Tagi: C - Programowanie
C to najcz
Zobacz także:
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 98,98 zł, (39,59 zł -60%)
- Internet rzeczy. Podstawy programowania aplikacji i serwer 99,00 zł, (49,50 zł -50%)
- Nowoczesny C. Przegl 119,00 zł, (59,50 zł -50%)
- Efektywny C. Wprowadzenie do profesjonalnego programowania 69,00 zł, (34,50 zł -50%)
- Język C. Solidna wiedza w praktyce. Wydanie VIII 199,00 zł, (99,50 zł -50%)
Spis treści
Język C w programowaniu urządzeń. Praktyczna nauka tworzenia kodu dla systemów wbudowanych eBook -- spis treści
Wprowadzenie
I. Programowanie systemów wbudowanych
- 1. Witaj, świecie
- Instalowanie GCC
- Pobieranie programu System Workbench for STM32
- Pierwszy program
- Kompilowanie programu
- PopeÅ‚nianie bÅ‚Ä™dów
- Zrozumienie działania programu
- Dodawanie komentarzy
- Ulepszanie programu i procesu jego budowania
- Program "make"
- Flagi kompilatora
- Jak kompilator działa za kulisami
- Preprocesor
- Kompilator
- Asembler
- Konsolidator
- Dodawanie reguł do pliku Makefile
- Podsumowanie
- Pytania
- 2. Prezentacja zintegrowanego środowiska programistycznego
- Korzystanie z programu System Workbench for STM32
- Uruchamianie środowiska IDE
- Tworzenie programu "Witaj, świecie"
- Debugowanie programu
- Co zrobiło środowisko IDE
- Importowanie przykÅ‚adowych programów opisanych w tej książce
- Podsumowanie
- Problemy programistyczne
- Pytania
- Korzystanie z programu System Workbench for STM32
- 3. Programowanie mikrokontrolera
- PÅ‚ytka rozwojowa NUCLEO-F030R8
- Programowanie i debugowanie na płytce
- Konfigurowanie płytki
- Konfigurowanie projektu dla systemu wbudowanego
- Twój pierwszy program dla systemu wbudowanego
- Inicjacja sprzętu
- Programowanie pinu GPIO
- Przełączanie diody LED
- Budowanie kompletnego programu
- Analiza procesu budowania
- Analiza plików projektu
- Debugowanie aplikacji
- Wykonywanie programu krok po kroku
- Podsumowanie
- Problemy programistyczne
- Pytania
- PÅ‚ytka rozwojowa NUCLEO-F030R8
- 4. Liczby i zmienne
- Praca z liczbami całkowitymi
- Deklarowanie zmiennych do przechowywania liczb całkowitych
- Nadawanie wartości zmiennym
- Inicjowanie zmiennych
- Rozmiary i reprezentacje liczb całkowitych
- Reprezentacje liczb
- Standardowe liczby całkowite
- Typy całkowitoliczbowe bez znaku
- Przepełnienie
- Reprezentacja liczb caÅ‚kowitych ze znakiem metodÄ… uzupeÅ‚nieÅ„ do dwóch
- Skrócone operatory
- Sterowanie mapowanymi w pamięci rejestrami we/wy za pomocą operacji bitowych
- Alternatywa
- Koniunkcja
- Negacja
- Alternatywa wykluczajÄ…ca
- Przesunięcie
- Definiowanie znaczenia bitów
- Nadawanie wartoÅ›ci dwóm bitom naraz
- Wyłączanie bitu
- Sprawdzanie wartoÅ›ci bitów
- Podsumowanie
- Problemy programistyczne
- Praca z liczbami całkowitymi
- 5. Instrukcje decyzyjne i sterujÄ…ce
- Instrukcja if
- Instrukcja if/else
- Instrukcje pętli
- Pętla while
- Pętla for
- Używanie przycisku
- Inicjacja
- Wybór ukÅ‚adu ze Å›ciÄ…ganiem
- Pobieranie stanu przycisku
- Uruchomienie programu
- Sterowanie pętlą
- Instrukcja break
- Instrukcja continue
- Antywzorce
- Pusta pętla while
- Przypisanie w pętli while
- Podsumowanie
- Problemy programistyczne
- 6. Tablice, wskaźniki i łańcuchy
- Tablice
- "Pod maską": wskaźniki
- Arytmetyka tablic i wskaźników
- Przepełnienie tablicy
- Znaki i ich łańcuchy
- Podsumowanie
- Problemy programistyczne
- Tablice
- 7. Zmienne lokalne i procedury
- Zmienne lokalne
- Przesłonięte zmienne
- Procedury
- Ramki stosu
- Rekurencja
- Styl programowania
- Podsumowanie
- Problemy programistyczne
- 8. Złożone typy danych
- Wyliczenia
- Sztuczki preprocesora a wyliczenia
- Struktury
- Struktury w pamięci
- DostÄ™p do niewyrównanych danych
- Inicjacja struktur
- Przypisywanie struktury
- Wskaźniki do struktur
- Nazewnictwo struktur
- Unie
- Tworzenie własnego typu
- Struktury a programowanie systemów wbudowanych
- typedef
- Wskaźniki do funkcji a dyrektywa typedef
- typedef i struct
- Podsumowanie
- Problemy programistyczne
- 9. Wyjście szeregowe w mikrokontrolerze STM
- Wypisywanie znaków Å‚aÅ„cucha jeden po drugim
- Definiowanie własnej funkcji putchar
- Wyjście szeregowe
- Krótka historia komunikacji szeregowej
- Szeregowe "Witaj, świecie!"
- Inicjacja interfejsu UART
- Przesyłanie znaku
- Komunikacja z urzÄ…dzeniem
- Windows
- Linux i macOS
- Podsumowanie
- Problemy programistyczne
- Wypisywanie znaków Å‚aÅ„cucha jeden po drugim
- 10. Przerwania
- Odpytywanie kontra przerwania
- Przerwania w szeregowych operacjach we/wy
- Procedury obsługi przerwań
- Wypisywanie łańcucha za pomocą przerwań
- SzczegóÅ‚y programu
- Koszmar przerwań
- Zwiększanie prędkości przy użyciu bufora
- Funkcja nadawcza
- Procedura obsługi przerwania
- Cały program
- Problem
- Podsumowanie
- Problemy programistyczne
- 11. Konsolidator
- Zadanie konsolidatora
- Modele pamięci stosowane podczas kompilacji i konsolidacji
- Idealny model języka C
- Sekcje niestandardowe
- Proces konsolidacji
- Symbole definiowane przez konsolidator
- Relokacja i konsolidacja plików obiektowych
- Mapa konsolidatora
- Zaawansowane wykorzystanie konsolidatora
- Pamięć flash jako "trwałe" miejsce składowania
- Wiele elementów konfiguracji
- Przykład adaptacji w "warunkach polowych"
- Uaktualnianie oprogramowania układowego
- Podsumowanie
- Problemy programistyczne
- 12. Preprocesor
- Proste makra
- Makra parametryzowane
- Makra z kodem
- Kompilacja warunkowa
- Gdzie definiowane sÄ… symbole
- Symbole w wierszu poleceń
- Symbole predefiniowane
- Pliki dołączane
- Inne dyrektywy preprocesora
- Sztuczki preprocesora
- Podsumowanie
- Problemy programistyczne
- Proste makra
II. Język C na wielkich maszynach
- 13. Pamięć dynamiczna
- Podstawowe operacje przydzielania pamięci ze sterty i wycofywania jej przydziału
- Listy wiÄ…zane
- Dodawanie węzła
- Wypisywanie listy wiÄ…zanej
- Usuwanie węzła
- Składamy to wszystko razem
- Problemy z pamięcią dynamiczną
- Valgrind i AddressSanitizer z GCC
- Podsumowanie
- Problemy programistyczne
- 14. Buforowane plikowe operacje we/wy
- Funkcja printf
- Wypisywanie tabeli znaków ASCII
- Zapis we wstępnie zdefiniowanych plikach
- Odczyt danych
- Szkodliwa funkcja gets
- Otwieranie plików
- Binarne we/wy
- Kopiowanie pliku
- Buforowanie i opróżnianie
- Zamykanie plików
- Podsumowanie
- Problemy programistyczne
- Funkcja printf
- 15. Argumenty poleceń i podstawowe operacje we/wy
- Argumenty poleceń
- Podstawowe operacje we/wy
- Wykonywanie podstawowych operacji we/wy
- Tryb binarny
- Funkcja ioctl
- Podsumowanie
- Problemy programistyczne
- 16. Liczby zmiennoprzecinkowe
- Czym jest liczba zmiennoprzecinkowa?
- Typy zmiennoprzecinkowe
- Automatyczne konwersje
- Problemy zwiÄ…zane z liczbami zmiennoprzecinkowymi
- Błędy zaokrągleń
- Precyzja
- Nieskończoność, wartości nieliczbowe i liczby subnormalne
- Implementacja
- Alternatywne rozwiÄ…zania
- Podsumowanie
- Problemy programistyczne
- Czym jest liczba zmiennoprzecinkowa?
- 17. Programowanie modularne
- Proste moduły
- Problemy związane z prostym modułem
- Kompilowanie modułu
- Cechy dobrego modułu
- Przestrzenie nazw
- Biblioteki
- Program ranlib i konsolidacja biblioteki
- Tryb deterministyczny i niedeterministyczny
- SÅ‚abe symbole
- Podsumowanie
- Problemy programistyczne
- Proste moduły
Posłowie
- Ucz się dobrze pisać
- Ucz się selektywnie czytać
- WspóÅ‚praca i twórcze Å›ciÄ…ganie
- Przydatne otwarte narzędzia
- Cppcheck
- Doxygen
- Valgrind
- SQLite
- Nie przestawaj się uczyć
Dodatek. Lista kontrolna projektu
- Natywny projekt C
- Projekt STM32 Workbench dla urzÄ…dzenia wbudowanego