Język C w programowaniu urządzeń. Praktyczna nauka tworzenia kodu dla systemów wbudowanych Łasin

C to najczęściej wybierany język do programowania systemów wbudowanych. Pozwala precyzyjnie sterować kontrolerami zawierającymi system w chipie (ang. system on a chip, SOC), które wydają się być wszędzie: od telefonów przez samochody do "inteligentnych" żarówek. Poznanie języka to jednak dopiero …

od 57 Najbliżej: 23 km

Liczba ofert: 1

Oferta sklepu

Opis

C to najczęściej wybierany język do programowania systemów wbudowanych. Pozwala precyzyjnie sterować kontrolerami zawierającymi system w chipie (ang. system on a chip, SOC), które wydają się być wszędzie: od telefonów przez samochody do "inteligentnych" żarówek. Poznanie języka to jednak dopiero połowa sukcesu. Musisz też wiedzieć, jakie operacje w systemie wykonuje ten język. Do zbadania, jak działa kompilator i co dzieje się za kulisami, w książce tej wykorzystywana jest płytka rozwojowa Nucleo z niewielkim, tanim mikroukładem ARM. Dowiesz się, jak pracować z systemem, który ma ograniczoną ilość pamięci i funkcji wejścia/wyjścia, ale jego moc wystarcza do przeprowadzania złożonych operacji. Z książki Język C bezpośrednio na sprzęcie dowiesz się: o podstawach języka C; czym jest liczba (jeśli przyjrzeć się temu dokładniej, nie jest to takie proste); jakie kroki wykonuje kompilator, by przekształcić kod w program wykonywalny; jak pisać kod, który ma bezpośredni dostęp do systemu wejścia/wyjścia; jak pisać procedurę obsługi przerwania - i jak jej nie pisać; Jak programować na "wielkim żelastwie ", w tym: jak korzystać ze sterty, buforowanego systemu wejścia/wyjścia, liczb zmiennoprzecinkowych i innych funkcji wielkich komputerów; Jeśli chcesz się nauczyć języka C albo już go znasz i zamierzasz programować systemy wbudowane, książka Język C bezpośrednio na sprzęcie pokaże Ci właściwą drogę. Wymagania: płytka rozwojowa Nucleo z mikrokontrolerem ARM 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 PodsumowaniePytania2. 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 programistycznePytania3. 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 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 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 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 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 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 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 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 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 O autorze: Steve Oualline od ponad 50 lat pisze niezawodne, prawie bezbłędne programy na systemy wbudowane. Zdobył tytuł magistra inżyniera na Uniwersytecie Południowej Kalifornii i napisał wiele książek wydanych przez O’Reilly i No Starch Press. Obecnie jest wolontariuszem w Muzeum Kolejnictwa Południowej Kalifornii, w którym jego ostatnim przedsięwzięciem było odpluskwianie komputerowego kontrolera systemu sygnalizacji świetlnej Acme (w jego wnętrzu zbudowały sobie gniazdo mrówki i trzeba je było usunąć). Adres jego strony internetowej to http://oualline.com.

Specyfikacja

Podstawowe informacje

Autor
  • Stephen Oualline
Wybrane wydawnictwa
  • Helion
Okładka
  • Miękka
Format
  • 16.5 x 22.8 cm
Rok wydania
  • 2023
Ilość stron
  • 328
Tematyka
  • Programowanie
ISBN
  • 9788383220857