Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 4 kwi 2025, o 05:39


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
    Autor Wiadomość
    PostNapisane: 29 mar 2012, o 11:44 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Jak zapewne wiecie istnieje sporo sposobów na debugowanie programu dla AVR.
    Niemniej dzielą się one na 2 podstawowe grupy:

    --> Programowe debugowanie przy użyciu symulatora
    --> Sprzętowe debugowanie poprzez złącze JTAG

    Zaś obie te grupy zaś możemy podzielić na 2 grupy:

    ---> Używanie debugera wbudowanego w Eclipse
    ---> Korzystając z narzędzi zewnętrznych

    Wszystkie wymienione maja swoje wady i zalety. Jednak wszystkie są oparte o serwer GDB i debuger GNU.
    Dla nas oznacza to, że debugowanie odbywa się w systemie klient/serwer - niezależnie od użycia symulatora czy JTAG-a.

    Niektóre zewnętrzne aplikacje do debugowania (np. AVR Studio, Proteus, VMLab) są zintegrowane z serwerem , a więc użytkownik będzie tylko działał po stronie klienta z ukrytym serwerem działającym w tle programu.

    # SERWERY DEBUGERA

    Zasadniczo istnieją dwa główne serwery gdb dla AVR są to:

    >>> AVaRICE

    Działa jako serwer gdb dla połączeń przez interfejs JTAG, czyli to taki pomost miedzy gdb, a sprzętowym JTAG.
    Aby skorzystać z debugowania w systemie (JTAG) musimy oczywiście posiadać sprzętowy debuger, który
    podłączymy do naszego układu przez port JTAG.

    AVaRiace obsługuje trzy rodzaje interfejsów JTAG, a są to:

    AVR JTAGICE mkII --- Na ta chwile to najlepszy obsługiwany JTAG dla AVR , Jest stosunkowo drogi, ale
    są dostępne klony po znośnych cenach. Dysponuje:

    ---> podłączenie do PC przez -- USB / RS232
    ---> obsługuje JTAG i dW
    ---> obsługuje wszystkie obecne procesory AVR oraz AVR32


    AVR Dragon --- Dragon to taka okrojona wersja MkII , reszta będzie opisana na jego przykładzie
    bowiem akurat takowy posiadam, ale konfiguracja na inny nie będzie stanowić problemu.

    ---> USB
    ---> JTAG, dW, ISP, HV, i tryby PP
    ---> obsługuje prawie wszystkie AVR (oficjalnie max 32K Flash -- ale z m128 nie miałem problemów:)

    AVR JTAG (MkI) --- Pierwszy interfejs JTAG teraz wycofany , i nie warty zakupu z powodu braku suportu
    w nowszych środowiskach.

    ---> RS232 --część klonów posiadała USB
    ---> tylko JTAG
    ---> Nie obsługuje nowszych procesorów
    ---> Można go zbudować samemu ze względu na prostą konstrukcje np. wg tej strony:
    http://www.m2uu.com/elektronika:avrjtag niemniej strata czasu i szkoda zachodu.

    **** dW = debugWIRE to firmowy interfejs Atmela podobny do JTAG, ale przy użyciu tylko 1 przewodu (linia reset) Używany zwłaszcza przy małych procesorach tzw Pin Count AVR.

    # Simulavr / Simulavrxx

    Jest to Open Source-owy symulator programowy do symulacji procesorów AVR. Trochę już staruszek bo jego rozwój zatrzymał się na wydaniu z lutego 2005 , ale może być wciąż stosowany gdyż pozwala symulować większość popularnych procesorów, Jednak symulacja nie jest kompletna, brakuje wielu funkcji dla portów I/O, a na tych co są polegać za bardzo nie można. Nadaje się jednak dla początkujących jako zabawka do nauki pracy z symulatorem:)

    Simulavrxx - to przepisany na C++ symulator Simulavr i też nic z nim się nie działo przez ostatnie 2 lata Jednak na początku 2008 podjęto działania za sprawą CVS wiec może się będzie rozwijać.

    -------------------------------------------------------------------------------------------------------
    No trochę przy nudziłem co ??
    Niestety konieczne jest poznanie sprzętu i oprogramowania potrzebnego do
    symulacji i debugowania bez tego ani rusz :)
    -------------------------------------------------------------------------------------------------------

    # Debugowanie w ECLIPSE ---> teraz krzykniecie pewnie no wreszcie :)

    Chociaż Eclipse dla AVR aktualnie (oficjalnie) nie obsługuje debugowania, to jednak wersja CDT posiada wszystko co jest wymagane i potrzebne do debugowania programów dla naszych Procków :)
    ale wymaga to pewnej konfiguracji i jak zawsze w Eclipse jest więcej niż jeden sposób by to zrobić :)
    Postaram się byśmy to zrobili jak najprościej:

    ----> Debugowanie AVR z Eclipse wymaga dwóch kroków :
    >> inicjacji serwera gdb,
    i
    >> połączenia się z nim :)

    JEDZIEMY -----------------------------------------------------------------------------------------------------------------------------

    Poniższe kroki przeprowadzam na moim systemie przenośnym :)

    -- Windows XP -- bo na moim warsztatowym IBMie nic innego nie działa:)
    -- Eclipse 3.4 (ganymede) z CDT 5.0
    -- WinAVR-20081124rc3 (zawiera AVaRiace oraz AVR-GDB)
    -- Debuger AVR Dragon

    Obrazek

    -- a do testów użyłem AVR Butterfly (jest na sprzedaż) z ATmegą 169:)

    Obrazek

    Do testu również zostały użyte 2 programy:

    >>> avrtest -- prosty program testowy z pusta nieskończona pętla main() dla M16 do testu z simulavr
    >>> ButteeflyLCDTest -- równie banalny program do przetestowania debugera avariace dla M169

    Obydwa zostały skompilowane bez modyfikacji konfiguracji kompilatora. Oznacza to że można użyć ustawień
    domyślnych (standard debugging info (-GP)) dla poziomu debugowania i (stabs) dla formatu debug info.
    Na razie mało jasne prawda ??
    Spokojnie będzie jaśniej :)

    Obrazek

    Optymalizację ustawiłem dla testu na "No Optimizations (-O0)" bowiem wszystkie inne poziomy optymalizacji
    mogą powodować wyjście z rzeczywistych instrukcji kodu maszynowego i niczym nie przypomina to przepływu danych z kodu źródłowego C, przez co debugowanie jest bez sensowne i nie praktyczne. Oczywiście można debugować zoptymalizowany kod , ale przejście dissasemblera w stosunku do kodu źródłowego C będzie bezużyteczne. Spokojnie pewnie myślicie teraz, że trzeba będzie zmienia konfiguracje optymalizacji za każdym razem :) Nic z tych rzeczy przecież mamy 2 konfigi RELASE i DEBUG, które sobie działają osobno i zależą od naszego wyboru :) To tez przewaga Eclipse nad innymi środowiskami IDE że możemy przechowywać wiele
    różnych ustawień dla różnych rzeczy np programatorów :)

    Oczywiście wasze ustawienia mogą się różnić gdyż ja mam Dragona a wy pewnie JTAGICE :)
    Dlatego mogą wystąpić pewne różnice. Jednak mam nadzieje że instrukcja będzie na tyle dokładna że
    częściowo obejmę te różnice.


    # Uruchamiamy serwer gdb

    Hmmm no tak jakby to prosto napisać w sumie założenie jest łatwe , ale wytłumaczyć trudno , bowiem
    tak "krasousty" jak szanowny kolega MIrek nie jestem , ale się postaram :)

    Najprostszym sposobem uruchomienia gdb jest startowanie go jako 'narzędzia zewnętrznego' w Eclipse,
    a robimy to tak :

    klikamy na mały trójkąt z teczuszką obok ikony zewnętrznych narzędzi i wybieramy opcje "External Tools Configurations"

    Obrazek

    W okienku które się otworzy klikamy prawym klawiszem myszy na:Obrazek
    i wybieramy Obrazek
    teraz możemy wprowadzić dane konfiguracyjne naszego serwera gdb:
    Pewnie nie chcesz przekazywać do gdb obrazu flash w wierszu poleceń ?? w takim razie przejdź do zakładki Obrazek i odznacz opcjęObrazek

    >>>> AVaRICE

    Konfiguracja dla niego powinna wyglądać następująco :
    Obrazek

    gdzie :
    Name = Nazwa konfiguracji ja sobie nazwałem Start Avarice
    Location = tu podajemy ścieżkę do avarice
    Working Directory = tu avarice nic zwykle nie zapisuje, ale sporadycznie może użyć do zrzutu pamięci
    --- jak widać ustawiłem na workspace:), ale może to być dowolny folder
    Arguments = Tu umieszczamy argumenty poleceń avarice
    --- w tym przypadku użyłem -dragon dla JTAG (można oczywiście ustawić JTAGICE mkI jak i MkII
    - Ignore-intr - ten argument zapobiega zatrzymaniu się avarice na każdym przerwaniu
    - Jtag usb - dragon pracuje na usb więc dlatego :)
    - :4242 - to port TCP dla naszego serwera gdb
    Zauważcie że celowo nie określiłem funkcji " --erase i --program -- xxx file" w argumentach by umożliwić programowanie procesora poprzez interfejs JTAG, zamiast tego używam avrdude do programowania procesora docelowego :) Postąpiłem tak z dwóch powodów:
    1. avarice błędnie programuje przez Dragona
    2. nie chcę uzależniać jakiegokolwiek projektu od zewnętrznych narzędzi (miałbym jak w AS fuuu)

    Po zapisaniu konfiguracji gdy klikniemy na RUN zostanie uruchomiony AVaRICE:)
    Jeśli avarice wyjdzie z sesji debugowania w Eclipse to Debuger zostaje zatrzymany. Musimy wtedy ponownie uruchomić nową sesję. Zobacz w perspektywie DEBUG , a sam się przekonasz ze avarice jest dalej uruchomiony :) to tylko taka mała niedogodność:(

    # SimulAVR

    konfiguracja dla simulAVR u mnie wygląda tak :

    Obrazek

    tu już tylko opiszę ważniejsze rzeczy jak pole ARGUMENTS :

    -Gdbserver = informujemy symulator że będzie pracowała w trybie gdbserver
    -Port 4242 = oznacza ze simulavr nasłuchuje na porcie 4242 podobnie jak i avarice - czyli używamy sobie konfiguracji Debugera dla obu i dla symulatora i dla avrice
    -device atmeg16 = tu ustalam że simulavr powinien zasymulować ATmege16. Jak chcesz zobaczyć (krótką) listę
    obsługiwanych procesorów to w cmd wpisz simulavr -L :)

    Tu jak widzicie też nie przekazałem paru funkcji jak na przykład przesłania obrazu flash do symulatora. I jak sie domyślacie z 2ch powodów:
    1. Simulavr niestety akceptuje tylko "surowe obrazy binarne" już chyba opisywałem na forum jak utworzyć plik bin w eclipse.
    2. i jak zwykle ze nie lubie sobie uzależniać czegokolwiek od jakiejś konfiguracji :)

    W tym przypadku musielibyśmy użyć konfiguracji sprzętowego debugera opisanej wyżej by wgrać obraz flash na początku sesji debugera a to mało wygodne rozwiązanie.

    Po zapisaniu ustawień kliknięcie na RUN uruchomi simulavr

    Niestety simulavr będzie nadal działał nawet jak sesja DEBUG zostanie zakończona. Ale tu mozna jej uzywać do wielu sesji , a by zatrzymać simulavr musimy przejść do perspektywy DEBUG i kliknąc prawym klawiszem myszki na wejściu simulavr i wybarć ZAKOŃCZ.

    --------------------------------------------------------------------------------------------------------------------------------------------
    To by było na tyle jeśli chodzi o serwery GDB dla debugera , teraz zajmiemy się narzędziami wbudowanymi w Eclipse
    ----------------------------------------------------------------------------------------------------------------------------------------------

    # Konfiguracja Debugera z Eclipse


    tu sprawa jest już prosta mamy już uruchomiony prawie serwer gdb wiec możemy ustawić sobie debuger Eclipse który jest bardzo fajny:) jak zwykle istnieją 2 typy konfiguracji debugera użyteczne dla AVR.
    C/C++ Local Application i oczywiście GDB Hardware Debugging :)

    Silnik i rdzeń jest taki sam w obu przypadkach i dla obu stron, a różnice występują jedynie w interfejsie użytkownika i w pierwszych poleceniach serwera gdb służących do uruchamiania zdalnej sesji debugera.
    Obie konfiguracje są praktycznie identyczne i wam znane z pracy z avarice i simulavr, wiec możecie już przetestować sami , która konfiguracja będzie dla was najlepsza.

    Na początek otwieramy okienko Debug Configuration , wybieramy projekt do debugowania i klikamy na ikonke trójkąta obok Obrazek
    i wybieramy DEBUG CONFIGURATIONS... okno które sie pojawi powinno wyglądać tak:

    Obrazek

    Jesli opcja GDB Hardware Debuging nie jest widoczna oznacza ze nie zainstalowane masz opcjonalne fjuczery.
    Trzeba zainstalować aktualizacje oprogramowania z Menu HELP i dodać CDT service (dla Eclipse 3.4 jest tu:
    http://download.eclipse.org/tools/cdt/releases/ganymede ), a następnie przeglądnąć dostępne aktualizacje i zainstalować opcjonalna funkcję Eclipse C/C++ GDB Hardware Debugging.

    Teraz należy 2klikiem na każdej konfiguracji aby utworzyć nową. Gdy będziecie mieli wybrany projekt przed otwarciem okna konfiguracji będzie ono miało nazwę np. "Nazwa_projektu Debug".
    Pierwsza zakładka (główna) jest taka sama w obu przypadkach:

    Obrazek

    jak widać musimy wskazać nasz plik .elf -- nie wymaga to chyba tłumaczenia:)
    teraz przechodzimy do ustawień specyficznych :) ---> robią się schody nie :)

    >>>>> C/C++ Local Application

    Dla tego typu konfiguracji wszystkie stosowne ustawienia znajdziecie na karcie DEBUGGER:

    Obrazek

    -- Debugger
    Ustawcie na gdbserver Debugger
    -- GDB debugger
    zmienić na "avr-gdb". Ustawiony na "gdb" nie działa, gdyż będzie domyślnie debugował na i386.
    -- GDB Command file
    usuń z stąd wskazanie na plik ". gdbinit". Jeśli jednak nadal trzeba wgrać obraz flash do docelowego procesora (np. z simulavr), musisz napisać mały skrypt gdb i wpisz tutaj jego nazwę . Zobacz poniżej .
    -- GDB command set
    wybierzcie "Standard" lub "Standard (Windows)". Nie używamy "Cygwin", ponieważ avr-gdb nie jest aplikacją cygwin. Różnice w różnych zestawach poleceń są minimalne, dotyczą głównie obsługi bibliotek współdzielonych, które są nieistotne dla programowania AVR.
    -- Protocol
    Pozostaw na "mi". To jest to samo co "MI2". "Mi1" jest starszym protokołem gdbservera,a że nie ma żadnych zalet w avr-gdb rozumie mi jako MI2.
    -- Verbose console mode
    Jeśli macie problemy możecie wybrać tę opcję, aby zobaczyć komunikację pomiędzy Eclipse i avr-gdb.

    Teraz należy kliknąć na kartę Connection i skonfigurować parametry komunikacji pomiędzy avr-gdb i gdbserver:)
    Obrazek

    Nie będę się tu rozpisywał po prostu ustawcie jak na obrazku :)

    Nasza konfiguracja jest zakończona. Kliknijcie na przycisku Debug i jeśli wszystko jest w porządku sesji debugowania powinien rozpocząć i aplikacja powinna zatrzymać się na początku naszej funkcji main ().

    Dodatkowo dla dopełnienia informacji dopowiem w tym miejscu że :
    gdb init przesyła obraz flash do simulavr. Zapiszcie go sobie gdzieś (np. w folderze projektu jako "gdbinit")
    i wprowadźcie pełna ścieżkę dostępu do pliku w polu File GDB Commands na karcie Debugger w oknie konfiguracji. U mnie gdb działa mimo skryptu simulavr, ale może działać lepiej przy sprzętowym debugerze konfiguracje którego opiszę za chwilę.

    Kod:
    # make sure simuavr has code to run (it would complain Unknown opcode)
    # change the filename as required, but with the name of the build configuration (here: Debug)
    file Debug/avrtest.elf

    #also don't forget to change the port number if you are using a different one.
    target remote localhost:4242
    load



    # GDB Hardware Debugging

    Dla debugowania sprzętowego w GDB musimy zmienić ustawienia w dwóch zakładkach :)

    Zacznijmy od zakładki Debugger.
    Tu większość opcji zostaje ustalona domyślnie przez przez Eclipse, a jedynymi opcjami, które musimy zmienić
    zaznaczyłem na obrazku:
    Obrazek

    następnie przechodzimy na zakładkę STARTUP:

    Obrazek

    Jeśli wybraliście standardowy JTAG na poprzedniej stronie , te opcje można zignorować

    Obrazek

    Przesyłamy obraz flash na początku sesji debugowania. Plik obrazu może być. Elf lub. Hex, ale upewnijcie się, że wybraliście właściwą dla danego projektu. Uwaga: Ta funkcja nie działa u mnie na moim AVR Dragon, prawdopodobnie z powodu błędu w avarice. Zamiast z automatu muszę przesyłać obraz z avrdude przed rozpoczęciem sesji debugowania.

    Pozostałe nie maja znaczenia:)

    Obrazek

    Set program counter at (hex)
    jeśli nie jest ustawiony gdbserver zaczyna od 0x0000, która jest lokalizacją wektora reset . Więc chyba nie ma potrzeby ustawiania niczego tutaj.
    Set breakpoints at:
    Ustawiamy na "main" lub inną funkcję, na ​​której chcemy zatrzymać wstępne wykonanie i rozpocząć debugowanie.
    Resume
    Wybieramy tę opcję. Jeżeli nie wybrano avarice i nie została uruchomiona jego aplikacja to trzeba wpisać "continue" dla avr-gdb w widoku konsoli, aby zadziałał debuger. Dlatego lepiej tą opcje zaznaczyć.

    Ufff konfiguracja zakończona.Zapisujemy ustawienia. Kliknijcie teraz przycisk, Debug i jeśli wszystko jest w porządku sesja debugowania powinna się rozpocząć i aplikacja powinna zatrzymać się na początku naszej funkcji main ().

    # PRACA Z DEBUGEREM

    No teraz chyba najważniejsze prawda , co z tego ze uruchomiliśmy sesję debugera jak nie wiemy jak z nią pracować :) , a więc jeśli wszystko przebiegło bez zakłóceń i nasza konfiguracja jest prawidłowa to nasza perspektywa DEBUG w Eclipse powinna wyglądać tak:

    Obrazek

    Zapewne widzicie ze to prawdziwa sesja debugowania dla AVRBytterfly na AVR Dragon przez interfejs JTAG, którego użycie wam zakomunikowałem wcześniej :) Ten obrazek pokazuje jak działa i wygląda w Eclipse funkcja debugera z pakietu CDT.

    BTW, Segment pamięci pokazany na obrazku zaczyna się na adresie 0x800020. To jest początek zakresu rejestrów dla I/O dla AVR , dzięki czemu możemy zobaczyć zawartość wszystkich wejść i wyjść rejestrów .
    Aby znaleźć określony rejestr musicie zdobyć jego adres w eclipse można je znaleźć w w AVR Device Explorer i dodać do niego nasze 0x800020 czyli adres początkowy:)


    I to by było na tyle na razie w tym temacie , mam nadzieję ze te informacje się komuś przydadzą , miłej lektury
    :) i debugowania programów :)


    CIĄG dalszy przynudzania : TUTAJ topic958.html

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 mar 2012, o 13:11 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    O MATKO! (aż mi się wyrwało z gardła jak to zobaczyłem) .... jaki piękny tutorial ;) SunRiver jesteś mistrzem ;) .... i nie wykręcaj mi się tu jakimiś pomówieniami i plotkami ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 mar 2012, o 13:21 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    A tak jakoś można by rzec "z młodej piersi się wyrwało"
    Mam nadzieję że się przyda komuś ta marna wypocina :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 mar 2012, o 20:16 
    Offline
    Nowy

    Dołączył(a): 06 paź 2011
    Posty: 24
    Pomógł: 0

    Szacun Kolego SunRiver. Czasami wydaje mi się, że się chyba urodziłeś z prockiem w dłoni bo cokolwiek opisujesz nie jest dla Ciebie trudnością.
    Dzięki za tutorial, ale po pierwszym czytaniu czuje się przytłoczony:), ale kto powiedział, że czyta się tylko raz :)
    Pozdrawiam

    _________________
    smalski



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 mar 2012, o 21:27 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Niema sprawy kolego.
    Jakbyś miał problemy napisz postaram się pomóc. Przeczytaj też uważnie część drugą :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 kwi 2012, o 19:57 
    Offline
    Nowy

    Dołączył(a): 09 kwi 2012
    Posty: 20
    Pomógł: 0

    Witam, niedawno rozpocząłem pracę w eclipse i rzeczywiście urzekły mnie możliwości tego środowiska. Niestety zauważyłem pewną wadę mianowicie debugger. Jestem pod wrażeniem tego opisu konfiguracji debugera, jest on najbardziej kompletny ze wszystkich, które szukałem w sieci ;). Jednak mam pewne pytania odnośnie dodatku simulavr. Powyżej zostało napisane, iż jest to wersja niewspierana od 2005 r. natomiast na stronie projektu znalazłem, iż niedawno (luty 2012) wyszła nowa wersja simulavr: http://www.nongnu.org/simulavr/download.html . Przechodząc do konkretów oto moje pytania:
    1. Proces instalacji samego simulavr w systemie win7 jest dla mnie mocno nieczytelny, czy byłaby możliwość małego wyjaśnienia?
    2. Czy jest sens implementacji tego w eclipse skoro producent pisze, że wiele interfejsów i tak nie jest wspieranych?
    3. Czy istnieje jakiś sposób konfiguracji eclipse (lub zainstalowania jakiegoś dodatku), który pozwoliłby na korzystanie z software'owego debuggera, wspierającego wszystkie interferjsy urządzenia (porównywalny z możliwościami tego z AVRStudio), dla typowych rodzajów mikrokontrolerów AVR (ATmega8, 16, 32 itd)?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 kwi 2012, o 21:07 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    zauważ ze napisałem iż podjęto starania i że możliwe jest że projekt będzie nadal rozwijany:)

    1. Da się zrobić bez większych kłopotów --- ja trzeba to pytaj co cie martwi chętnie odpowiem
    2. Oczywiście że jest sens choćby w celach poznawczych --> zobaczymy może będzie nowa wersja lepiej chodzić
    3. Oczywiście że można podłączyć w podobny sposób softwareowy debuger symulator z AVrStudio :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2012, o 10:52 
    Offline
    Nowy

    Dołączył(a): 09 kwi 2012
    Posty: 20
    Pomógł: 0

    Interesująca wydaje się opcja podłączenia debuggera z AVR Studio. Czy mógłbyś mi jakoś podpowiedzieć jak zaimplementować debugger avr stufio w eclipse indigo?
    Jak narazie mam konfigurację, którą znalazłem w internecie tj. podłączyłem debugger z WinAVR ver. 2010. Projekt się kompiluje, debugger nie wykazuje błędów, ale brak wartości w okienku podglądu Rejestrów, Memory oraz Disassembly, ponadto program debuggera nie zatrzymuje się na początku funkcji main(), właściwie nie wiadomo gdzie się zatrzymuje. W oknie disassembly jest informacja No debug context.
    Oto ustawienia mojego debuggera:
    Obrazek
    Obrazek
    A o to widok okienka disassembly:
    Obrazek
    oraz registers:
    Obrazek

    Zaznaczam, że wyłączyłem optymalizacje. Projekt skompilowany dla ATmega32. Próbowałem także z innymi kombinacjami debuggerów avr-gdb, avr32-gdb itd ale nic nie pomaga.

    Moim celem jest debuggowanie programu w eclipse indigo tak abym miał jakikolwiek podgląd w wartości rejestrów, zmiennych itd, poprostu coś na wzór tego co w avr studio, nie musi to być tak graficznie rozbudowane byle był podgląd wartości dla kompletnego mikrokontrolera. Czy mógłbym prosić o jakąś sensowną konfigurację, bo trochę uciążliwe wydaje się pisanie kodu w eclipse a debugging w avr studio??;) Jakiego debuggera Ty używasz?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2012, o 14:33 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Witam opiszę ci dokładnie jak to zrobić jak będę tylko miał chwilkę
    ja korzystam z avr-gdb i dragona .


    No więc tak:

    1 .. avr32gdb ... hmmm no tego jakby tu nie być brutalnym

    -- dotyczy mikroklocków z rdzeniem AVR32 a nie ze jest na system32 działać nie będzie z atmegami

    2. z tego co widzę nie wystartował ci się avarice , przeczytaj jeszcze raz i zobacz screeny wyżej
    jak masz jtagice to w pisz go w ustawieniach zamiast dragona
    sprawdź porty dla gdb bo tu chyba tez masz mały miszung
    i dodatkowo chyba nie powstaje ci plik elf w procesie kompilacji stad brak informacji dla disasembling

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 kwi 2012, o 08:58 
    Offline
    Nowy

    Dołączył(a): 09 kwi 2012
    Posty: 20
    Pomógł: 0

    Dzieki wielkie;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 kwi 2012, o 09:49 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Nie ma problemu jak coś to pytaj , niebawem będzie gotowa paczka z nowym eclipse
    i skonfigurowanym debugerem :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2012, o 12:04 

    Pomógł: 0

    Na początku chciałem podziękować koledze SunRiver za świetny tutorial.

    Mam pytanie z serii "Głupich" ;), czy za pomocą avr dragon i złącza jtag, można w jakiś sposób zapalać tj. ustawiać bity na poszczególnych portach procesora, czy jedynie debugować program?.



    Góra
      
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2012, o 12:14 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Zasadniczo można , poprzez wpisywanie danych bezpośrednio do rejestrów , ale nigdy tego nie praktykowałem
    lepszy tu byłby emulator sprzętowy procesora ale nie wiem czy takowe istnieją dla AVR dla '51 były
    wopinałeś to w LPT i taśmę w podstawkę i bez procesora mogłeś na kompie symulować zachowanie pinów w docelowym układzie :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lip 2012, o 21:13 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 lip 2012
    Posty: 238
    Pomógł: 5

    Witam

    Mam pytanie, bo chcę zmusić Eclipse do debugowania i coś się wykłada na pierwszym kroku uruchamiania AVaRICE.

    Mam programator AVR JTAG (AVR JTAGICE COMPATIBILE) czyli ten mkI, zmusiłem do programowania AVR Dudem i programuje. Ale jak zacząłem ustawiać AVaICE i uruchamiać go to wyskakuje mi błąd:
    Kod:
    AVaRICE version 2.9, Jan  7 2010 22:42:57

    Defaulting JTAG bitrate to 250 kHz.

    did not find any USB device "usb"
    USB device not found


    Czyli nie może go znaleźć.

    Co jak co to AVRdude widzi ten programator pod COM2 ... i stoję teraz w miejscu ... co z tym zrobić?

    ps argumenty AVaRICE: C:\Documents and Settings\xbary>C:\WinAVR\bin\avarice.exe -1 --ignore-intr -j usb :4242


    ----------------
    ALARM odwołany:)

    zamiast usb albo numeru portu (windows) należy podać urządzenie w stylu unixowym, czyli COM2 jest traktowany jako /dev/ttyS1 ... I tej zmianie PYroGramator ruszył, i GDB znim. :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lip 2012, o 21:48 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    no dobra , ale avrdude widzi coma i na nim programator , jak to jakiś dziwoląg typu 5 w jednym to bedzie stado problemów
    ja opisałem procedurę dla dragona , dla JTAG ICE wygląda to tak samo , a klonow nie sprawdzałem

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 paź 2013, o 09:42 
    Offline
    Nowy

    Dołączył(a): 10 paź 2013
    Posty: 2
    Pomógł: 0

    Witam

    A więc przyszła kolej i na mnie. Męczę się niemiłosiernie, ale postępy są nienajgorsze. Ustawienia mam takie jak podałeś Sunriver. Tak wygląda odpalenie AVaRICE w moim Eclipsie Luna

    Obrazek

    Jednak zrobiłem pewien myk, gdyż moja komenda wygląda następująco:

    --dragon --ignore-intr --jtag usb --detach :4242

    Dodałem --detach, gdyż bez tego proces uruchamiania AVaRICE zatrzymuje się na 250kHz...

    A więc mamy uruchomiony AVaRICE, który wgl mnie śmiga jak złoto - teraz odpalamy debug, no wlaśnie i tu jest problem, gdyż pojawiają się błędy

    No symbol table is loaded. Use the "file" command.

    oraz

    tbreak main
    No symbol table is loaded. Use the "file" command


    Wygląda to tak

    Obrazek

    Proces debugowania zatrzymuje się przy 99% a Dragon mruga z częstotliwością 5Hz.

    Jeszcze ciekawi mnie bo nie ma o tym słowa w poradniku czy prawidłowo wybieram tutaj opcje Standart GDB

    Obrazek

    Czekam na nawet najbardziej banalne porady i z góry dziękuję za nie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 paź 2013, o 12:50 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    heh,,,, no mogło zabraknąć ja odpalam zawsze GDB (DSF) ..

    przeczytaj też część 2gą topic958.html

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 paź 2013, o 15:01 
    Offline
    Nowy

    Dołączył(a): 10 paź 2013
    Posty: 2
    Pomógł: 0

    Dzięki za odpowiedź.

    A więc tak. W akcie desperacji zainstalowałem linuxa, wszystkie potrzebne pakiety w tym eclipse z pluginami, ustawienia takie same jak na powyzszej windzie - efekt jest identyczny... ten sam problem. W załączniku przesyłam obecną konfigurację. Oczywiście używałem Standard GDB Launcher i GDB (DSF) w Debug Configuration.

    http://www.sendspace.com/file/pojd33



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO