Wpis z mikrobloga

Eh, dostałem radę żeby zamiast używania Eclipse'a do debugowania #embedded, używał tylko portu UART do wypisywania syfu na konsolę. Japrdl, niektórzy developerzy powinni już dać sobie spokój ze swoimi starożytnymi metodami. Szczególnie takie, które robią projekt w C z 30 plikami .c, bez nagłówków, includując same pliki .c, walić DMA dla komunikacji z pamięcią zewnętrzną, bo ręczne przerzucanie GPIO w SPI jest szybsze.

#pracbaza #programowanie
  • 9
@fnzavrjvrz: póki co trzymam się przy swoim cywilizowanym podejściu, przynajmniej mam breakpointy i watchpointy. System jest zbyt złożony by opierać się tylko na tekstowych debugach.
@inspektor_gadzet: ja mam znacznie lepszą konsolkę napisaną pod te urządzenie, ze sprawnym filtrowaniem tagów i wizualizacją kluczowych stanów, ale jednak przydaje się czasami postawić breakpointa i przeanalizować coś krok po kroku, zamiast zasypywać konsolę toną wyników pośrednich.
@Razi91: fakt. Nie wiem jakie procki wykorzystujesz. Ja pracowałem na STM i tam pierwszą rzeczą jaką robiłem było odpalenie uart a następnie cli. Debuggera używałem jak szukałem błędów czy coś takiego. Do prostej sygnalizacji czy moduł wstał itd wystarczał uart. Tyle że trzeba było oddać dobrą obsługę błędów
@inspektor_gadzet: STM32. Jak są proste programy, to faktycznie UART wystarcza, ale jak się ma 4-wątkowy system robiący wiele rzeczy na raz asynchronicznie, z dość skomplikowanymi algorytmami i zawiłymi strukturami danych, to jednak dokładniejsza analiza pamięci okazuje się przydatna.
@m4tt: Prosty „klient” ITM odbierający wszystkie kanały (przez plik, mam możliwość wczytania starszych logów). Tag to po prostu pierwszy element linii (np. «[ADC] measure result: 1.640V»). Do tego zatrzymuje procesor, ściąga fragment SRAMu (adres jest stały) i po prostu parsuję bin-protocolem do wyświetlenia w tabelce. Chciałem się w wykresy bawić, ale jeszcze nie było takiej potrzeby, więc sobie podarowałem