Mikroprocesorowa ośla łączka, część 19
Po głębszej analizie typów i zmiennych pora bardziej zagłębić się w instrukcje języka C. Spośród wielu można wyróżnić instrukcję podstawienia arytmetycznego/logicznego. Oprócz podstawowej funkcji obliczeniowej występuje ona również jako część składowa wielu innych (jak if czy while).
Włączanie debuggera
W bieżącej części cyklu poświęconego programowaniu mikrokontrolerów, będzie użytkowany wbudowany w pakiet Atmel Studio debugger, pozwalający na symulację działania naszego programu. Będziemy uruchamiać program w sposób krokowy, po jednej instrukcji w języku C. Wymaga to odpowiedniej wcześniejszej konfiguracji pakietu narzędziowego. Standardowo, przy tworzeniu nowego projektu jednocześnie są określone pewne opcje z nim związane. Niektóre z nich wymagają zmian i w tym celu klikając na opcję Project a następnie Properties (rysunek 1) „dostaniemy” się do opcji projektu, by dokonać niezbędnych korekt.
Pierwszym elementem do zmiany jest określenie, że program będzie uruchamiany pod kontrolą wbudowanego symulatora. W utworzonym okienku związanym z opcjami projektu trzeba wybrać Tool i w dalszej kolejności w Select debugger/programmer wybrać Simulator (rysunek 2).
Drugim elementem do zmiany jest stopień optymalizacji generowanego kodu (domyślnie jest ustawiony na O1 – pierwszy stopień optymalizacji). W docelowych aplikacjach warto mieć włączone jakieś opcje pozwalające na uzyskanie bardziej optymalnego kodu (mniejszy kod często przekłada się na szybsze działanie), jednak w przypadku symulacji czasami jest to „szkodliwe”, gdyż optymalizowany kod potrafi lokować zmienne w rejestrach i są problemy z „podglądaniem” ich. Zmiana w pierwszym kroku wymaga wybrania zakładki Toolchain i w drugim wybrania opcji Optimization. W Optimization Level klikając na „ptaszka” należy wybrać poziom O0 (bez optymalizacji), jak pokazuje rysunek 3.
Dokonane zmiany w pliku zawierającym opcje projektu warto zapisać na dysku wybierając ikonkę Save Selected Items (rysunek 4).
Po tych zmianach można skompilować program i przejść do krokowego jego wykonania. W obrębie opcji Debug wybieramy Start Debugging and break, jak pokazuje rysunek 5.
Opcja ta uruchamia wykonanie programu w części „ukrytej” (gdzie są zawarte początkowe działania, jak choćby zainicjowanie stosu i wyzerowanie zmiennych programu) i zatrzymuje się przed pierwszą instrukcją w funkcji main.
(…)
——– ciach! ——–
To jest tylko fragment artykułu, którego pełna wersja ukazała się w grudniowym numerze czasopisma Zrozumieć Elektronikę (ZE 12/2025). Pełną wersję czasopisma znajdziesz pod tym linkiem. Natomiast niepełna, okrojona wersja, pozwalająca zapoznać się z zawartością numeru ZE 12/2025 znajduje się tutaj.
Andrzej Pawluczuk
apawluczuk@vp.pl
Uwaga! Wskazówki, jak nabyć pełne wersje dowolnych numerów ZE znajdują się na stronie:
https://piotr-gorecki.pl/n11.




