Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji

Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji

Miałeś problemy z programowaniem? Nie wiedziałeś z czego się uczyć? Na szczęście na rynku pojawia się coraz więcej książek związanych z mikrokontrolerami.

W tej recenzji przyjrzałem się kolejnej pozycji wydawnictwa Helion. Zapoznaj się z nią, jeśli stoisz przed wyborem kursu programowania.

O recenzji

Tym razem zapoznałem się z pozycją Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji”. Według autora, po lekturze tej książki:

  • poznamy budowę oraz podstawy programowania mikrokontrolerów,
  • dowiemy się, jak do swoich celów wykorzystać język C,
  • nauczymy się rozwiązywać rzeczywiste problemy,
  • będziemy potrafili tworzyć praktyczne rozwiązania.

W podsumowaniu tej recenzji postaram się napisać, czy faktycznie tak jest. Niedawno przesiadłem się z Bascoma na C. Pamiętając moje problemy, mogłem spojrzeć na tę książkę okiem osoby początkującej.

Środowiska i programatory

Początek książki to dokładny opis środowiska w jakim będziemy pracować – AVR Studio. Został wzbogacony licznymi zrzutami ekranu. Szczegółowe opisy prowadzą nas przez proces instalacji. Następnie omówione zostały programy narzędziowe:

  • linker
  • avr-size
  • avr-nim
  • avr-objcopy

Warto zwrócić uwagę, że w opisach nie pominięto również użytkowników systemów operacyjnych z rodziny Linux. Dla mnie zabrakło tu jednak wzmianki na temat innych bardzo popularnych edytorów – przykładowo Eclipse.

Kolejny rozdział omawia proces programowania mikroprocesora programatorami ISP oraz JTAG. W obu przypadkach opisane są zalety każdego rozwiązania. Znajdziemy również krótkie informacje na temat wgrywania programów do wielu procesorów jednocześnie. Co więcej, pojawiły się również informacje na temat programatorów HW, równoległych oraz trybu TPI.

Autor podjął się także zasugerowania użytkownikom, jakich programów warto używać do przesyłania wsadów do procesorów. Oprócz standardowych narzędzi zaszytych w AVR Studio pojawiają się również opisy AVRDUDE oraz PonyProg. Na marginesie dodam, że ten pierwszy upodobała sobie większość użytkowników naszego forum. Na koniec omówione zostały lock bity, fuse bity oraz zagadnienie sygnatury mikroprocesora.

Okładka książki [przód, tył]

Okładka książki [przód, tył]

Język C

Znajdziemy tutaj też opisane podstaw języka C. Należy zaznaczyć, że z książki tej nie można nauczyć się samego C (co raczej nie było zamiarem autora – takie odniosłem wrażenie). Opisane zostały wszystkie najważniejsze części języka, szczególnie te, których niezbyt często używa się podczas programowania mikrokontrolerów.

Wszystko odebrałem jako powtórkę dla osoby programującej wcześniej. Omówiono typy danych, arytmetykę stało- oraz zmiennopozycyjną, operacje bitowe, zasięg widoczności funkcji i zmiennych, słowa kluczowe oraz dyrektywy preprocesora.

Nie zabrakło również informacji na temat plików źródłowych i nagłówkowych. Omówiono jeszcze sekcje programu:

  • .text,
  • .data,
  • .bss,
  • eeprom,
  • z kodem programu,
  • sekcje specjalne tworzone przez programistę.

Było to coś, z czym nie spotkałem się do tej pory w innych książkach.

Mikrokontrolery AVR

Kolejne rozdziały dotyczą programowania procesorów AVR. W książce tej pojawia się wiele procesorów z różnych rodzin - od Tinny, przez Mega aż do Xmega. Autor na ich przykładzie przedstawia specyficzne problemy i możliwości, dotyczące konkretnych podrodzin mikroprocesorów Atmela.

Dalsze części to wyjaśnienia, dotyczące zarządzania energią, różnymi typami pamięci mikroprocesorów oraz dostępem do nich. Pojawiły się tutaj również informacje na temat rzadziej opisywanego w książkach interfejsu XMEM. Wszystkie opisy wzbogacone są odwołaniami do konkretnych rejestrów i przykładami kodów.

Następne rozdziały standardowo poświęcone zostały poszczególnym peryferiom procesorów. Prócz teorii, przedstawiano też praktyczne rzeczy, takie jak obsługa enkoderów czy tworzenie wielopoziomowego menu. Każdemu interfejsowi komunikacji poświęcono osobny rozdział. Znajdziemy tutaj opisy:

  • SPI,
  • TWI,
  • USI,
  • USART,
  • 1-wire,
  • USB.

W książce można również znaleźć informacje na temat łączenia kilku procesorów tak, aby mogły się ze sobą komunikować.

Bezpieczeństwo i wydajność

Ostatnie rozdziały poświęcone zostały bootladerom oraz zabezpieczaniu własnych programów (CRC, AES Bootloader). Pojawiają się wzmianki na temat łączenia kodu C wraz z tym pisanym w asemblerze. Koniec książki traktuje o optymalizacji tworzonych programów oraz debugowaniu ich za pomocą interfejsu JTAG - tematy często pomijane w innych pozycjach.

Po więcej informacji odsyłam do opisu na stronie wydawnictwa.

Dla kogo?

Autor na samym początku wymienił elementy, na których będzie można przeprowadzić wszystkie lekcje. Czytając tę pozycję zwróciłem uwagę na kilka rzeczy, jakie nie utkwiły mi w pamięci po lekturze innych książek (atomowość dostępu, atrybuty weak oraz wiele innych).

Patrząc okiem początkującego w C, spodobało mi się, że nie pominięto prostych spraw, które na początku mogą sprawiać problemy. Może to błahy przykład, ale pozytywnie zaskoczył mnie mały rozdział traktujący wyłącznie o dostępie do danych 16-bitowych (łączenie i dzielenie rejestrów). Niby proste i oczywiste, ale miałem z tym problemy przy pierwszych projektach pisanych w C. Książka moim zdaniem jest idealnym uzupełnieniem wiedzy dla osób zaczynających swoją przygodę z mikrokontrolerami. Zainteresowanych zakupem odsyłam do odpowiednich stron. Książka dostępna jest w wersji papierowej oraz tańszej elektronicznej.

Spodobała Ci się recenzowana książka?

Kup wersję papierową » Kup wersję elektroniczną »

Załączniki

Fragment ksiażki (pdf, 681 KB)

Fragment książki "Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji", wydawnictwo Helion/

avr, Helion, książka, kurs, mikrokontroler, początkujący, poradnik, programowanie

Trwa ładowanie komentarzy...