Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Podstawowe kroki programowania zestawu uruchomieniowego ZL9AVR z systemem operacyjnym NutOS w środowisku AVR Studio --- Instrukcja postępowania --- Opracowanie: Tomasz Rutkowski, dr inż. Gdańsk 2014
Instrukcja opisana w niniejszym opracowaniu obowiązuje dla odpowiednio przygotowanego środowiska sprzętowo-programowego: zestawu uruchomieniowego ZL9AVR, opartego o: o płytę główną ZL9AVR o moduł ZL7AVR, moduł dipavr z mikrokontrolerem ATmega-128 o moduł ZL1ETH, uniwersalny interfejs Ethernet z kontrolerem RTL8019AS o moduł ZL4USB, interfejs USB-UART (RS232) z galwaniczną izolacją magistral z układem FT232RL o moduł wyświetlacza alfanumerycznego LCD1602 (2x16 znaków) ze sterownikiem HD44780 programatora: o ZL16PRG zgodnego z AVR JTAG ICE o lub programator AVRPRG kompatybilny z STK 500 (tryb ISP) Uwaga!!!: Należy pamiętać, iż każdy z programatorów podłącza się do innego gniazda w zestawie uruchomieniowym ZL9AVR. Programator AVR JTAG ICE podłącza się do gniazda JTAG płyty głównej ZL9AVR, natomiast programator AVRPRG do gniazda SPI modułu ZL7AVR z mikrokontrolerem ATmega-128. komputera PC (hosta sterującego): o z zainstalowanym środowiskiem Win AVR o z zainstalowanym środowiskiem AVR Studio o z bibliotekami systemu operacyjnego czasu rzeczywistego NutOS przygotowanymi dla zestawu uruchomieniowego ZL9AVR (biblioteki umieszczone są w strukturze katalogów WinAVR) odpowiednio przygotowanych plików Makefile i Sources sterujących kompilacją projektów tworzonych w środowisku AVR Studio: o plik Makefile powinien być każdorazowo umieszczony w katalogu tworzonego projektu, i nie powinien być modyfikowany o plik Sources powinien być każdorazowo umieszczony w katalogu tworzonego projektu, i powinien być odpowiednio zmodyfikowany w zależności od danego projektu: nazwa pliku wyjściowego (bez rozszerzenia) musi być taka sama jak nazwa projektu w AVR Studio, parametr OUTPUT musi być podana lista plików źródłowych projektu, parametr SOURCES muszą być wyspecyfikowane dodatkowe flagi dla kompilatora GCC, parametr MY_CFLAGS musi być podana lista bibliotek NutOS dołączonych do projektu, parametr LIBS opcjonalnie, jeśli wykorzystywany, musi być wskazany katalog z systemem plików do umieszczenia w pamięci FLASH mikrokontrolera, parametr CRUROM_DIR 2/9
Podstawowe kroki programowania zestawu uruchomieniowego ZL9AVR: 1. Programowanie zestawu uruchomieniowego ZL9AVR, należy zacząć od uruchomienia środowiska AVR Studio. 2. Z menu głównego należy wybrać opcję Project -> New Project. 3. W okienku Project type, należy wybrać opcję AVR GCC. W okienku Project name wprowadza się nazwę aktualnego projektu. Automatycznie nazwa ta, będzie nazwą głównego pliku projektu z rozszerzeniem *.c, oraz katalogu projektu. W tym przypadku utworzono projekt o nazwie nowy1, z głównym plikiem projektu nowy1.c który zostanie zapisany w katalogu projektu C:\AVR_Projekty\nowy1. 4. Następnie należy kliknąć przycisk Next >>. 5. W okienku Debug platform, należy wybrać pozycję JTAG ICE, natomiast w okienku Device należy wybrać pozycję ATmega128. 3/9
6. Następnie należy kliknąć przycisk Finish. 7. Do katalogu nowo utworzonego projektu C:\AVR_Projekty\nowy1, należy skopiować odpowiednio przygotowane pliki Makefile i Sources sterujące kompilacją projektu (szczegółowych informacji udziela prowadzący zajęcia). 8. Z menu głównego należy wybrać opcję Project -> Configuration Options. 4/9
9. W oknie Project Options, należy wybrać opcję General oraz zaznaczyć opcję Use External Makefile (zaznaczona czerwoną ramką). Zewnętrzny plik Makefile wskazuje się po kliknięciu przycisku z ikonką trzech kropek (w zielonych ramkach). 10. Następnie, należy wskazać odpowiedni plik Mkefile i kliknąć przycisk Otwórz. 11. Następnie należy kliknąć przycisk OK. 5/9
12. W kolejnym kroku można zacząć pisać program dla zestawu uruchomieniowego ZL9AVR (np. w języku C). 13. Następnie wybierając menu głównego opcję Buld -> Build, należy zbudować projekt. Uwaga, aby poprawnie zbudować projekt w AVR Studio: odpowiednie biblioteki systemu NutOS zgodne z platformą sprzętową systemu uruchomieniowego ZL9AVR muszą znajdować się na komputerze PC (hoście sterującym) np.: w strukturze katalogów WinAVR odpowiedni pliki Makefile powinien znajdować się w katalogu projektu odpowiedni plik Sources powinien znajdować się w katalogu projektu i powinien mieć odpowiednią strukturę dla danego projektu, np.: OUTPUT = nowy1 SOURCES = nowy1.c MY_CFLAGS = -Os LIBS = -lnutarch -lnutos -lnutdev -lnutarch -lnutcrt CRUROM_DIR = 14. Należy sprawdzić czy programator JTAG ICE (lub STK500 SPI) jest podłączony przewodem USB do komputera hosta. Jeżeli tak, to należy przejść do kolejnego punktu instrukcji. W przeciwnym przypadku należy podłączyć programator. 15. Należy sprawdzić czy programator JTAG ICE (lub STK500 SPI) jest podłączony przewodem taśmowym (10-pinowe gniazdo typu kanada) z zestawem uruchomieniowym ZL9AVR. W zależności od wykorzystywanego programatora należy wykorzystać: gniazdo JTAG dla programatora AVR JTAG ICE (gniazdo na płycie głównej ZL9AVR), gniazdo SPI dla programatora AVRPRG (gniazdo w module ZL7AVR z mikrokontrolerem ATmega-128). 6/9
16. Kliknąć na ikonkę Con (ikonka ujęta w czerwoną ramkę) 17. W okienku Platform należy wybrać opcję JTAG ICE (lub STK500 or AVRISP ), następnie w okienku Port należy wybrać opcję Auto i przycisnąć przycisk Connect. 18. Jeżeli ustawienia portu były poprawne to pojawi się następujące okno programatora, w którym należy wybrać zakładkę Program. 7/9
19. Następnie w oknie Flash, należy wybrać opcję Input HEX File. 20. W kolejnym kroku należy wskazać odpowiedni plik HEX (powstały po zbudowaniu projektu punkt 13). W tym celu należy kliknąć na przycisk i odnaleźć odpowiedni plik HEX związany z aktualnym projektem. 21. Programowanie mikrokontrolera ATmega128 za pomocą programatora JTAG ICE (lub STK500 or AVRISP) następuje po przyciśnięciu przycisku Program. 8/9
22. Po zaprogramowaniu systemu uruchomieniowego ZL9AVR nie należy odłączyć programatora JTAG ICE (lub STK500 or AVRISP) od komputera hosta oraz zestawu uruchomieniowego. 23. Jeżeli wymaga tego realizowany projekt do zestawu uruchomieniowego ZL9AVR podłączyć odpowiedni kabel interfejsu szeregowego (gniazda UART0, UART1) lub kabel interfejsu ethernetowego (gniazdo RJ45 modułu ZL1ETH). 24. Udanego programowania!!! Wskazówki: w trakcie pracy z systemem uruchomieniowym ZL9AVR (kolejne programowanie) nie trzeba rozłączać podłączonych do niego kabli i przewodów, aby programator JTAG ICE (lub STK500 or AVRISP) działał musi być doprowadzone zasilanie do systemu uruchomieniowego ZL9AVR, zaprogramowany zestaw ZL9AVR można zrestartować za pomocą przycisku RES na płycie głównej. 9/9