Skocz do zawartości

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

@Gienek powiem szczerze, kiedyś miałem na oku SWO, ale przy okazji zastosowania do logowania przy użyciu tego narzędzia: https://github.com/rokath/trice

Nie pamiętam czemu odpuściłem i nie zgłębiłem tematu. W sumie od wtedy nie używałem SWO i nie interesowałem się nim więcej, do czasu aż napisałeś o SWO w kontekście wykresów w Cubie 😉

Postanowiłem sobie poklikać i parę ficzerów bardzo mi się spodobało:

1. Sampling profiler oparty o PC

2. Exception trace - fajna sprawa do logowania przerwań, niestety w przypadku dużej liczby przerwań mam ciągły overflow (może źle szukałem ale nie widzę opcji filtracji przerwań w Cubie czy rejestrach) 

2. Porty ITM które można wykorzystać na wiele sposobów  - np ręczne, wybiórcze logowanie przerwań co niejako rozwiązuje poprzedni problem

Z wad, które zobaczyłem po krótkiej zabawie: 

1. Wyświetlanie zmiennych na wykresie często mi się zacinało, a overflow pakietów wywalał mi całkowicie Cuba 😛 Ograniczenie do czterech logowanych zmiennych też nie pozwala na wiele, ale to zrozumiałe - to jest małe narzędzie do szybkiego podglądu.

2. Brak wizualnego przedstawienia przerwań, tylko widok statystyczny - czasami taki pogląd pozwala wyłapać które przerwanie wywłaszcza które itp. 

3. Czas wymagany na włączenie debugera, aby podejrzeć wartości zmiennych jest dosyć długi w porównaniu do kliknięcia przycisku start w np STMStudio. 

Ogólnie wg mnie super sprawa - ciekawi mnie czy byłbym w stanie jakieś funkcjonalności zawrzeć w ramach STMViewera. Z tego co widzę libka z której korzystam do obsługi stlinka nie posiada wsparcia dla SWO. Może kiedyś poczytam ile implementacja czegoś takiego by zajęła. 

Dzięki za przypomnienie o tej funkcjonalności! 

 

  • Lubię! 1
(edytowany)
15 godzin temu, klonyyy napisał:

3. Czas wymagany na włączenie debugera, aby podejrzeć wartości zmiennych jest dosyć długi w porównaniu do kliknięcia przycisku start w np STMStudio. 

W CubeIDE możesz stworzyć profil debugowania który pomija fazę kompilacji kodu oraz wgrywania do pamięci. Można wtedy się podłączyć do układu w dowolnym momencie i rozpocząć debugowanie.

Tu instrukcja: https://community.st.com/t5/boards-and-hardware-tools-mcus/connecting-to-running-target/td-p/272666

Co do twojego programu to zapowiada się ciekawie i integracja SWO wydaje się naturalną drogą dalszego rozwoju.

Pozdrawiam,
Marek

Edytowano przez MR1979
  • Lubię! 1
Przed chwilą, MR1979 napisał:

W CubeIDE możesz stworzyć profil debugowania który pomija fazę kompilacji kodu oraz wgrywania do pamięci. Można wtedy się podłączyć do układu w dowolnym momencie i rozpocząć debugowanie.

Pewnie masz na myśli tzw. attach - czasami korzystam z tego trybu, ale z tego, co pamiętam, nadal jest paru sekundowe opóźnienie, aż debugger się podłączy, Cube zmieni konfigurację wyświetlania środowiska itp.  Niemniej jednak przyspieszy to nam pracę o kroki, które wspominałeś. 

  • Lubię! 1

@klonyyy ooo, cieszę się 🙂 W Cubie jest trochę narzędzi. Czasem używam podgląd pamięci, działa też z zewnętrznymi pamięciami memory mapped.

Ostatnio pracuję z Azure RTOS, do tego jest też kilka przydatnych widoków - profiler dla wątków, nawet pokazuje, że np wątek_a jest zablokowany przez semafor_1. Jest też TraceX, który robi nagranie wykonania i później możesz odtworzyć sekwencje wątków.

  • Lubię! 2
  • 2 miesiące później...
  • 1 rok później...

Hej, jakiś czas nie wrzucałem tu updateów, ale temat STMViewera jest nadal aktualny - chociaż już pod nową nazwą - MCUViewer. Zmiana nazwy wynikła z współpracy z SEGGER'em - firmą produkującą programatory J-Link. Dzięki temu program nie jest już ograniczony tylko do mikrokontrolerów STM32. JLinki są teraz obsługiwane w module Variable Viewer, czyli module samplującym (w tym w trybie HSS, czyli takim w którym możemy samplować z bardzo wysoką częstotliwością, nawet >50kHz), oraz Trace Viewer czyli module dekodującym dane z pinu SWO. 

MCUViewer6.thumb.gif.adeebe925b283de045e47dad8c53e683.gif

Aktualnie pracuję nad kilkoma nowymi funkcjonalnościami - jeśli macie jakieś pomysły na usprawnienia, chętnie ich wysłucham 🙂

Link do repa: https://github.com/klonyyy/MCUViewer

  • Lubię! 2

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...