Jezyk_C_dla_mikrokontrolerow_AVR_Od_podstaw_do_zaawansowanych_aplikacji_jcmikr.pdf

(653 KB) Pobierz
Idź do
• Spis treści
• Przykładowy rozdział
• Skorowidz
Katalog książek
• Katalog online
• Zamów drukowany
katalog
Twój koszyk
• Dodaj do koszyka
Cennik i informacje
• Zamów informacje
o nowościach
• Zamów cennik
Czytelnia
• Fragmenty książek
online
Język C dla
mikrokontrolerów AVR.
Od podstaw do
zaawansowanych aplikacji
Autor:
Tomasz Francuz
ISBN: 978-83-246-3064-6
Format: 158×235, stron: 568
Przedstawiamy przebojowy duet – język C i mikrokontroler AVR!
• Poznaj budowę i podstawy programowania mikrokontrolerów
• Dowiedz się, jak do swoich celów wykorzystać język C
• Naucz się rozwiązywać rzeczywiste problemy i tworzyć praktyczne rozwiązania
Mikrokontrolery AVR firmy Atmel
stanowią dynamicznie rozwijającą się rodzinę układów. Dzięki
niskiej cenie, dużym możliwościom i dostępności darmowych narzędzi od lat niezmiennie cieszą
się dużą popularnością wśród hobbystów i osób profesjonalnie zajmujących się programowaniem
mikrokontrolerów.
Pewnym utrudnieniem dla polskich użytkowników AVR jest brak literatury na temat wykorzystania
do ich programowania języków wysokiego poziomu, takich jak C. Niniejsza książka jest próbą
wypełnienia tej luki. W sposób syntetyczny pokazuje różnice pomiędzy programowaniem
w języku C komputerów klasy PC i mikrokontrolerów. Omawia programowanie peryferii
dostępnych w mikrokontrolerach AVR w języku C, bibliotekę standardową oraz jej rozszerzenia
znane jako AVR-libc. Dzięki temu nawet osoby w niewielkim stopniu znające podstawy języka C
będą mogły bez problemów „przesiąść się” na programowanie mikrokontrolerów AVR. Z drugiej
strony książka opisuje zaawansowane techniki programowania, związane z obsługą bootloadera,
zabezpieczaniem i szyfrowaniem kodu aplikacji oraz realizacją najpowszechniej stosowanych
protokołów wymiany danych pomiędzy urządzeniami opartymi na mikrokontrolerach
i komputerami PC. Porusza także tematy związane ze specyfiką pisania aplikacji na
mikrokontrolery oraz wyszukiwaniem i usuwaniem błędów.
Podstawy programowania mikrokontrolerów AVR
• Warsztat pracy programisty AVR
• Wprowadzenie do języka C na AVR
• Budowa programu i jego części składowe
• Korzystanie z zasobów sprzętowych mikrokontrolera
• Używanie rejestrów i różnych rodzajów pamięci
• Zastosowania przetwornika ADC
• Obsługa wyświetlaczy LCD
• Korzystanie z interfejsów
• Zapewnianie bezpieczeństwa kodu
Programowanie mikrokontrolerów jeszcze nigdy nie było tak proste!
Kontakt
Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
© Helion 1991–2011
Spis tre ci
Wstöp ............................................................................................ 11
Kody przykáadów ........................................................................................................... 12
Schematy ........................................................................................................................ 12
Wymagane cz ci ........................................................................................................... 12
Rozdziaä 1. Instalacja rodowiska i potrzebnych narzödzi ................................... 15
Instalacja WinAVR ........................................................................................................ 16
Instalacja AVR Studio .................................................................................................... 17
Systemy GNU/Linux ...................................................................................................... 18
AVR Studio .................................................................................................................... 19
Pierwsza aplikacja .................................................................................................... 21
Dodawanie plików do projektu ................................................................................ 25
Programy narz dziowe ................................................................................................... 27
Linker ....................................................................................................................... 27
Program avr-size ...................................................................................................... 31
Program avr-nm ........................................................................................................ 32
Program avr-objcopy ................................................................................................ 33
Program make .......................................................................................................... 36
Pliki wynikowe ......................................................................................................... 43
Biblioteki ........................................................................................................................ 46
Projekt biblioteki ...................................................................................................... 47
Tworzenie biblioteki ................................................................................................ 48
Doá czanie biblioteki do programu .......................................................................... 49
Funkcje „przestarzaáe” ............................................................................................. 50
Nadpisywanie funkcji bibliotecznych ....................................................................... 50
Usuwanie niepotrzebnych funkcji i danych .............................................................. 51
Rozdziaä 2. Programowanie mikrokontrolera ..................................................... 53
Podá czenie — uwagi ogólne ......................................................................................... 53
Problemy .................................................................................................................. 55
Programatory ISP ........................................................................................................... 55
Budowa programatora .............................................................................................. 56
Programator USBASP .............................................................................................. 59
Kilka procesorów w jednym ukáadzie ...................................................................... 59
Programatory JTAG ....................................................................................................... 60
Programator JTAGICE ............................................................................................. 61
Programator JTAGICE mkII .................................................................................... 62
4
Jözyk C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji
Kilka procesorów w jednym ukáadzie ...................................................................... 62
AVR Dragon ............................................................................................................ 63
Programatory HW i równolegáe ...................................................................................... 63
Tryb TPI ......................................................................................................................... 64
Programowanie procesora w AVR Studio ...................................................................... 64
Programowanie przy pomocy narz dzi dostarczonych przez firm Atmel ..................... 65
Program AVRDUDE ...................................................................................................... 67
Program PonyProg .......................................................................................................... 70
Fusebity i lockbity w AVR-libc ...................................................................................... 70
Lockbity ................................................................................................................... 71
Fusebity .................................................................................................................... 71
Sygnatura ........................................................................................................................ 74
Lockbity w AVR-libc ..................................................................................................... 74
Fusebity w AVR-libc ...................................................................................................... 75
Rozdziaä 3. Podstawy jözyka C na AVR ............................................................. 77
Arytmetyka ..................................................................................................................... 77
Proste typy danych ................................................................................................... 77
Arytmetyka staáopozycyjna ...................................................................................... 81
Arytmetyka zmiennopozycyjna ................................................................................ 87
Operacje bitowe .............................................................................................................. 95
Reprezentacja binarna liczb ...................................................................................... 95
Operacja iloczynu bitowego ..................................................................................... 96
Operacja sumy bitowej ............................................................................................. 97
Operacja sumy wyá czaj cej .................................................................................... 98
Operacja negacji bitowej .......................................................................................... 99
Operacje przesuni ü bitowych ................................................................................ 100
Zasi g zmiennych ......................................................................................................... 100
Zmienne globalne ................................................................................................... 101
Zmienne lokalne ..................................................................................................... 102
Modyfikator const .................................................................................................. 103
Wska niki ............................................................................................................... 104
Tablice .................................................................................................................... 109
Funkcje ......................................................................................................................... 112
Przekazywanie parametrów przez warto ü i referencj .......................................... 114
Wywoáanie funkcji ................................................................................................. 114
Rekurencyjne wywoáania funkcji ........................................................................... 115
Sáowa kluczowe ............................................................................................................ 116
Operatory ............................................................................................................... 116
Instrukcje steruj ce ................................................................................................. 120
Preprocesor ................................................................................................................... 123
Dyrektywa #include ............................................................................................... 124
Dyrektywy kompilacji warunkowej ....................................................................... 124
Dyrektywa #define ................................................................................................. 126
Pliki nagáówkowe i ródáowe ....................................................................................... 127
Definicja a deklaracja ............................................................................................. 128
Sáowo kluczowe static ............................................................................................ 129
Sáowo kluczowe extern .......................................................................................... 130
Dyrektywa inline .................................................................................................... 132
Modyfikator register ............................................................................................... 136
Rozdziaä 4. Sekcje programu .......................................................................... 141
Sekcje danych ............................................................................................................... 142
Sekcja .text ............................................................................................................. 142
Sekcja .data ............................................................................................................ 142
Spis tre ci
5
Sekcja .bss .............................................................................................................. 143
Sekcja .eeprom ....................................................................................................... 143
Sekcje zawieraj ce kod programu ................................................................................ 144
Podsekcje .init[0-9] ................................................................................................ 144
Podsekcje .fini[0-9] ................................................................................................ 145
Sekcje specjalne ............................................................................................................ 146
Sekcje tworzone przez programist .............................................................................. 146
Umieszczanie sekcji pod wskazanym adresem ............................................................. 147
Rozdziaä 5. Kontrola rdzenia i zarzñdzanie poborem energii .............................. 149
ródáa sygnaáu RESET ................................................................................................. 149
Power-on Reset ...................................................................................................... 150
Zewn trzny sygnaá RESET .................................................................................... 151
Brown-out Detector ................................................................................................ 151
Ukáad Watchdog ..................................................................................................... 152
Zarz dzanie poborem energii ....................................................................................... 156
Usypianie procesora ............................................................................................... 157
Wyá czanie ukáadu BOD ........................................................................................ 157
Wyá czanie podsystemów procesora ...................................................................... 158
Preskaler zegara ..................................................................................................... 159
Inne sposoby minimalizowania poboru energii ...................................................... 160
Rozdziaä 6. Dynamiczna alokacja pamiöci ....................................................... 163
Alokacja pami ci w bibliotece AVR-libc ..................................................................... 164
Funkcja malloc ....................................................................................................... 166
Funkcja calloc ........................................................................................................ 166
Funkcja realloc ....................................................................................................... 166
Funkcja free ............................................................................................................ 168
Wycieki pami ci i bá dne u ycie pami ci alokowanej dynamicznie ............................ 169
Jak dziaáa alokator ........................................................................................................ 171
Wykrywanie kolizji sterty i stosu ................................................................................. 172
Metoda I — wáasne funkcje alokuj ce pami ü ....................................................... 173
Metoda II — sprawdzanie ilo ci dost pnej pami ci ............................................... 173
Metoda III — marker ............................................................................................. 173
Metoda IV — wzór w pami ci ............................................................................... 173
Metoda V — wykorzystanie interfejsu JTAG ........................................................ 176
Rozdziaä 7. Wbudowana pamiöè EEPROM ....................................................... 177
Zapobieganie uszkodzeniu zawarto ci pami ci EEPROM ........................................... 178
Kontrola odczytu i zapisu do pami ci EEPROM .......................................................... 179
Odczyt zawarto ci komórki pami ci ...................................................................... 180
Zapis do komórki pami ci ...................................................................................... 180
Dost p do EEPROM z poziomu AVR-libc ................................................................... 181
Deklaracje danych w pami ci EEPROM ................................................................ 182
Funkcje realizuj ce dost p do pami ci EEPROM .................................................. 183
Inne funkcje operuj ce na EEPROM ...................................................................... 185
Techniki wear leveling ................................................................................................. 186
Rozdziaä 8. Dostöp do pamiöci FLASH ............................................................ 189
Typy danych zwi zane z pami ci FLASH .................................................................. 190
Odczyt danych z pami ci FLASH ................................................................................ 191
Dost p do pami ci FLASH >64 kB .............................................................................. 192
Zgłoś jeśli naruszono regulamin