Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

sobota, 5 marca 2011

Atmel Studio: Dodatek Naggy - sprawdzanie programu podczas pisania


Autor: Dondu

Artykuł jest częścią cyklu: Atmel Studio - Spis treści

Atmel Studio - Dodatek (rozszerzenie) Naggy.
Jednym z istotnych elementów pozwalających w szczególności początkującym programistom unikać błędów już na etapie pisania kodu programu jest automatyczne sprawdzanie jego poprawności.

W przypadku Atmel Studio w momencie pisania tego artykuły tj. 2013r. funkcjonalność tę zawiera dodatek (rozszerzenie) o nazwie Naggy. Jest to nic innego jak dodatek wykorzystujący kompilator pracujący w tle w trakcie pisania programu i wykrywający błędy kodu.

Możliwości Naggy w zakresie wykrywania błędów są duże, a zobaczymy je na prostym przykładzie kodu programu zawierającego przykładowe błędy (ang. errors) i ostrzeżenia (ang. warings):


Atmel Studio - Dodatek (rozszerzenie) Naggy. Przykład błędów i ostrzeżeń.


W trakcie pisania kodu Naggy wykonywauje ciągłą kompilację pisanego kodu i zaznacza  czerwonym wężykiem  fragmenty, które według niego są błędne. Dodatkowo  zielonym wężykiem  podkreśla te fragmenty kodu, które generują w czasie kompilacji ostrzeżenia.

Jaki więc błąd popełniłem pisząc powyższy kod? Wystarczy najechać kursorem na linię z błędem i pokazuje się dymek z informacją:



czyli błąd polaga na braku średnika na końcu wskazanej czerwonym wężykiem linii, w której ustawiam rejestr DDRB. Ta linia powinna więc wyglądać następująco:

DDRB = s;

Po dokonaniu tej poprawki znika wężyk wskazujący błąd:


Atmel Studio - Dodatek (rozszerzenie) Naggy. Przykład ostrzeżeń.


Pozostały nam dwa ostrzeżenia, a właściwie jedno pokazane w dwóch miejscach. Na czym polega problem? Tak samo jak poprzednio wskazujemy kursorem linię i otrzymujemy dymek:




To bardzo częsty błąd wśród początkujących polegający na tym, iż numerują komórki tablicy od jeden, podczas gdy według standardu języka C numerowane są one od zera. Dlatego przy tak zdefiniowanej tablicy:

char tablica[3];

oczekują, że kolejne komórki to tablica[1], tablica[2] oraz tablica[3]. Jednakże faktycznie są to tablica[0], tablica[1] oraz tablica[2]. Innymi słowy próba przypisania komórki o numerze 3 oznacza wykonywanie przypisania poza tablicą, ponieważ taka komórka nie istnieje.

W takim przypadku Naggy wskazuje linię kodu, w której przypisujemy tablicy jakąś wartość oraz jednocześnie deklarację tej tablicy ponieważ nie wie, czy prawidłową sytuacją jest przypadek, gdy tablica ma mieć 4 elementy, czy tylko 3. Ty podejmujesz decyzję.

Możesz więc wydłużyć tablicę o jeden element :

char tablica[4];

lub poprawić linię, w której przypisujesz wartość trzeciemu elementowi tablicy na następujący:

tablica[2] = 0x8f;

Ja dokonałem poprawki linii przypisującej wartość i po zmianie znikają oba ostrzeżenia:


Atmel Studio - Dodatek (rozszerzenie) Naggy. Brak błędów i ostrzeżeń.


Powyższe przykłady są tylko jednymi z wielu błędów i ostrzeżeń wykrywanych przez kompilator pracujący z dodatkiem Naggy. Inne przypadki na pewno sam "przerobisz" w trakcie używania Atmel Studio z Naggy ;-)


Komunikaty dot. błędów i ostrzeżeń dodawane są także przez Naggy w okienku Error List:




Wystarczy wykonać dwuklik na wybranym komunikacie, by okno z programem przewinęło się do właściwego miejsca, a kursor ustawił w odpowiedniej linii.


Kompilacaja programu

Naggy kompiluje (w tle) kod tylko dla potrzeb sprawdzania składni w trakcie pisania kodu. Dlatego też, by po skończeniu pisania kodu otrzymać plik wynikowy, nadal musisz skompilować cały projekt tak jak to zwykle robisz używając odpowiedniego skrótu klawiszowego lub menu.


Instalacja Naggy

Aby skorzystać z możliwości dodatku Naggy należy go zainstalować. Wykonuje się to poprzez menu Tools > Extension Manager:

Atmel Studio - Dodatek (rozszerzenie) Naggy. Menu dodawania rozszerzeń.


W oknie dodatków znajdujesz Naggy:


Atmel Studio - Dodatek (rozszerzenie) Naggy. Okno dodawania rozszerzeń.


Dalej już chyba nie muszę tłumaczyć :-)
Nie zapomnij zamknąć i ponownie otworzyć Atmel Studio po zainstalowaniu Naggy.

W oknie tym możesz także zobaczyć szczegółowe dane o wersji dodatku oraz inne informacje.


Wyłączenie Naggy

W każdej chwili możesz wyłączyć dodatek Naggy w menu Tools:






Na koniec oficjalny film Atmela dot. tego dodatku:




Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

11 komentarzy:

  1. Dzięki za ten artykuł, bo tego mi brakowało w AS, a nie wiedziałem, że jest taki dodatek. Opiszesz także inne dodatki, bo widzę że jest ich więcej?

    OdpowiedzUsuń
    Odpowiedzi
    1. Coś jeszcze skrobnę, ale na pewno nie wszystkie dodatki - trochę kombinujcie sami, albo może ktoś je opisze i wystartuje w comiesięcznym konkursie: Napisz artykuł i wygraj nagrody. :-)

      Usuń
  2. witam,
    jak mniemam Naggy "nie chodzi" pod AVRStudio4

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie wiem - postaram się sprawdzić. Ale raczej nie.

      Usuń
  3. na tym filmiku można zaobserwować, przycinanie się środowiska, tzn. zostaje ślad po kursorze.

    OdpowiedzUsuń
    Odpowiedzi
    1. To raczej zasługa programu nagrywającego film. W rzeczywistości takie problemy nie występują no chyba, że Windows XP odpalimy na AT386 z 512kB pamięci :-)

      Usuń
  4. "przykładowe błąd (ang. errors)"

    OdpowiedzUsuń
    Odpowiedzi
    1. Dzięki ... poprawiłem :-)

      Usuń
    2. Czytając książkę tmf'a o xmega przeczytałem o naggy - pobrałem wg instrukcji, no i po kliknięci sign in i dalej colse nic się nie działo a po chwili program AS6 się zawiesił - tak kilka razy :(

      Usuń
    3. Niestety AS ma upierdliwe logowanie, czasami trzeba długo czekać aż przejdzie, więc cierpliwości. Czasami wymagane jest uruchomienie AS z uprawnieniami administracyjnymi (nie wystarczy być zalogowanym jako administrator), musisz kliknąć ppm na skrócie i wybrać "Uruchom jako Administrator". Generalnie naggy działa i nie powinno być problemów (nie ma jeszcze nowej wersji do AS 6.2 beta, ale to pewnie w ciągu kilku dni się zmieni). Naggy nie rozpoznaje też niestandardowych rozszerzeń gcc, co jest upierdliwe, bo np. wszędzie podkreśla mi __int24 itd. Ale ogólnie warto powalczyć, bo często daje sensowne podpowiedzi - przydaje się na każdym etapie wtajemniczenia. Warto alternatywnie rozważyć wtyczkę "Margins of errors".

      Usuń
  5. Po zainstalowaniu naggy podkreśla mi wszędzie łańcuchy gdzie jest polska czcionka np:
    uint8_t napis[] = "śćźą";
    printf("Gęś");
    Jeśli to rozszerzenie jest włączone to po kompilacji dostaję warning w tych miejscach.
    Jak temu zaradzić?
    Czy to zależy od kodowania przez edytor AS6.
    Krzysztof

    OdpowiedzUsuń

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.