logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATmega128A - Nie mogę ustawić breakpointów w Atmel Studio 6.2 i 7.0

z_lak1 28 Maj 2016 21:36 3117 37
  • #1 15705518
    z_lak1
    Poziom 8  
    Witam. Używam AS6.2.1563 SP2 oraz AS7.0.943. Mam problem z ustawieniem breakpoint'ów w kodzie źródłowym w różnych projektach. Po włączeniu debugowania w symulatorze jak i z użyciem debugera JTAGICE3 próba ustawienia breakpointa zawsze kończy się komunikatem: "The breakpoint will not currently be hit. Unable to set requestet breakpoint on target. Note: The current selected device is unable to set breakpoint during runtime." Zmiana w symulatorze typu mikrokontrolera nic nie dała. Próbowałem zmieniać poziom optymalizacji na -O0 i poziom debugowania na -g3 - bez skutku. Próbowałem również ustawić poziom optymalizacji na -Og - również nic to nie dało. Zauważyłem, że mogę bez problemu ustawić breakpoint'y w kodzie asemblerowym.
  • #2 15710808
    z_lak1
    Poziom 8  
    Tytułem wyjaśnienia: oba AS zainstalowane są na tym samym PC (Win7 64bit Home Premium SP1). AS7.0.943 pobrałem cały ze strony Atmel - nie korzystałem z rekomendowanego sposobu z wykorzystaniem instalatora. Sprawdziłem poprawność SHA i doinstalowałem do AS6.2.1563.
    W pracy na PC z Win 7 64 bit Enterprise SP1 mam również zainstalowany AS6.2.1563 SP2 i AS7.0 ale w wersji 790 i tam mogę ustawić breakpointy bez problemu zarówno w symulatorze, jak i z użyciem debugera JTAGICE3.
    Do testowania breakpointów napisałem krótki program, który załączam. Ustawiam breakpointy w liniach:
    PORTA |= _BV(0); //LED on
    PORTA &= ~_BV(0); //LED off
    w funkcji int main(void).
  • #3 15712980
    Konto nie istnieje
    Konto nie istnieje  
  • #4 15713060
    z_lak1
    Poziom 8  
    Witam.
    Dziękuję za odpowiedź.
    Próbowałem tak zrobić, ale po uruchomieniu symulacji breakpointy stają się nieaktywne i pojawia się ów nieszczęsny komunikat.
    Czas 500ms został wybrany gdyż wówczas widać działanie programu - mruganie LEDa.
    Dla symulacji w symulatorze programowym można ustawić preskaler TIMER0 na wartość 1 zamiast 1024 wpisując w lini 40:
    TCCR0 |= _BV(CS00); //preskaler = 1 (start TIMER0)
    Dodam również, że wczoraj wykonałem następujące czynności:
    1. Odinstalowałem AS7.0943
    2. Sprawdziłem możliwość ustawiania breakpointów w AS6.2.1563 - wynik negatywny :cry:
    3. Zainstalowałem AS7.0.943, tym razem skorzystałem z rekomendowanego sposobu z wykorzystaniem instalatora
    4. Sprawdziłem możliwość ustawiania breakpointów w AS6.2.1563 i AS7.0.943 - w obu przypadkach wynik negatywny :cry:
    Pozdrawiam
  • #5 15713274
    Konto nie istnieje
    Konto nie istnieje  
  • #6 15713673
    z_lak1
    Poziom 8  
    Może masz rację, że problem dotyczy systemu operacyjnego i/lub Visual Studio.
    Spróbuję tak zrobić jak napisałeś.
    Aby to sprawdzić będę musiał odinstalować obydwa AS, następnie wyczyścić rejestr ze śmieci po zainstalowanych programach, np. przy pomocy Ccleaner'a.
    Na koniec zainstaluję tylko AS7.0.943 w sposób rekomendowany przez Atmela.
    Z AS6.2.1563 SP2 zrezygnuję - trzymałem go tylko ze względu na przydatną aplikację Naggy.
    Ale teraz pojawiła się ona w AS7.0, więc mogę się definitywnie rozstać z AS6.2.
    Procesor wybrałem właściwie - jest to mój ulubiony (z konieczności) procesor.
    Większość programów testuję na zestawie ZL9AVR/ZL7AVR.
    Co do opóźnień w programie to wolę je robić na timerze (jak mam jakiś wolny) niż wykorzystując bibliotekę delay. Czasami muszę debugować z wyłączoną optymalizacją (-O0) i wówczas pojawiają się warningi, a z opóźnienia nie mogę zrezygnować ze względu na współpracujący z procesorem hardware.
    Ale oczywiście opóźnienia można również zrealizować przy pomocy biblioteki delay.
  • #7 15715168
    z_lak1
    Poziom 8  
    No i zrobiłem dokładnie tak jak opisałem wyżej.
    Dalej to samo.
    Przeprowadziłem naprawę AS7.0.943 - również nic to nie dało.
    Powtórzyłem wszystkie czynności dla starszej wersji (AS7.0.790) (na komputerze w pracy mam tą wersję i breakpointy ustawiam bez problemu).
    Ale tam oprócz AS6,2.1563 SP2 jest jeszcze historyczny AVR Studio 4.18 z kompilatorem WinAVR (nie sądzę aby to miało znaczenie).
    Zarówno podczas instalacji AS7.0.943, próby naprawy jak i instalacji AS7.0.790 w trakcie instalacji Atmel Driver Files pojawiały mi się wielokrotnie monity (pomimo włączenia opcji "Zawsze ufaj oprogramowaniu z Atmel Norway") "Czy chcesz teraz zainstalować to oprogramowanie urządzenia?". Monity dotyczyły portów COM i LPT oraz Jungo Connetectivity. Wybierałem opcję "Zainstaluj" i może to był mój błąd. Dzisiaj powtórzę instalację wybierając "Nie instaluj".
  • #8 15715191
    Konto nie istnieje
    Konto nie istnieje  
  • #9 15715243
    z_lak1
    Poziom 8  
    Tylko nie rozumiem skąd się brały te wielokrotne monity (przynajmniej po 5 na każdy sterownik).
    Wymogi systemu operacyjnego spełniam.
    Używam legalnego Win7 64bit SP1 Home Premium.
    Włączona jest opcja automatycznej aktualizacji i PC jest non stop online.
  • #10 15715255
    tmf
    VIP Zasłużony dla elektroda
    Jeśli w różnych wersjach AS masz ten sam problem, to nie ma siły - musi on leżeć w twoim OS. Wyślij kompletny projekt z ustawionym breakpointem, to będziemy mogli sprawdzić u siebie jak to wygląda. Bo albo masz coś poważnie skopane w konfiguracji systemu, albo w konfiguracji projektu.
    BTW, wielokrotne monity z prośbą o zgodę na instalację sterowników są normalne.
  • #11 15716333
    z_lak1
    Poziom 8  
    Wysyłam kompletny projekt skompilowany w AS7.0.790 z dwoma przykładowymi breakpointami. Próbowałem ustawiać breakpointy w symulatorze w wszystkich liniach kodu źródłowego, ale mi się nie udało. Natomiast bez problemu ustawiam breakpointy w liniach kodu asemblerowego.

    File: test2.zip
    File size: 22,1 KB (22 677 bytes)
    SHA1 checksum: 95A1C96763570B0F96BC1E0E7FFDF7D5E2C1EA92
  • #12 15716655
    Konto nie istnieje
    Konto nie istnieje  
  • #13 15717396
    z_lak1
    Poziom 8  
    Uruchomiłeś cały mój projekt bez modyfikacji w symulatorze AS7.0?
    Jeśli zamiast symulatora programowego używasz debugera sprzętowego sprawdź w Properties'ach projektu w oknie Tool czy masz wyłączoną opcję Keep timers running in stop mode (ważne!).
    Mnie się nie zwiesza - jeszcze raz przetestowałem.
    Ustaw breakpointa w następnej linii za while (TIMSK &= ~_BV(TOIE0);) i chwilę zaczekaj.
    Możesz również dla symulacji ustawić preskaler timer'a na wartość 1 (opisałem to w jednym z wcześniejszych postów).
    Możesz również zmniejszyć wartość timer0_licz.[/code]
  • #14 15717405
    Konto nie istnieje
    Konto nie istnieje  
  • #15 15719599
    z_lak1
    Poziom 8  
    Zauważyłem także, że po uruchomieniu symulacji w trybie Start Debugging and Break (Alt+F5) AS7.0.790 nie wyświetla żółtej strzałki na pierwszej linii funkcji int main(void) (u mnie linia nr 26) tylko ją zaznacza obramowaniem.

    ATmega128A - Nie mogę ustawić breakpointów w Atmel Studio 6.2 i 7.0
  • #16 15719636
    Konto nie istnieje
    Konto nie istnieje  
  • #17 15721471
    z_lak1
    Poziom 8  
    Skomplikowane to akurat nie jest, ale proszę przeczytaj od początku moje posty.

    Dodano po 3 [minuty]:

    Zastanawiam się, może jest jakiś przełącznik przełączający debugowanie z C na asembler.
  • #18 15721558
    tmf
    VIP Zasłużony dla elektroda
    Myślałem, że może coś w konfiguracji projektu masz nie tak, ale u mnie po wczytaniu twój projekt normalnie się symuluje. Poniżej screenshot:
    ATmega128A - Nie mogę ustawić breakpointów w Atmel Studio 6.2 i 7.0
    Jak dasz Alt+F5 (Start debugging & break) to też nie zatrzymuje sie na pierwszej linii?
  • #19 15721631
    Konto nie istnieje
    Konto nie istnieje  
  • #20 15722045
    tmf
    VIP Zasłużony dla elektroda
    Piotrus_999 napisał:
    I zobacz w okienku podgladu asemblera czy coś w ogóle jest w tych liniach a nie zostało jakos zoptymalizowane.


    Po to właśnie napisałem, żeby wstawił projekt, żeby można było samemu sprawdzić a nie gdybać. Skoru u mnie jego projekt daje się debugować i reaguje na breakpointy to znaczy, że z kodem i ustawieniami kompilatora wszystko jest ok. Czyli zostaje duga strona - soft na kompie.
  • #21 15723020
    z_lak1
    Poziom 8  
    Piotrus_999: pisałem na samym początku wątku ale przedstawię to jeszcze raz

    ATmega128A - Nie mogę ustawić breakpointów w Atmel Studio 6.2 i 7.0

    Co do asemblera, to jak widać mogę ustawiać breakpointy.

    ATmega128A - Nie mogę ustawić breakpointów w Atmel Studio 6.2 i 7.0

    tmf: na innym kompie bez problemu ustawiam breakpointy w kodzie źródłowym w tym projekcie (i w innych również). Twoje przypuszczenie, że coś jest nie tak z softem na kompie jest jak najbardziej słuszne.
    Tylko co to może być?
    Może jest jakiś przełącznik w AS, który uruchamia symulację albo w asemblerze (tak u mnie jest) albo w C?
  • #22 15723048
    Konto nie istnieje
    Konto nie istnieje  
  • #23 15723085
    z_lak1
    Poziom 8  
    Breakpointa nie mogę również ustawić po Continue (F5) i Break All (Ctrl + F5).
    Problem nie dotyczy tylko symulatora, ale również debugowania z użyciem JTAGICE3. Próbowałem debugować mikrokontroler ATmega128A.
  • #24 15723446
    Konto nie istnieje
    Konto nie istnieje  
  • #25 15724596
    z_lak1
    Poziom 8  
    Włączyłem opcję Menu - Tools - Select profile -> Advanced i po uruchomieniu symulacji <Alt - F5> tak wygląda moje okno symulatora
    ATmega128A - Nie mogę ustawić breakpointów w Atmel Studio 6.2 i 7.0
  • #26 15724794
    Konto nie istnieje
    Konto nie istnieje  
  • #27 15724869
    z_lak1
    Poziom 8  
    Tylko nie mam pomysłu jak go zidentyfikować.
    Reinstalacja AS nic nie dała.
    Mogę spróbować naprawić lub przeinstalować Win-a.
  • #29 15725521
    z_lak1
    Poziom 8  
    Niestety już to robiłem. Nie jest to mój pierwszy projekt. Co więcej te same projekty debugowane na innym kompie (w pracy) w tym samym AS7.0.790 zachowywały się normalnie. Również próbowałem zmieniać MCU, też bez skutku.
    Pracuję na dwóch kompach: 1. w pracy i 2. w domu.
    Problem mam tylko z kompem w domu.
    Na obydwu kompach są podobne OS (Win 7 64 bit SP1 w pracy Enterprise, w domu Home Edition).
    Na obydwu kompach zainstalowałem tą samą wersję AS7.0 (build 790).
    Dodatkowo w pracy mam zainstalowane AS6.2 build 1563 SP2 oraz historyczne AVR Studio 4.18 build 716.
    W domu miałem również zainstalowane AS6.2 build 1563 SP2, ale go całkowicie odinstalowałem gdyż nie poprawił działania AS7.0.
    W domu zainstalowałem również najnowsze AS7.0 build 943, ale nic nie zmieniło w zachowaniu debugera więc wróciłem do build 790.
    Za każdym razem podczas odinstalowywania AS na kompie w domu postępuję następująco:
    1. odinstalowuję AS
    2. odinstalowuję wszystkie aplikacje produkcji Atmel (nie korzystam z innych produktów Atmel)
    3. odinstalowuję Microsoft Visual Studio 2015 Shell (Isolated)
    4. czyszczę rejestry programem AVG Tune UP.
    Podczas instalacji AS nie zgłasza żadnych zastrzeżeń do konfiguracji kompa.
REKLAMA