Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 13 lis 2024, o 22:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 23 lis 2021, o 10:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 paź 2013
Posty: 143
Lokalizacja: Zamość
Pomógł: 0

Witam.

W internecie krąży mnóstwo poradników jak obsługiwać przerwania od stanu idle na linii UART w STM-ach. Jest to super rozwiązanie w przypadku gdy nie wiemy ile znaków przychodzi od urzaądzenia do uC (np. obsługa modemów poprzez komendy AT).

tu np. po polsku: https://msalamon.pl/dostalismy-swietna- ... le-w-halu/
tu np. po angielsku: https://controllerstech.com/uart-dma-wi ... detection/
filmik (streszczenie) na YT do wersji angielskiej: https://www.youtube.com/watch?v=Bo6MC5A8uTE&t=397s

Wszyscy definiują bufor do odebrania danych (który jest wypełniany danymi w przerwaniu) jako uint8_t pomijając volatile.
Czy wszyscy się mylą czy w tym przypadku bufor nie musi być volatile?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2021, o 12:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 368
Lokalizacja: Gliwice
Pomógł: 34

Wg mnie nie jest wcale potrzebne volatile przy buforze, bo niby dlaczego?
Dodajemy ten operator po to żeby na zmiennej nie dochodziło do optymalizacji. Kompilator wie, że nie należy "ruszać" takiej zmiennej.
Taki bufor to zawsze jest tablica w pamięci, najczęściej globalna i zarazem statyczna, a wskaźnik na bufor jest również formalnie typu "const" i w trakcie działania programu nie podlega żadnym zmianom, a kompilator i tak nie będzie "ruszał" takiego bloku pamięci.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO