Rys. 15 Panel „Workspace"
H Coordinator Error loading object File.
AVR Simulator Please wait whde configuring Simulator \ AVR Simulator AT90S2313 Configured OK
Loaded objectfile: C:\GCC-src\Kur5\hello\helci.elf
Rys. 16 Zły wybór linii zatrzymania
Rys. 17 Punkt wstrzymania
wewnętrznych naszego procesora. Śmiało -porozwijąj inne opcje niż te, które udało mi się zamieścić na ilustracji.
Po tym krótkim oswojeniu AVRStudia pizy-stąpmy do rozpoczęcia właściwej symulacji.
Na rysunku 15 widzisz opcję HO AT90S2313->PORTD. Rozwiń ją. Poza tym interesować nas będzie także ile czasu upłynęło w czasie wykonywania instrukcji. Opcję tę zaznaczyłem na rysunku. Od tej chwili możesz symulować przebieg programu, obserwując jednocześnie najważniejsze z naszego punktu widzenia elementy. W czasie symulacji program najczęściej będziesz wykonywał krok po kroku. Zobacz, jakie sposoby wykonania kroku oferuje Ci AVRStudio - rozwiń menu Debug. Z B ASCOM-a powinieneś znać przynajmniej „Step Into” oraz „Step Over”. W praktyce są one na tyle ważne, że warto zapamiętać ich skróty klawiaturowe. Pierwszy to Fil, drugi F10. Spróbuj przejść przez symulację naszego programu za pomocą klawisza F10. Po kilku krokach prawdopodobnie czeka Cię niespodzianka. Mimo wybrania metody poruszania się przez program, która teoretycznie zapewnia omijanie wszelkich wejść do podprogramów, emulator wskoczył jednak do funkcji opóźniającej. Jest to związane ze słówkiem inline, które pojawia się przed definicją wywoływanej funkcji. Jego znaczenie omówię jednak w jednej z przyszłych części tego cyklu. Symulacja tej funkcji krok po kroku jest bardzo uciążliwa - jej pętla będzie przecież powtarzana ponad 64 tysiące razy!
Z opresji możemy wyjść się na dwa spo-
1. Zamknjj okno z kodem procedury opóźnienia. Następnie w kodzie głównym ustaw kursor tuż na następnej pozycji - niech nie będzie to linia komentarza - powinna to być kolejna instrukcja. Teraz wybierz z menu Debug funkcję „Run To Cursor”. Jeśli w okienku Output - na dole AVRStudio - nie pojawił się napis jak na rysunku 16, nasz program zacznie wykonywać się w trybie ciągłym. Może to trochę potrwać, jednak w ostateczności zatrzyma się dopiero po zakończeniu instrukcji opóźnienia.
2. Początek identyczny jak wyżej. Po umieszczeniu kursora na następnej pozycji wstawimy tutaj tak zwany „punkt wstrzymania”. Najszybciej zrobisz to klawiszem F9. Jeśli zrobisz to prawidłowo, wybrana linia zostanie oznaczona jak widać to na rysunku 17. Uruchamiamy teraz program w trybie pracy ciągłej (znów najszybciej przez F5). Symulator zatrzyma się dopiero na oznaczonej linii. Zauważ, że nie w każdej linii możesz umieścić punkt wstrzymania. Spróbuj sam, gdzie jest to możliwe.
Osobiście częściej nawet niż z samej symulacji korzystam z możliwości wygodnego podejrzenia tego, co stworzył kompilator w asemblerze. Umożliwiają to komendy View->Disassembler. Zobaczysz wtedy mieszany kod C razem z odpowiednikiem w asemblerze. Jest to bardzo wygodny i czytelny sposób przedstawienia. Zauważ, żc funkcja ta nie jest dostępna, gdy symulacja jest wyłączona. Jeśli tak się stało - uruchom ją ponownie poleceniem „Start debugging”.
W następnych odcinkach będę starał się już unikać opisywania samego AVRStu-dio. Program ten posiada znakomitą instrukcję, która powinna wyjaśnić większość wątpliwości. Tutaj moim celem było umożliwienie Ci „łatwego startu”. Nie zawsze podawałem najprostszą drogę do poszczególnych komend -wiele z nich jest dostępnych z poziomu paska narzędzi - postaraj się samodzielnie je odnaleźć.
Może wydaje Ci się, że takie składane środowisko nie jest zbyt wygodne. W praktyce okazuje się, że praca jest całkiem przyjemna. Gdy podczas symulacji wykryjesz jakiś błąd, przełącz się na Programmers Notcpada. Dokonaj koniecznych poprawek i skompiluj program. Następnie przełącz się zpowrotem na AVRStudio. Program automatycznie wykryje zmianę w pliku elf i zapyta, czy chcesz wczytać jego nową wersję. Po odpowiedzi twierdzącej wszystkie zmiany, jakie wprowadziłeś, pojawią się w symulacji. Uważaj tutaj jedynie na sytuację, gdy symulator jest całkowicie zajęty odtwarzaniem programu. Wtedy może nie reagować na zmianę pliku. W takim przypadku po prostu zatrzymaj jego pracę. Wtedy zmiana powinna zostać zauważona. Gdy zamkniesz AVRStudio, utworzony zostanie plik z rozszerzeniem aps. Gdy go otworzysz, wszystkie ustawienia zostaną odtworzone i automatycznie zostanie zainicjowana symu-
Mimo iż'dziś stworzyliśmy bardzo prosty programik, nie bądź tym faktem zawiedziony. Dziś zapoznałeś się z narzędziami, jakich będziemy używać. Oswoiłeś się z - nietypowym sposobem pracy. Nauczyłeś się edytować plik makefile. A przede wszystkim może już stwierdzasz, że C nie jest wcale taki straszny, jak twierdzą niektórzy.
A ciekawsze programy jeszcze napiszemy...
Radosław Koppel
48 Maj 2005 Elektronika dla Wszystkich