Skocz do zawartości

STM23CubeMonitor czyli podgląd pamięci w czasie rzeczywistym


Pomocna odpowiedź

Napisano

Wpisałem w wyszukiwarce forum "CubeMonitor" i... nic... (!). Nie wierząc własnym oczom, powtórzyłem kilka razy wyszukiwanie - w końcu wyszukiwałem samego słowa "monitor" i... nigdzie nie znalazłem wzmianek o tym narzędziu? Czy coś przeoczyłem (proszę mnie przekierować)...? Czy też to narzędzie jest tak "oczywiste", że nikt z użytkowników o nim nie wspomina? Hmm...

Dla mnie to wygląda na rewelacyjną pomoc przy debugowaniu/uruchamianiu programów na STM32. Ogromny też walor edukacyjny, biorąc pod uwagę, że poprzez monitorowanie pamięci można de facto odczytywać i zbierać do pliku lub wizualizować na dashboardzie wartości rejestrów I/O! Można też wartości tych rejestrów ZMIENIAĆ w czasie działania programu obserwując wpływ na zachowanie systemu!! 10 minutowy film na kanale  YT STMElectronics wystarczył, żeby uruchomić i zrobić pierwszy eksperyment.

Wow...

Nie pamiętam dokładnie gdzie, ale coś widziałem... Nie jestem pewien co dokładnie widziałem, czy były to tylko zrzuty z analizatora stanów logicznych, ale gdzieś też było chyba specjalne oprogramowanie do monitorowania RTOSa.

Pierwszy podejrzany to kurs na Udemy Mastering RTOS Kirana Nayaka aka FastBitBrainAcademycośtamcośtam...

Drugi to Modern embedded course programing by Miro Samek na youtube

@ReniferRudolf do samego monitora nie wiem, ale to o czym piszesz masz w debugerze. Expressions do zatrzymania na pułapce, możesz wpisać im wartości i wznowić, live expressions do podglądu zmiennych o globalnym zasięgu na żywo, podgląd rejestrów z możliwością wpisania wartości, podgląd pamięci i nawet zawnętrznych pamięci memorymapped.

image.thumb.png.500413d15a306b31e79f8776de92f499.png

Tu masz podgląd PSRAM:

image.thumb.png.db11a778564e1e3294b98cbfcbbd3b32.png

  • Lubię! 1
42 minuty temu, Gieneq napisał:

@ReniferRudolf do samego monitora nie wiem, ale to o czym piszesz masz w debugerze.

[...]

Niezupełnie o to tylko chodzi, bo takie oprogramowanie monitoruje wydajność napisanego oprogramowania, jak i samego RTOS'a. Pokazuje czas przełączania wątków, czas spędzony w idlethread, procentowy udział czasowy zaimplementowanych wątków, częstotliwość uruchamianych wątków itd. Wszystko to bardzo ładnie opakowane graficznie z wykresami i statystykami.  Samo zaś zapisywanie do IO, czy rejestrów lub RAM można zrobić w debugerze, a RAM można nadpisywać lub przeglądać zawartość pod wskazanym adresem (RAM/ROM/IO) w ST-LINK Utility:

01.thumb.jpg.4027377276d8f28898dd7dad996b7d43.jpg

Podejrzewam że IO da się taż zapisywać

@Gieneq To zupełnie inna funkcjonalność niż debugger, chociaż, no owszem, jakiś daleki wspólny mianownik jest może 😉...

Chodzi o monitorowanie działającej aplikacji na żywo -  zbieranie danych w najmniej "inwazyjny" sposób w trakcie działania programu, zapisywanie do pliku i wizualizację dla analizy post-mortem. Ze strony STM:

  • Connects to any STM32 device via ST-LINK (SWD or JTAG protocols)
  • Reads and writes variables on-the-fly from and to the RAM in real time while the target application is running
  • Parses debugging information from the application executable file
  • Direct acquisition mode or snapshot mode
  • Enables to log data into a file and replay for exhaustive analysis
  • Delivers customized visualization with configurable display windows (such as curves and boxes) and a large choice of widgets (such as gauges, bar graphs and plots)
  • Pomogłeś! 1

@ReniferRudolf w sumie ciekawa sprawa. Kiedyś słyszałem że jest to porzucony projekt ale patrząc w release notes to coś się jednak dzieje. No, pół roku temu coś się działo. Przyjrzę się temu w najbliższych dniach i może dodamy trochę słów kluczowych do wyszukiwarki forum 🙂 

  • Lubię! 1
(edytowany)

@Gieneq Z tego, co szybko ustaliłem jakiś czas temu: zarzucony został dawny projekt, który był udostępniany pod nazwą STMStudio. Jego funkcjonalność przejął STMCubeMonitor. Jest to narzędzie dobrze udokumentowane i obecnie wspierane przez producenta.

Moje pytanie wynikało stąd, że ogromnie zaskoczył mnie brak wzmianek na forum. Zapewne to wynika z faktu, że forum ma zdecydowanie punkt ciężkości przesunięty w stronę sprzętu (elektroniki) niż technik debuggowania/uruchamiania software-u. Zresztą w tym CubeMonitorze nie ma nic super-zaawansowanego poza próbkowaniem pamięci, zbieraniem do pliku i wizualizacją na żywo. Natomiast z doświadczenia miałem okazję się przekonać, jak nie do przecenienia są tego rodzaju narzędzia.

Edytowano przez ReniferRudolf
6 godzin temu, virtualny napisał:

takie oprogramowanie monitoruje wydajność napisanego oprogramowania, jak i samego RTOS'a. Pokazuje czas przełączania wątków, czas spędzony w idlethread, procentowy udział czasowy zaimplementowanych wątków, częstotliwość uruchamianych wątków itd.

To co wymieniłeś to typowe funkcjonalności tzw. "profiler-a". STMCubeMonitor nie ma takich funkcji, natomiast widzę, że w dziedzinie profilowania kodu STM też ma odpowiednią ofertę: TrueStudio, cokolwiek to jest 🙂
https://www.st.com/en/development-tools/truestudio.html

Takie proste narzędzie jak CubeMonitor będzie miało dla wielu osób także walor edukacyjny - można "zobaczyć" na wykresie albo w innej formie graficznej, co "dzieje się" w środku programu, tzn. jak zmieniają się wartości wybranych zmiennych czy rejestrów I/O w trakcie, gdy program "leci na żywo" 🙂

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...