TT#2 Build Analyzer
Pracując nad projektem opartym na mikrokontrolerze (w szczególności, kiedy zaczyna być coraz bardziej rozbudowany) dochodzimy do momentu, kiedy zaczyna nas interesować to, ile miejsca w pamięci nasz program zajmuje. STM32CubeIDE oferuje nam ciekawe narzędzie, która ułatwia szybkie podejrzenie rozmiaru, adresów oraz zajętości pamięci.
Build Analyzer, bo o tym mowa, to wbudowana funkcja dostępna w STM32CubeIDE. Wykorzystuje pliki „elf” oraz „map” i na ich podstawie w sposób graficzny prezentuje dane o używanej pamięci. Po uruchomieniu IDE funkcja powinna się nam pojawić domyślnie w oknie (perspektywie) C/C++. Jeżeli jednak nie masz jej dostępnej, można ją włączyć wybierając w menu „Windows->Show View->Build Analyzer”. Okno Build Analyzer składa się z dwóch zakładek: Memory Regions oraz Memory Details.
W zakładce Memory Regions znajdziemy podstawowe informacje z podziałem na rodzaje pamięci dostępne w mikrokontrolerze. W tabeli możemy dowiedzieć się, jakie pamięci mamy do dyspozycji, jakie są adresy początkowe i końcowe danych obszarów pamięci, jaki jest ich rozmiar, ile miejsca zajmuje nasz kod (wartość procentowa) oraz ile miejsca pozostało wolnego. Dodatkowo pole z wartością procentową informującą o ilości zajętej pamięci jest podświetlane na jeden z kolorów: zielony (poniżej 75%), żółty (pomiędzy 75% a 90%) lub czerwony (powyżej 90%). Pozwala nam to w szybki sposób zorientować się , jak bardzo pamięć jest obciążona.
Zakładka Memory Details przedstawia bardziej szczegółowe informacje dotyczące sekcji w pamięci: adresy oraz rozmiar. W tabeli znajdziemy zarówno informację o adresie VMA (Virtual Memory Address), czyli adresie używanym podczas działania programu, jak i LMA (Load Memory Address), czyli adresie używanym podczas ładowania (na przykład do inicjalizacji zmiennych globalnych). Mamy też możliwość sortowania (kliknięcie w nagłówek kolumny) i wyszukania po nazwie, co może być przydatne w przypadku rozbudowanych projektów.
Warto wspomnieć, że pod ikoną trzech kropek (w prawym górnym rogu okna) możemy zmienić sposób wyświetlania danych: jako ilość bajtów, wartość HEX lub jako ilość kB (opcja human).
Do czego Build Analyzer może nam się przydać? Choć dane mają charakter dość ogólny, mogą być przydatną informacją w procesie optymalizacji programu, gdzie możemy na bieżąco sprawdzić rozmiar kodu, analizując, czy nasze zmiany przyniosły zamierzony skutek.