jezyk-c-w-programowaniu-urzadzen.-praktyczna-nauka-tworzenia-kodu-dla-systemow-wbudowanych full scan.pdf

(5476 KB) Pobierz
Tytuł oryginału: Bare Metal C: Embedded Programming for the Real World
Tłumaczenie: Krzysztof Bąbol (wprowadzenie, rozdz. 1 – 14),
Andrzej Watrak (rozdz. 15 – 17, posłowie, dodatek).
ISBN: 978-83-8322-085-7
Copyright © 2022 by Stephen Oualline. Title of English-language original: Bare Metal C: Embedded
Programming for the Real World, ISBN 9781718501621, published by No Starch Press Inc. 245 8th
Street, San Francisco, California United States 94103.
The Polish-language 1st edition Copyright © 2023 by Helion S.A. under license by No Starch Press Inc.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi
ich właścicieli.
Autor oraz wydawca dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz wydawca nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych
w książce.
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
https://helion.pl/user/opinie/japrsy
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
https://ftp.helion.pl/przyklady/japrsy.zip
Helion S.A.
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 230 98 63
e-mail:
helion@helion.pl
WWW:
https://helion.pl
(księgarnia internetowa, katalog książek)
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
WPROWADZENIE ........................................................................................................................................13
I
PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH ........................ 17
1
WITAJ, ŚWIECIE ...........................................................................................................................................19
Instalowanie GCC ..................................................................................................................................................... 19
Pobieranie programu System Workbench for STM32 ............................................................................... 20
Pierwszy program .................................................................................................................................................... 21
Kompilowanie programu .......................................................................................................................................... 21
Popełnianie błędów .................................................................................................................................................... 22
Zrozumienie działania programu ........................................................................................................................... 23
Dodawanie komentarzy ............................................................................................................................................. 24
Ulepszanie programu i procesu jego budowania ........................................................................................ 25
Program „make” ........................................................................................................................................................... 26
Flagi kompilatora ......................................................................................................................................................... 27
Jak kompilator działa za kulisami ...................................................................................................................... 27
Preprocesor .................................................................................................................................................................... 29
Kompilator ...................................................................................................................................................................... 29
Asembler ......................................................................................................................................................................... 30
Konsolidator ................................................................................................................................................................... 32
Dodawanie reguł do pliku Makefile .................................................................................................................. 33
Podsumowanie ......................................................................................................................................................... 34
Pytania ......................................................................................................................................................................... 34
Kup książkę
Poleć książkę
2
PREZENTACJA ZINTEGROWANEGO ŚRODOWISKA PROGRAMISTYCZNEGO ............................ 35
Korzystanie z programu System Workbench for STM32 ...........................................................................36
Uruchamianie środowiska IDE ................................................................................................................................ 36
Tworzenie programu „Witaj, świecie” .................................................................................................................. 38
Debugowanie programu ............................................................................................................................................ 42
Co zrobiło środowisko IDE .....................................................................................................................................46
Importowanie przykładowych programów opisanych w tej książce ....................................................47
Podsumowanie ..........................................................................................................................................................47
Problemy programistyczne ..................................................................................................................................48
Pytania ..........................................................................................................................................................................48
3
PROGRAMOWANIE MIKROKONTROLERA ........................................................................................... 49
Płytka rozwojowa NUCLEO-F030R8 ...................................................................................................................50
Programowanie i debugowanie na płytce .......................................................................................................... 50
Konfigurowanie płytki ................................................................................................................................................ 51
Konfigurowanie projektu dla systemu wbudowanego ...............................................................................53
Twój pierwszy program dla systemu wbudowanego .................................................................................57
Inicjacja sprzętu ............................................................................................................................................................ 58
Programowanie pinu GPIO ....................................................................................................................................... 59
Przełączanie diody LED .............................................................................................................................................. 60
Budowanie kompletnego programu ..................................................................................................................... 60
Analiza procesu budowania .................................................................................................................................61
Analiza plików projektu ..........................................................................................................................................64
Debugowanie aplikacji ...........................................................................................................................................65
Wykonywanie programu krok po kroku ...........................................................................................................68
Podsumowanie ..........................................................................................................................................................69
Problemy programistyczne ..................................................................................................................................70
Pytania ..........................................................................................................................................................................70
4
LICZBY I ZMIENNE ..................................................................................................................................... 71
Praca z liczbami całkowitymi ..............................................................................................................................72
Deklarowanie zmiennych do przechowywania liczb całkowitych ............................................................. 73
Nadawanie wartości zmiennym ............................................................................................................................. 74
Inicjowanie zmiennych .............................................................................................................................................. 75
Rozmiary i reprezentacje liczb całkowitych ...................................................................................................75
Reprezentacje liczb ..................................................................................................................................................... 77
Standardowe liczby całkowite ................................................................................................................................. 80
Typy całkowitoliczbowe bez znaku ....................................................................................................................... 81
Przepełnienie ................................................................................................................................................................. 82
Reprezentacja liczb całkowitych ze znakiem metodą uzupełnień do dwóch ........................................ 84
Skrócone operatory ..................................................................................................................................................85
6
Spis tre
ś
ci
Kup książkę
Poleć książkę
Sterowanie mapowanymi w pamięci rejestrami we/wy za pomocą operacji bitowych .............. 87
Alternatywa .................................................................................................................................................................... 87
Koniunkcja ...................................................................................................................................................................... 88
Negacja ............................................................................................................................................................................ 89
Alternatywa wykluczająca ........................................................................................................................................ 89
Przesunięcie ................................................................................................................................................................... 90
Definiowanie znaczenia bitów ............................................................................................................................ 91
Nadawanie wartości dwóm bitom naraz ............................................................................................................ 93
Wyłączanie bitu ............................................................................................................................................................ 93
Sprawdzanie wartości bitów .................................................................................................................................... 94
Podsumowanie ......................................................................................................................................................... 96
Problemy programistyczne .................................................................................................................................. 97
5
INSTRUKCJE DECYZYJNE I STERUJĄCE ................................................................................................98
Instrukcja if ................................................................................................................................................................. 98
Instrukcja if/else .................................................................................................................................................... 101
Instrukcje pętli ....................................................................................................................................................... 102
Pętla while ................................................................................................................................................................... 102
Pętla for ........................................................................................................................................................................ 103
Używanie przycisku .............................................................................................................................................. 104
Inicjacja ......................................................................................................................................................................... 106
Wybór układu ze ściąganiem ................................................................................................................................ 106
Pobieranie stanu przycisku .................................................................................................................................... 108
Uruchomienie programu ........................................................................................................................................ 108
Sterowanie pętlą ................................................................................................................................................... 109
Instrukcja break ......................................................................................................................................................... 109
Instrukcja continue ................................................................................................................................................... 110
Antywzorce .............................................................................................................................................................. 110
Pusta pętla while ...................................................................................................................................................... 111
Przypisanie w pętli while ....................................................................................................................................... 111
Podsumowanie ...................................................................................................................................................... 112
Problemy programistyczne ............................................................................................................................... 112
6
TABLICE, WSKAŹNIKI I ŁAŃCUCHY ..................................................................................................... 113
Tablice ....................................................................................................................................................................... 114
„Pod maską”: wskaźniki ......................................................................................................................................... 116
Arytmetyka tablic i wskaźników .......................................................................................................................... 119
Przepełnienie tablicy ............................................................................................................................................... 121
Znaki i ich łańcuchy ............................................................................................................................................. 124
Podsumowanie ...................................................................................................................................................... 126
Problemy programistyczne ............................................................................................................................... 126
Spis tre
ś
ci
7
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin