Wydajne systemy wbudowane w języku C. Niskopoziomowe programowanie mikrokontrolerów ARM Mikstat

Systemy wbudowane sterują niemal każdym nowoczesnym urządzeniem, dlatego umiejętność tworzenia wydajnego i niezawodnego oprogramowania wbudowanego jest niezwykle cenna. Mówimy tu o sprzęcie AGD, systemach sterowania przemysłowego czy urządzeniach IoT. Potrzebują one oprogramowania, które …

od 61,95 Najbliżej: 17 km

Liczba ofert: 4

Oferta sklepu

Opis

Systemy wbudowane sterują niemal każdym nowoczesnym urządzeniem, dlatego umiejętność tworzenia wydajnego i niezawodnego oprogramowania wbudowanego jest niezwykle cenna. Mówimy tu o sprzęcie AGD, systemach sterowania przemysłowego czy urządzeniach IoT. Potrzebują one oprogramowania, które bezpośrednio współpracuje ze sprzętem. Tworzenie takiego kodu nie jest jednak łatwe wymaga zmiany podejścia i dyscypliny. Ta książka pomoże Ci opanować sprzętowe zawiłości mikrokontrolerów. Dowiesz się, jak czytać podręczniki i dokumentację, co pozwoli Ci na dogłębne zrozumienie technologii. Nauczysz się od podstaw pisać zoptymalizowany kod i oswoisz się z manipulowaniem rejestrami. Zamiast podążać na skróty, zaczniesz świadomie pisać oprogramowanie układowe, co utoruje Ci drogę do zawodowego mistrzostwa. Po lekturze książki zdobędziesz umiejętności czytania kart katalogowych, wykonywania operacji na rejestrach i tworzenia zoptymalizowanego kodu. Uzyskasz też pewność siebie potrzebną do poruszania się po meandrach sprzętu i samodzielnego pisania zoptymalizowanego oprogramowania układowego. Dzięki temu staniesz się biegłym i samodzielnym programistą systemów wbudowanych. Najciekawsze zagadnienia: zoptymalizowane oprogramowanie układowe manipulowanie rejestrami i pisanie optymalnego kodu łożone zagadnienia dotyczące sprzętu tworzenie niskopoziomowych sterowników układów peryferyjnych zapewnianie energooszczędności systemów wbudowanych Zrozum, jak naprawdę działa oprogramowanie sterujące współczesną elektroniką! Spis treści: O autorze O recenzencie Przedmowa Wstęp Rozdział 1. Przygotowywanie warsztatu pracy Wymagania techniczne Podstawowe narzędzia do tworzenia oprogramowania dla mikrokontrolerów Instalacja STM32CubeIDE Instalacja GNU Arm Embedded Toolchain Instalacja OpenOCD Płytka rozwojowa Funkcje płytki rozwojowej Przegląd płytki rozwojowej NUCLEO-F411 Karty katalogowe i instrukcje - odkrywanie szczegółów Dokumentacja STMicroelectronics Ogólny przewodnik użytkownika ARM Pobieranie dokumentów Praca w środowisku STM32CubeIDE Ikony sterujące Podsumowanie Rozdział 2. Konstruowanie rejestrów układów peryferyjnych na podstawie adresów pamięci Wymagania techniczne Różne metody tworzenia oprogramowania układowego HAL LL Programowanie niskopoziomowe w C Asembler Komponenty na płytce rozwojowej Lokalizowanie połączenia diody LED Lokalizowanie połączenia przycisku użytkownika Lokalizowanie goldpinów i złączy kompatybilnych z Arduino Definiowanie i tworzenie rejestrów na podstawie dokumentacji Lokalizowanie portu GPIO PORTA Bramkowanie zegara AHB1 ENR Ustawianie i zerowanie bitów w rejestrach Rejestr trybu portu GPIO (GPIOx_MODER) Rejestr danych wyjściowych portu GPIO (GPIOx_ODR) Manipulowanie rejestrami - od konfiguracji do uruchomienia pierwszego programu Definicje rejestrów Przyrostek UL Funkcja main Podsumowanie Rozdział 3. Proces budowania programów i eksplorowanie narzędzi GNU Wymagania techniczne Podstawy - proces budowania oprogramowania wbudowanego Etap przetwarzania wstępnego Etap kompilacji Etap asemblacji Etap konsolidacji Etap lokalizacji Przegląd narzędzi GNU dla systemów wbudowanych arm-none-eabi-gcc Często używane flagi kompilatora Niektóre flagi specyficzne dla architektury Inne polecenia w zestawie narzędzi GNU Arm Embedded Toolchain Od IDE do wiersza poleceń - analiza procesu budowania programu Proces budowania oprogramowania z perspektywy IDE Kompilacja plików asemblera i C Praca z narzędziami binarnymi GNU Wgrywanie oprogramowania układowego do mikrokontrolera za pomocą OpenOCD Podsumowanie Rozdział 4. Tworzenie skryptu linkera i pliku startowego Wymagania techniczne Model pamięci STM32 Pamięć flash SRAM Pamięć układów peryferyjnych Skrypt linkera Proces konsolidacji Kluczowe elementy skryptu linkera Dyrektywy w skrypcie linkera Stałe w skryptach linkera Symbole w skryptach linkera Pisanie skryptu linkera i pliku startowego Regiony pamięci, do których wczytywane są poszczególne sekcje Przerwania i tablica wektorów Pisanie skryptu linkera Pisanie pliku startowego Testowanie skryptu linkera i pliku startowego Podsumowanie Rozdział 5. System Make Wymagania techniczne Wprowadzenie do systemów budowania oprogramowania Make Maven System budowania Make Podstawy systemu Make Instalowanie i konfigurowanie systemu Make Tworzenie plików Makefile dla projektów oprogramowania układowego Testowanie pliku Makefile Stosowanie zmiennych specjalnych i zdefiniowanych przez użytkownika Podsumowanie Rozdział 6. Common Microcontroller Software Interface Standard (CMSIS) Wymagania techniczne Definiowanie rejestrów układów peryferyjnych za pomocą struktur C Uzyskiwanie adresu bazowego i przesunięć rejestrów Implementowanie struktur układów peryferyjnych Dostęp do rejestrów oparty na strukturach Omówienie CMSIS Czym jest CMSIS? Kluczowe elementy CMSIS Zasady kodowania CMSIS Pliki CMSIS-Core Przygotowywanie wymaganych plików CMSIS Dołączanie odpowiednich plików nagłówkowych Praca z plikami CMSIS Podsumowanie Rozdział 7. Wejście-wyjście ogólnego przeznaczenia (GPIO) Wymagania techniczne Układ peryferyjny GPIO Rejestry GPIO w mikrokontrolerach STM32 Rejestr trybu GPIO (GPIOx_MODER) Rejestr danych wyjściowych GPIO (GPIOx_ODR) oraz rejestr danych wejściowych GPIO (GPIOx_IDR) Rejestr ustawiania/zerowania bitów GPIO (GPIOx_BSRR) Rejestry alternatywnych funkcji GPIO (GPIOx_AFRL i GPIOx_AFRH) Tworzenie sterowników wejścia i wyjścia Sterownik wyjścia GPIO wykorzystujący rejestr BSRR Sterownik wejścia GPIO Podsumowanie Rozdział 8. Timer systemowy (SysTick) Wymagania techniczne Wprowadzenie do timera SysTick Przegląd timera SysTick Rejestry timera SysTick Tworzenie sterownika timera SysTick Podsumowanie Rozdział 9. Timery ogólnego przeznaczenia (TIM) Wymagania techniczne Wprowadzenie do timerów i ich zastosowań Typowe zastosowania timerów Pomiar interwałów czasowych Generowanie opóźnień Wyzwalanie zdarzeń Timery STM32 Wprowadzenie do timerów ogólnego przeznaczenia i timerów zaawansowanych Jak działają timery w mikrokontrolerach STM32? Tworzenie sterownika timera Podsumowanie Rozdział 10. Protokół uniwersalnego asynchronicznego odbiornika-nadajnika (UART) Wymagania techniczne Wprowadzenie do protokołów komunikacyjnych Czym są protokoły komunikacyjne? Porównanie interfejsów UART, SPI i I2C Typowe zastosowania protokołów UART, SPI i I2C Przegląd protokołu UART Czym jest UART? Interfejs Jak działa UART? Układ peryferyjny UART w mikrokontrolerze STM32F4 Tworzenie sterownika UART Podsumowanie Rozdział 11. Przetwornik analogowo-cyfrowy (ADC) Wymagania techniczne Podstawy konwersji analogowo-cyfrowej Czym jest konwersja analogowo-cyfrowa? Kluczowe parametry ADC - rozdzielczość, wielkość kroku kwantyzacji oraz napięcie referencyjne (VREF) Układ peryferyjny ADC w mikrokontrolerze STM32F4 Kanały ADC Kanały zwykłe i wstrzykiwane w przetwornikach ADC mikrokontrolerów STM32F411 Kluczowe rejestry i flagi ADC 1. rejestr sterujący ADC (ADC_CR1) 2. rejestr sterujący ADC (ADC_CR2) Rejestr sekwencji zwykłej ADC (ADC_SQRx) Rejestr danych ADC (ADC_DR) Rejestr statusu ADC (ADC_SR) Kluczowe flagi ADC Tworzenie sterownika ADC Identyfikowanie pinów GPIO na użytek ADC Podsumowanie Rozdział 12. Serial Peripheral Interface (SPI) Wymagania techniczne Przegląd protokołu SPI Czym jest SPI? Kluczowe cechy protokołu SPI Interfejs SPI Jak działa SPI? CPHA i CPOL Tryby danych Prędkość SPI Układ peryferyjny SPI w mikrokontrolerze STM32F4 Kluczowe cechy Kluczowe rejestry SPI Tworzenie sterownika SPI Zdefiniowane makra Inicjalizacja pinów GPIO na użytek SPI Konfiguracja SPI1 Wysyłanie danych przez SPI Odbieranie danych przez SPI Zarządzanie linią SS Plik nagłówkowy Akcelerometr ADXL345 Kluczowe pojęcia - statyczne przyspieszenie grawitacyjne, wykrywanie nachylenia oraz przyspieszenie dynamiczne Tworzenie sterownika akcelerometru ADXL345 Podsumowanie Rozdział 13. Inter-Integrated Circuit (I2C) Wymagania techniczne Przegląd protokołu I2C Czym jest I2C? Układ peryferyjny I2C w mikrokontrolerach STM32F4 Kluczowe rejestry I2C Tworzenie sterownika I2C Podsumowanie Rozdział 14. Przerwania i zdarzenia zewnętrzne (EXTI) Wymagania techniczne Przerwania i ich rola w oprogramowaniu układowym Czym są przerwania? Jak działają przerwania? Znaczenie przerwań w oprogramowaniu układowym Przerwania a wyjątki Analiza porównawcza: rozwiązania oparte na przerwaniach a rozwiązania oparte na odpytywaniu Kontroler EXTI w STM32 Kluczowe cechy EXTI Odwzorowywanie zewnętrznych linii przerwań/zdarzeń Tworzenie sterownika EXTI EXTI_IMR EXTI_RTSR EXTI_FTSR Rejestr przerwań oczekujących (EXTI_PR) Sterownik EXTI Podsumowanie Rozdział 15. Zegar czasu rzeczywistego (RTC) Wymagania techniczne Zegary RTC Jak działają zegary RTC? Typowe zastosowania zegarów RTC Moduł RTC w mikrokontrolerach STM32 Główne cechy modułu RTC w STM32F4 Kluczowe elementy modułu RTC w STM32F4 Kluczowe rejestry RTC Rejestr czasu RTC (RTC_TR) Rejestr daty RTC (RTC_DR) Rejestr sterujący RTC (RTC_CR) Rejestr inicjalizacji i statusu RTC (RTC_ISR) Rejestr preskalera RTC (RTC_PRER) Rejestry alarmów RTC (RTC_ALRMAR i RTC_ALRMBR) Rejestr timera wybudzania RTC (RTC_WUTR) Tworzenie sterownika RTC Plik implementacji RTC Format BCD Plik nagłówkowy Główny plik Podsumowanie Rozdział 16. Niezależny watchdog (IWDG) Wymagania techniczne Watchdogi Czym są watchdogi? Jak działa watchdog? Typowe zastosowania Typy watchdogów IWDG w mikrokontrolerach STM32 Kluczowe cechy IWDG Jak działa IWDG? Rejestry IWDG Tworzenie sterownika IWDG Plik implementacji IWDG Plik nagłówkowy Główny plik Testowanie projektu Podsumowanie Rozdział 17. Bezpośredni dostęp do pamięci (DMA) Wymagania techniczne Bezpośredni dostęp do pamięci (DMA) Jak działa DMA? Kluczowe cechy Typowe zastosowania Moduły DMA mikrokontrolera STM32F4 Kluczowe cechy kontrolera DMA w mikrokontrolerze STM32F4 Tryby transferu Tryby danych DMA Schemat blokowy modułu DMA w mikrokontrolerze STM32F4 Kluczowe rejestry DMA w mikrokontrolerach STM32 Tworzenie sterownika DMA Sterownik DMA dla przetwornika ADC Sterownik DMA dla układu UART Sterownik DMA do transferu danych między obszarami pamięci Podsumowanie Rozdział 18. Zarządzanie energią i efektywność energetyczna w systemach wbudowanych Wymagania techniczne Przegląd technik zarządzania energią Dynamiczne skalowanie napięcia i częstotliwości (DVFS) Bramkowanie zegara Bramkowanie zasilania Tryby niskiego poboru mocy Studium przypadku 1. Energooszczędny smartwatch Studium przypadku 2. Monitor środowiskowy zasilany energią słoneczną Tryby niskiego poboru mocy w mikrokontrolerze STM32F4 Źródła i wyzwalacze wybudzania w STM32F4 Źródła wybudzania Kwestie praktyczne Tworzenie sterownika do wchodzenia w stan gotowości i wybudzania mikrokontrolera Podsumowanie Skorowidz O autorze: Israel Gbati jest wybitnym inżynierem oprogramowania wbudowanego, przedsiębiorcą i nagradzanym wynalazcą. Założył firmy EmbeddedExpertIO i BioStealthAI. Jest znany z tego, że chętnie dzieli się wiedzą z innymi specjalistami, a także ze zdolności przywódczych i z zaangażowania w rozwój innowacji technologicznych.

Specyfikacja

Podstawowe informacje

Autor
  • Israel Gbati
Wydawnictwo
  • Helion
Okładka
  • Miękka
Format
  • 235x165mm
Rok wydania
  • 2026
Ilość stron
  • 384
Tematyka
  • Programowanie
ISBN
  • 9788328933446