Promocja!

SYSTEMY WBUDOWANE WZORCE PROJEKTOWE DLA TWÓRCÓW OPROGRAMOWANIA

Pierwotna cena wynosiła: 89.00zł.Aktualna cena wynosi: 80.10zł.

Na stanie

Spis treści
Przedmowa

Rozdział 1. Wprowadzenie

Tworzenie systemów wbudowanych
Kompilatory i języki
Debugowanie
Ograniczenia zasobów
Zasady radzenia sobie z tymi problemami
Prototypy i płytki dla makerów
Dalsza lektura

Rozdział 2. Tworzenie architektury systemu

Pierwsze kroki
Tworzenie diagramów systemu
Diagram kontekstowy
Diagram blokowy
Organigram
Diagram warstwowy
Projektowanie pod kątem zmian
Enkapsulacja modułów
Delegowanie zadań
Interfejs sterownika: open, close, read, write, ioctl
Wzorzec adaptera
Tworzenie interfejsów
Przykład: interfejs rejestrowania zdarzeń
Zabawa w piaskownicy
Z powrotem do tablicy
Dalsza lektura

Rozdział 3. Praca ze sprzętem

Integracja sprzętu i oprogramowania
Idealny przepływ projektu
Projekt sprzętu
Uruchamianie płytki
Czytanie arkusza danych
Sekcje arkusza danych, których będziesz potrzebować, kiedy coś pójdzie nie tak
Sekcje arkusza danych przeznaczone dla twórców oprogramowania
Ewaluacja komponentów z użyciem arkusza danych
Twój procesor jest językiem
Czytanie schematu
Ćwiczenie z czytania schematów: Arduino!
Bezpieczeństwo płytki
Tworzenie własnego przybornika diagnostycznego
Multimetr cyfrowy
Oscyloskopy i analizatory stanów logicznych
Przygotowywanie oscyloskopu do pracy
Testowanie sprzętu (i oprogramowania)
Budowanie testów
Przykład testu pamięci flash
Polecenie i odpowiedź
Wzorzec polecenia
Obsługa błędów
Spójna metodyka
Przepływ sprawdzania błędów
Biblioteka do obsługi błędów
Diagnozowanie błędów związanych z zależnościami czasowymi
Dalsza lektura

Rozdział 4. Wejścia, wyjścia i timery

Obsługa rejestrów
Matematyka binarna i szesnastkowa
Operacje bitowe
Testowanie, ustawianie, zerowanie i przełączanie
Przełączanie wyjścia
Konfigurowanie pinu jako wyjścia
Włączanie diody LED
Miganie diodą LED
Rozwiązywanie problemów
Oddzielanie sprzętu od działań
Plik nagłówkowy specyficzny dla płytki
Kod obsługi wejścia-wyjścia
Pętla główna
Wzorzec fasady
Wejście w wejściu-wyjściu
Chwilowe naciśnięcie przycisku
Przerwanie przy naciśnięciu przycisku
Konfigurowanie przerwania
Eliminowanie drgań styków
Niepewność w czasie wykonania
Zwiększanie elastyczności kodu
Wstrzykiwanie zależności
Używanie timera
Elementy timera
Odrobina matematyki
Więcej matematyki: trudna częstotliwość docelowa
Długie oczekiwanie między tyknięciami timera
Używanie timera
Modulacja szerokości impulsów
Oddawanie gotowego produktu
Dalsza lektura

Rozdział 5. Przerwania

Kurczak naciska przycisk
Wystąpienie przerwania
Przerwania niemaskowalne
Priorytet przerwań
Zagnieżdżone przerwania
Zapisywanie kontekstu
Pobieranie ISR z tablicy wektorów
Inicjalizacja tablicy wektorów
Wyszukiwanie procedury ISR
Wywoływanie procedury ISR
Wiele źródeł jednego przerwania
Wyłączanie przerwań
Sekcje krytyczne
Przywracanie kontekstu
Konfigurowanie przerwań
Kiedy używać przerwań, a kiedy nie
Jak unikać używania przerwań
Odpytywanie
Tyknięcie systemowe
Zdarzenia oparte na czasie
Malutka usługa harmonogramowania
Dalsza lektura

Rozdział 6. Zarządzanie przepływem aktywności

Harmonogramowanie i podstawy systemu operacyjnego
Zadania
Komunikacja między zadaniami
Unikanie wyścigów
Inwersja priorytetów
Maszyny stanów
Przykład maszyny stanów: kontroler sygnalizacji świetlnej
Maszyna stanów skupiona na stanach
Skupiona na stanach maszyna stanów z ukrytymi przejściami
Maszyna stanów skupiona na zdarzeniach
Wzorzec stanu
Maszyna stanów sterowana tabelą
Wybieranie implementacji maszyny stanów
Watchdog
Pętle główne
Odpytywanie i czekanie
Przerwanie timera
Przerwania robią wszystko
Przerwania powodują zdarzenia
Malutka usługa harmonogramowania
Obiekty aktywne
Dalsza lektura

Rozdział 7. Komunikacja z urządzeniami peryferyjnymi

Komunikacja szeregowa
Szeregowe łącze TTL
Szeregowe łącze RS-232
SPI
I2C i TWI
1-Wire
Łącze równoległe
Podwójna i poczwórna magistrala SPI
USB
Inne protokoły
Komunikacja w praktyce
Przykład użycia zewnętrznego przetwornika ADC: sygnalizacja gotowości danych w SPI
Używanie kolejki FIFO (jeśli jest dostępna)
Bezpośredni dostęp do pamięci (DMA)
Przykład użycia zewnętrznego przetwornika ADC: SPI i DMA
Bufory okrężne
Dalsza lektura

Rozdział 8. Budowanie systemu

Macierze klawiszy
Wyświetlacze segmentowe
Wyświetlacze pikselowe
Zasoby graficzne
Zmienne dane? Wzorce pyłku i fabryki
Zewnętrzna pamięć flash
Zasoby graficzne
Emulacja pamięci EEPROM i magazyny KV
Małe systemy plików
Przechowywanie danych
Sygnały analogowe
Czujniki cyfrowe
Obsługa danych
Zmienianie algorytmów: strategia
Etapy algorytmu: potoki i filtry
Obliczanie potrzeb: szybkości i przepustowości
Przepustowość danych
Przepustowość pamięci i buforowanie danych
Dalsza lektura

Rozdział 9. Wpadanie w kłopoty

Walka z optymalizacjami kompilatora
Niemożliwe usterki
Odtwarzanie usterki
Wyjaśnianie usterki
Wywołanie chaosu i twardych błędów
Dzielenie przez zero
Mówienie do rzeczy, których nie ma
Wykonywanie niezdefiniowanych instrukcji
Niepoprawny dostęp do pamięci (niewyrównany dostęp)
Zwracanie wskaźnika do pamięci na stosie
Przepełnienia stosu i przepełnienia buforów
Diagnozowanie twardych błędów
Rejestry procesora: co poszło nie tak?
Tworzenie zrzutu rdzenia
Używanie zrzutu rdzenia
Po prostu bardzo trudne usterki
Konsekwencje pomysłowości
Dalsza lektura

Rozdział 10. Budowanie urządzeń podłączonych do sieci

Zdalna łączność
Połączenie bezpośrednie: Ethernet i WiFi
Połączenie przez bramę
Połączenie przez sieć kratową
Niezawodna komunikacja
Wersja!
Sumy kontrolne, kody CRC, skróty
Szyfrowanie i uwierzytelnianie
Analiza ryzyka
Aktualizowanie kodu
Bezpieczeństwo aktualizacji oprogramowania
Wiele części kodu
Koło ratunkowe
Wdrażanie etapowe
Zarządzanie dużymi systemami
Produkcja
Dalsza lektura

Rozdział 11. Więcej za mniej

Za mało przestrzeni kodu
Czytanie pliku mapy (część 1.)
Proces eliminacji
Biblioteki
Funkcje kontra makra: które są mniejsze?
Stałe i łańcuchy
Za mało pamięci RAM
Usuń wywołania malloc
Czytanie pliku mapy (część 2.)
Rejestry i zmienne lokalne
Łańcuchy wywołań funkcji
Zalety i wady zmiennych globalnych: pamięć RAM kontra stos
Nakładająca się pamięć
Za mało szybkości
Profilowanie
Optymalizacja pod kątem cykli procesora
Podsumowanie
Dalsza lektura

Rozdział 12. Matematyka

Identyfikowanie szybkich i powolnych operacji
Obliczanie średniej
Inne średnie: średnia kumulacyjna i mediana
Użycie istniejącego algorytmu
Projektowanie i modyfikowanie algorytmów
Rozkład wielomianów na czynniki
Szereg Taylora
Dzielenie przez stałą
Skalowanie wejścia
Tabele wyszukiwania
Udawane liczby zmiennoprzecinkowe
Liczby wymierne
Precyzja
Dodawanie (i odejmowanie)
Mnożenie i dzielenie
Uczenie maszynowe
Poszukaj odpowiedzi!
Dalsza lektura

Rozdział 13. Ograniczanie zużycia energii

Pobór mocy
Pomiar poboru mocy
Projektowanie pod kątem niższego poboru mocy
Wyłączaj światło, kiedy wychodzisz z pokoju
Wyłącz urządzenia peryferyjne
Wyłącz nieużywane linie wejścia-wyjścia
Wyłącz podsystemy procesora
Zwolnij, aby oszczędzić energię
Usypianie procesora
Model przepływu kodu opartego na przerwaniach
Bliższe spojrzenie na pętlę główną
Watchdog procesora
Unikanie częstych pobudek
Połączone procesory
Dalsza lektura

Rozdział 14. Silniki i ruch

Powodowanie ruchu
Kodowanie pozycji
Sterowanie prostym silnikiem prądu stałego z użyciem PWM
Sterowanie silnikiem
Sterowanie PID
Profile ruchu
Dziesięć rzeczy, których nienawidzę w silnikach
Dalsza lektura

 

Autor

ISBN

978-83-289-1829-0

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „SYSTEMY WBUDOWANE WZORCE PROJEKTOWE DLA TWÓRCÓW OPROGRAMOWANIA”

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *