Skocz do zawartości

Kurs STM32L4 – #4 – komunikacja przez UART, debugger


Pomocna odpowiedź

Napisano

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

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.

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

@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
(edytowany)
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

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

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

@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 😉

Obszerny kurs to i tempo musi być trochę szybsze! Jednak spokojnie, nic nie zginie - ten kurs będzie dostępny jeszcze bardzo długo 😉

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