Elementarna wiedza do programowania mikrokontrolerów AVR

r_201_08_2
Elementarna wiedza do programowania mikrokontrolerów AVR

W tym artykule pokrótce przybliżymy to, czego potrzebujesz do kodowania, kompilacji i wykorzystania programatora flash do swoich programów ładowanych do mikrokontrolera AVR, który teraz znajduje się na twoim biurku.
Aby to zrobić, będziesz potrzebować sprzętu (programator flash) i oprogramowania (edytor kodu, kompilator C i program, który będzie się komunikował z programatorem flash).
Na koniec musisz podłączyć kilka przewodów od programatora do układu AVR i skonfigurować zasilacz.
W tym procesie istnieje wiele różnych podejść, które doprowadzą cię na szczyt tej samej góry.
Ostatecznie różne podejścia są zasadniczo takie same na pewnym abstrakcyjnym poziomie, ale zostanie omówionych kilka szczegółów kilku najpopularniejszych opcji, aby wszystko było bardziej zrozumiałe.
Po stronie sprzętowej większość programatorów flash działa w ten sam sposób, a różnice nie będą sprowadzały się do więcej niż kilku poprawek w pliku, którego będziesz używać ponownie.
Programatory flash są przecież tylko urządzeniami USB, które przesyłają bajty twojego kodu do układu AVR.
Po stronie oprogramowania różne pakiety programistyczne będą miały różny wygląd i działanie, ale ostatecznie wszystko sprowadza się do edycji kodu, kompilacji go, a następnie wysłania do programisty sprzętowego.
Programowanie mikrokontrolerów AVR
Słowa „program”, „programator” i „programowanie” są przeciążone w świecie mikrokontrolerów.
My (jako programiści) piszemy programy, kompilujemy je, a następnie używamy programatora flash do programowania AVR, który następnie uruchamia nasz program.
Przejdźmy przez właściwą procedurę i zobaczmy, co się właściwie dzieje.
Toolchain (łańcuch narzędzi)
Jest to długa i kręta droga od kodu, który wpisujesz w edytorze, do układu na biurku, który włącza i wyłącza światło.
Przejście od wpisanych liter na ekranie komputera do działającego urządzenia elektronicznego wymaga łańcucha narzędzi zwanego, jak można się spodziewać, łańcuchem narzędzi!
Przegląd łańcucha narzędzi (Toolchain)
1. Napisz kod źródłowy w edytorze.
2. Zamień kod źródłowy w kod maszynowy za pomocą kompilatora (i powiązanych narzędzi programowych).
3. Korzystając z oprogramowania do przesyłania na dużym komputerze i programatora sprzętowego flash, wyślij kod maszynowy do docelowego układu AVR, który przechowuje instrukcje w nieulotnej pamięci flash.
4. Jak tylko programator flash zakończy działanie, układ AVR resetuje się i zaczyna uruchamiać kod.
Rysunek 1 przedstawia główne etapy tworzenia oprogramowania układowego AVR wraz z narzędziami, których będziesz używać w każdym kroku.
Pierwszym krokiem w twoim zestawie narzędzi będzie edytor tekstu lub cokolwiek, w którym najwygodniej piszesz kod.
Dla ludzi z Linuksa gedit (edytor tekstu oparty na bibliotece GTK+) jest całkiem niezły.
Na platformach Windows prawdopodobnie znajdziesz edytor dostarczany z WinAVR, Notatnik programisty, będzie działał całkiem dobrze, ale wolę darmowy Notepad ++.
Wielu programistów z systemu Mac korzysta z takiego TextMate.
Jeśli masz już ulubiony edytor kodu, z pewnością skorzystasz z niego.
Ładne funkcje, które można znaleźć, to wyróżnianie składni, automatyczne formatowanie i wcięcia, dopasowywanie nawiasów, a może nawet składanie kodu.
Oczywiście, jeśli chcesz uzyskać całe IDE, nie zatrzymam cię, ale nie jest to wcale konieczne.
W przypadku systemu Windows Atmel Studio jest kompleksowe i koncentruje się na wykonywanym zadaniu.
Jeśli używasz Eclipse, istnieją również wtyczki AVR.
W każdym razie, po napisaniu i edycji kodu, musisz go skompilować dla AVR, zamieniając czytelny dla człowieka kod C w kod maszynowy dla AVR.
Kompilator, którego używamy, avr-gcc, jest specyficzną dla AVR wersją popularnego kompilatora open source GCC.
(W rzeczywistości argumentowałbym, że wsparcie ze strony Atmela dla avr-gcc i open source toolchain jest głównym powodem niesamowitego sukcesu chipa w społeczności hakerów).
Oprócz kompilatora potrzebujesz jeszcze kilku narzędzi oprogramowania z pakietu avr-gcc, aby przejść od kodu źródłowego do kodu maszynowego, który jest gotowy do przesłania.
Skrypt o nazwie makefile jest powszechnie używany do automatyzacji wszystkich powtarzalnych, pośrednich bitów procesu.
Po skompilowaniu kodu C do kodu maszynowego we właściwym formacie nadszedł czas, aby wysłać kod maszynowy do układu mikrokontrolera i zapisać go w nieulotnej pamięci flash.
Programator flash to sprzęt, który znajduje się pomiędzy komputerem a docelowym mikrokontrolerem AVR.
Mikrokontrolery AVR po przejściu do trybu programowania „nasłuchują” na szynie szeregowego interfejsu urządzeń peryferyjnych (SPI – serial peripheral interface), aby dane przychodzące były zapisywane w pamięci programu.
Zadaniem programatora flash jest przekazanie skompilowanego kodu maszynowego do docelowego AVR przez magistralę SPI.
Dostępnych jest wiele programatorów flash, a niektóre najbardziej popularne to:
Atmel AVRISP mkII, USBTiny and USBasp, LadyAda’s USBTinyISP
Wielu z was będzie siedziało przy Arduino.
Jeśli tak, okazuje się, że fantastycznie łatwo zmienić Arduino (tymczasowo) w programator AVR.
W jednym z najbliższych wpisów pokażemy jak połączyć AVR i Arduino.
Jeśli więc nie masz jeszcze dedykowanego programatora SPI, podamy receptę współpracy z Arduino.
Teraz, wracając do głównego komputera, musisz uruchomić oprogramowanie, które podaje skompilowany kod maszynowy do programatora flash.
Najbardziej popularnym programem do przesyłania programów jest AVRDUDE, który jest dostępny na wszystkich platformach i obsługuje szeroką gamę programatorów.
Jak szeroko? Tak szeroko, że prawie każdy sposób komunikacji w SPI z docelowym AVR będzie działał z AVRDUDE, od kilku przewodów podłączonych do portu równoległego po dedykowanych programatorów USB z własnymi mózgami mikrokontrolerów AVR.
Autor: Tom Gross

Komentarze z Facebooka

Komentarze obecnie - OFF.