Skocz do zawartości

Kurs STM32L4 – #4 – komunikacja przez UART, debugger


Komentator

Pomocna odpowiedź

Kurs STM32L4 – #4 – komunikacja przez UART, debugger

Komunikacja z mikrokontrolerem przez UART ma wiele praktycznych zastosowań. Dlatego już teraz omówimy najprostsze podejście do obsługi takiej transmisji (i połączymy ją z funkcją printf). Wskażemy też kilka częstych błędów związanych ze znakami końca linii i kodowaniem. Przy okazji skorzystamy także z debuggera.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

  • Lubię! 1
Link do komentarza
Share on other sites

Przypominamy: w komentarzach do kursów rozmawiamy wyłącznie na tematy związane z konkretnym kursem. Mile widziane są również informacje od osób, które korzystały wcześniej z naszych poradników. Wszystko po to, aby kursanci, którzy mają zamiar korzystać z tego kursu nie musieli "przedzierać" się przez dziesiątki postów na inne tematy. Tematy na pytanie, które nie są związane z kursem można zadawać na naszym forum o mikrokontrolerach.

Link do komentarza
Share on other sites

Zachęcam do lektury i samodzielnego eksperymentowania z printf! Mam nadzieję, że od teraz nikt już nie będzie miał problemów ze zrozumieniem tematu znaków końca linii. Niby prosta sprawa, ale jednak często generuje to problemy w różnych projektach.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

36 minut temu, Elvis napisał:

Ponownie wyszło trochę dużo tekstu, ale mam nadzieję, że czytelnicy nie będą zawiedzeni.

Jeszcze nie trenowałem w praktyce, bo nie mam teraz płytki pod ręką, ale z przyjemnością przeczytałem na sucho. Jak dla mnie takie informacje o znakach końca linii i dodatkowe wyjaśnienie to duża zaleta tego kursu. Przy okazji zaczynam widzieć jak wiele jeszcze nie wiem, ale cóż... Po to uczę się z kursu, aby wiedzieć więcej :) Wieczorem siadam do praktyki.

  • Lubię! 1
Link do komentarza
Share on other sites

@Nore21 miło słyszeć, że pierwsze wrażenia są pozytywne! A co do własnej niewiedzy... to spokojnie 😉 Elektronika jest tak ciekawym hobby, że zawsze jest coś czego się jeszcze nie wie. Trzeba do tego przywyknąć i cieszyć się, że cały czas można poznawać coś nowego. Sami też czasami uczymy się jeszcze czegoś nowego przy okazji pisania kursów.

  • Lubię! 1
Link do komentarza
Share on other sites

6 godzin temu, Treker napisał:

cieszyć się, że cały czas można poznawać coś nowego

Takie mam do tego nastawienie 😉

Zakładam, że to skomplikowane zagadnienie, ale jak właściwie działa taki debugger? To wszystko wygląda świetnie, zatrzymywanie programu, podglądanie zmiennych, zmiany w pamięci itd. Jednak jak to właściwie działa w praktyce? Te zmiany wprowadza jakoś programator czy to raczej działa tak, że przez programator wysyłamy do mikrokontrolera tylko jakieś polecenia, a on ma w sobie jakiś moduł, który sam wprowadza zmiany w pamięci i zatrzymuje układ? Nie chodzi mi o szczegóły, bo pewnie jest o tym XXX stron dokumentacji. Ale możecie jakoś w 2-3 zdaniach napisać jak to działa?

Edytowano przez Treker
Poprawa literówki.
  • Lubię! 1
Link do komentarza
Share on other sites

Dobrze trafiłeś, bo to faktycznie skomplikowany temat, chociażby dlatego, że istnieją różne narzędzia do debugowania programów. Różnią się one możliwościami, które zyskuje przy okazji programista. Jednak pisząc w największym skrócie to co wykorzystujemy tutaj to tzw. SWD. Jest to uniwersalny standard, dzięki któremu można debuggować mikrokontrolery z rdzeniami ARM. Aby całość zadziałała potrzebne jest środowisko z interfejsem debuggera, odpowiedni programator (sprzętowy debugger) oraz mikrokontroler z możliwością debugowania, bo nie każdy układ ma takie możliwości. Dopiero połączenie tych 3 składników pozwala na takie operacje, a za bezpośrednie manipulowanie pracą mikrokontrolera odpowiada moduł, który jest wbudowany do jego wnętrza. Odbiera informacje z programatora i wykonuje odpowiednie operacje, np. wstrzymuje działanie układu. Znacznie więcej na ten temat można się dowiedzieć np. z lektury tego hasła: https://en.wikipedia.org/wiki/JTAG Ale to już raczej w ramach ciekawostki 😉

  • Lubię! 1
Link do komentarza
Share on other sites

@Nore21 Ciężko jest krótko odpowiedzieć na Twoje pytanie, ale w największym skrócie - w samym mikrokontrolerze wbudowane są odpowiednie moduły ułatwiające debugowanie programów. Nie jest to jeden moduł, ale cały ich zestaw, w dokumentacji STM32L4 znajdziemy taki diagram:

2021-04-23-142509_2559x1400_scrot.thumb.png.ec3459ef37cacfce44edf037d0924adf.png

Programator ST-Link/V2 przez moduł "SWJ-DP: Serial wire / JTAG debug port" i linie SWDIO/SWCLK ma dostęp do zasobów mikrokontrolera.

  • Lubię! 2
Link do komentarza
Share on other sites

17 minut temu, Elvis napisał:

w samym mikrokontrolerze wbudowane są odpowiednie moduły ułatwiające debugowanie programów

Dzięki, tyle na ten moment mi wystarcza! Po prostu chciałem wiedzieć czy mikrokontroler musi mieć w sobie "coś", aby mógł być debugowany, czy to działa jakoś niezależnie od wnętrza mikrokontrolera.

Link do komentarza
Share on other sites

@Ma_Ciej witam na Forbocie i dziękuję za miłe słowa. Cieszę się, że nasz nowy kurs Cię zainteresował. Gorąco zachęcam do tego, aby działać w praktyce i regularnie udzielać się na forum 😉

Link do komentarza
Share on other sites

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

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.