W kolejkę z freertos'a nie trzeba dodawać po znaku można wciskać ciąg znaków / typ złożony itd (nawet tak jest w przykładzie w manualu). Chociaż uświadomiłeś mi głupawość tego rozwiązania musiałby być jeszcze jeden wewnętrzny bufor do przepisywania wiadomości. Można, tyle że w kolejce i tak zapisujesz elementy o stałym rozmiarze. Dlatego normalna kolejka...
Witam! Pracuję obecnie nad zintegrowaniem stdio (streams) z różnymi peryferiami w ARMie (akurat jest to LPC1769) oraz z plikami (FatFS), a wszystko to "pod kontrolą" FreeRTOSa. Jak wiadomo (albo i nie), integracja taka to w głównej mierze napisanie własnych wersji syscalls - m.in. open, close, read, write. Za przykład problemu weźmy write - funkcja...
Ile zasobów na co potrzeba, jak używać dobrodziejst RTOSa jak multitasking. Tak postawione pytanie jest tak ogólnikowe, że niezbyt wiem jak można na nie odpowiedzieć inaczej niż ogólnie znanymi informacjami. Z zasobów to potrzebny jest na pewno jeden timer, zwykle SysTick. Dodatkowo oczywiście pamięć (; Najlepiej więcej niż mniej. Są RTOSy których...
to zrób globalne consty
W ten sposób dane są odbierane jednorazowo, niestety RTOS ich nie odświeża. Co to znaczy nie odświeża? Jezeli chcesz zeby ładnie w przegladarce ciągle się wyświetlało to musisz napisać trochę JS ajax-em słać do serwera ciągłe requesty. Inaczej to RTOS nic nie odświeży. Na wysłanie 1 bajtu kolejka to dość kosztowne rozwiązanie. Do tego ciągle wkładasz...
(at)Blue Draco - Szczerze powiedziawszy, nie wgłębiałem się zbyt w obsługę HD44780, jedyne co modyfikowałem, to pozbycie się R/W i wprowadzenia odpowiedniego timingu, jakby to powiedzieć, sprzęt który zdziałałem testuje się lekko mówiąc w setkach sztuk i nigdy nie napotkałem na problem z tą obsługą (nie na freeRTOS bo z tym dopiero zaczynam). Oczywiście...
Zastanawia mnie praktyczny brak pytań dotyczących RTOS-ów. Ciekawe dlaczego amatorzy praktycznie nie korzystają z tego niezwykle przydatnego oprogramowania. Myślę że stoi za tym wiele mitów o RTOS-ach a szczególnie: 1. RTOS zajmuje strasznie dużo zasobów i zjada mnóstwo taktów procesora RTOS tak naprawdę nie zjada żadnych taktów poza przełaczniem wątków...
Nigdzie nie jest inicjalizowna kolejka xQueueMessage xMessage. [syntax=c] void EXTI9_5_IRQHandler(void) { xQueueMessage xMessage; long lHigherPriorityTaskWoken = pdFALSE; if( EXTI_GetITStatus( EXTI_Line5 != RESET ) ) { xMessage.cMessageID = PUSH_BUTTON_NEW_GAME; //xQueueSendFromISR( xKeyQueue, &xMessage, &lHigherPriorityTaskWoken); EXTI_ClearITPendingBit(...
Witam, chciałbym, żeby ktoś obeznany wyjaśnił mi dlaczego podane na poniższej stronie stwierdzenie jest poprawne: http://www.freertos.org/Embedded-RTOS-Bi... Think of a binary semaphore as a queue that can only hold one item. The queue can therefore only be empty or full (hence binary). Tasks and interrupts using the queue don't care...
Dane przesyłane do tej kolejki są z funkcji TickHook, a wygląda to tak: [syntax=c]char *pcMessage = "Status: PASS"; xHigherPriorityTaskWoken = pdFALSE; xQueueSendFromISR( xLCDQueue, &pcMessage, &xHigherPriorityTaskWoken );[/syntax] Funkcja TickHook jest wykonywana z każdego przerwania systemowego, natomiast dane przesyłane kolejka są raz na określona...
Tu masz przykład tego o co pytasz: http://www.freertos.org/tutorial/solutio... Semafory to taka kolejka bez danych - służy właśnie do tego o czym mówisz. http://www.freertos.org/Inter-Task-Commu... Oczekiwanie na kolejkę/semafor może mieć timeout. 4\/3!!
Co do działania samego kodu, to nie ma problemów zadnych, jedynym jest fakt jednokrotnego wykonywania zadania bez ustawionych semaforów Rozumiem to i dlatego wyjaśniłem dlaczego tak się dzieje. Semafor domyślnie jest zwolniony dlatego task za pierwszym razem się wykonuje (po jego zwolnieniu) a za drugim już nie (bo jest zajęty) i czeka na zwolnienie...
Wg. opisu 3ci parametr xQueueReceive definiuje po ilu taktach (czyli ms) zadanie ma przechodzić w stan ZABLOKOWANE. Jest dokładnie odwrotnie - ten parametr to po prostu timeout - przez X ticków Twój task będzie zablokowany, jeśli nic nie ma w kolejce, a po tym czasie task zostanie wybudzony i uruchomiony. 4\/3!!
Nie ma jakiegoś uniwersalnego rozwiązania. Wiele kolejek to raczej trochę przekombinowane rozwiązanie, więc pewnie jakaś zmienna + mutex. A czy po zablokowaniu tego mutexa robić kopie czy ich nie robić, to już zależy od sytuacji (jak szybko musisz go zwolnić żeby reszta programu się nie przycięła nadmiernie). Ewentualnie jak masz bardzo dużo pamięci,...
Z drugiej strony, zwłaszcza na zagranicznych forach, pada wiele zarzutów pod adresem tego systemu. Pisze się, że jest nieefektywny, bardzo powolny i bardzo ubogi w funkcjonalności (że posiada niby głównie taski, kolejki, semafory a brak mu np timerów). Po takiej opinii możesz od razu ocenić jej poziom, bo: http://www.freertos.org/RTOS-software-ti...
software timery są oparte o kolejki lepiej poznaj kolejki. Praktycznie wszystko w FreeRTOS oparte jest o kolejki :)
Wiem, że nie jest to najprostszy sposób przedstawienia problemu z funkcją vTaskDelayUntil(), ale w żadnym innym miejscu, w którym z niej korzystałem problemu nie było. w najbardziej trywialnej wersji: [syntax=c]void vfoo_Task(void * pvParameters){ portTickType xLastFlashTime; xLastFlashTime = xTaskGetTickCount(); for(;;){ Clr_BUZZER; vTaskDelayUntil(...
Moim zdaniem wątku nie da się przerwać. Mogę się jednak mylić z tego powodu właśnie zadałem tu pytanie. Nie mylisz się. Micropython nie wspiera możliwości zatrzymania (terminowania) wątku, a gdyby była taka możliwość to skończyłoby się to uwaleniem całego programu. W ESP-IDF, na którym opiera się micopython nie ma też bezpośrednio możliwości zatrzymania...
OK pod FreeRTOS-em wszystko smiga jak ta lala ;) Kod przepisany z wykorzystaniem kolejek z FreeRTOS-a itd. Zamykam temat...
Moje pytanie dla upewnienia się. Rozumiem, że ustawiając priorytety przerwań od peryferiów należy stosować wartości z przedziału 5-15, mniejsze wartości zarezerwowane są dla systemu? Z grubsza tak. Dla przerwań możesz używać dowolnych priorytetów, ale te powyżej skonfigurowanej granicy NIE mogą używać funkcji FreeRTOSa (czyli semaforów, kolejek, ...)...
Więc proponuję Ci włączyć dane przerwanie dopiero po zarejestrowaniu semafora. Tak naprawde to powinieneś tak postępować z każdym mutexem,kolejką czy semaforem, niezależnie czy operują one w przerwaniu czy w tasku. Czyli najpierw tworzymy semafor, a potem uruchamiamy task, czy też włączamy dane przerwanie.
Teraz powiedzcie Koledzy jak do tego powinienem podejść przerzucając tego typu program do freeRTOS? Gdzie tu użyć semafora? Czy jest on wogóle potrzebny? Nigdzie. Należy użyć kolejki. Czym ten semafor różni się od "tradycyjnie" utworzonej zmiennej, którą np. chciałbym synchronizować wykonanie różnych zadań ("zadań" gdyż myślę jeszcze realiami aplikacji...
Witam tak czy siak nie chodzi mi tutaj o pomiar czasu, miało to być tylko orientacyjnie. Pętli for użyłem tylko żeby zobaczyć orientacyjny czas... dla pętli for W FreeRtos kopiując "kolejkę" używają właśnie memcpy, myślałem żeby użyć tam DMA, ale teraz się zastanawiam (stąd ten post ) czy goście z CodeSourcery nie zrobili tego memcpy na DMA, bo czas...
A nie jest to czasem SIM900/SIM300 - gdzie robisz to inaczej :) Przynajmniej ja robie inaczej tzn. podaje stan na PowerKey do czasu pojawienia sie informacji zwrotnej na pinie Status... wiec jakiejkolwiek petli nie mam :) Zobacz czy ten twoj modem nie jest czasem podobnie podlaczony do procesora... Ewentualnie mozna uzyc TaskDelay... ale nie musisz...
1.tak, zmienne to oczywiscie volatile (w zasadzie tylko ) TxHasEND_UART2- oznaczająca koniec transmisji -reszta taka być nie musi. 2. V6.0.5. rzeczywiście troche stara .. 3.tak, działa to jakby był to zwykły pooling. Ta funkcja to rodzaj gatekeep'era (nie najwyższych lotów). ----- włóż wskaźnik na dane do kolejki rozumiem, że kolejka w takim przypadku...
strncpy... a wczesniej malloc i memset (zerami)... z tym ze ja tutaj uzywam akurat pvPortMalloc (funkcja z FreeRTOS-a) dlatego pisalem ze nie bede wklejac kodu bo dalej sa uzytek kolejki itp. z FreeRTOS-a...
Obsługa SPI tylko i wyłącznie w przerwaniu od SPI i tylko dla celów drivera do SPI, a reszta zadań na SPI do kolejki i realizowana poprzez driver SPI napisany pod kątem obsługi kolejki zadań na SPI.
(at)damiano713 FreeRTOS jest oparty o zmodyfikowaną licencję GPL. Nie obliguje ona do publikacji kodu źródłowego aplikacji. Więc śmiało można FreeRTOSa używać. Używam tego Atmothreads w jednym z projektów i działa to nawet nieźle ale według mnie ma kilka wad: - jest przeznaczony na mniejsze procesory AVR - nie ma takiego wsparcia jak FreeRTOS -> mniejsza...
Wystarczy dołożyć funkcję, która zwróci wartość zmiennej. Tak jest zrobione - ta funkcja też nie ma dostępu do tej zmiennej, bo jest wywoływana przez wątek który ma taką a nie inną konfigurację MPU. Ja nie mówię o "dostępie" w znaczeniu widoczności zmiennej w kompilatorze, tylko o prawach dostępu w Memory Protection Unit. To jest specjalny port FreeRTOSa...
Zastanawiam się czy nie powinienem użyć Arduino FreeRTOS, ale nie wiem czy to jest rozwiązanie mojego problemu. Jeśli planujesz sobie odstrzelić kolana, to jest to doskonały pomysł. Próbowałem już timerów i funkcji mils, ale wydaje mi się że to nie jest właściwa droga W tym przypadku to najwłaściwsza droga. Problem należy podzielić na kilka niezależnych...
Witam, Coś takiego nie jest możliwe i chyba nigdy nie widziałem kolejki która by coś takiego implementowała... w freeRtos nazywa się xQueueOverwrite timeMessageQueue.tryPop(...); timeMessageQueue.push(...); Tak to właśnie zrobiłem na testy, z semaforami już kombinowałem. Właśnie patrzę na Twój przykład ConditionVariable... zaraz będę testował Pozdrawiam
Magiczne słówko na "v..."? Generalnie idea którą przedstawiłeś jest kiepska z założenia. W typowym przypadku wątek powinien na "coś" czekać, a przerwanie powinno to "coś" "dawać". Przez "coś" należy rozumieć jakiś typowy obiekt synchronizacyjny (semafor, kolejka, flaga [nie mylić ze zmienną globalną], ...), a który dokładnie to już zależy od tego jaki...
Mam wielordzeniowy 32-bitowy mikrokontroler pod freeRTOS. Kiedy przekazywanie danych między taskami na różnych rdzeniach przez zmienną globalną jest złym rozwiązaniem? (Proces na rdzeniu I wpisuje do zmiennej. W momencie, gdy nie ukończył jeszcze wpisywania, proces na rdzeniu II odczytuje. Część odczytanych bitów jest nowa część stara. Kiedy może się...
W zasadzie musisz zastanowić się jakie równoległe wątki mają być w systemie. Mogą się komunikować ze sobą tylko za pośrednictwem mechanizmów udostępnianych przez FreeRTOS (o ile dobrze pamiętam jest tam mechanizm kolejek). Do synchronizacji służą semafory. Jeśli potrzebujesz wiedzy o problemach związanych z synchronizacją zadań w OSie wielozadaniowym...
Dzień Dobry Potrzebuję małej rady. Jestem w trakcie realizacji pewnego projektu i mogę użyć callbacków i algorytmu karuzelowego lub przeprowadzić eksperymenty z systemem czasu rzeczywistego. Tak czy siak muszę nabrać doświadczenia w tej dziedzinie. Z tego co wstępnie wiem to wystarczy do projektu dodać odpowiednie pliki ".c" i ".h.". Podobno mogę wtedy...
Witam W jaki sposób można odczytać dane przesyłane z PC poprzez USB? Korzystam z dema FREERTOS-a lwIP_Demo_Rowley_ARM7. Z tego co się zorientowałem, to są tam dwie kolejki: static xQueueHandle xRxCDC; static xQueueHandle xTxCDC; No i problem polega na tym, że jeśli użyję xQueueReceive (xRxCDC ... ) w jakimkolwiek uruchomionym tasku, to USB całkowicie...
Diodki świecą :) Dodatkowo udało mi się uruchomić wyświetlacz i zrobić prostą komunikacje wyświetlacza z diodką na bazie kolejki. Wszystko fajnie działa. Teraz chciałbym spróbować przerwań, tylko wyczytałem że tu trzeba trochę pokombinować...mógłby ktoś na jakimś prostym przykładzie zademonstrować jak we FreeRtos-ie działają przerwania? Może jakiś kawałek...
ludzie, może odpowiedzcie autorowi na temat... . Wszyscy się wypowiedzieli, a nic z tego nie wynika... Semafory i mutexy to prawie to samo. Są one wykorzystywane w aplikacjach wielowątkowych - służą do synchronizacji wątków, i zapobieganiu tzw. data race . Załóżmy sytuację klasyczną - producent i konsument. Jeden wątek wkłada dane do kolejki FIFO,...
Witam, zlęcę napisanie programu na Atmęgę - dowolną, który opraty byłby o system FreeRtos. Chodzi o użycie kolejek i semaforów, dla osoby znajacej temat 30 min roboty. Szczegóły na priv.
Dorzucam obiecany krótki opis struktury kodu w module głównym. Przy tym stopniu skomplikowania postanowiłem skorzystać z systemu czasu rzeczywistego, wybrałem znany mi już FreeRTOS. Dzięki temu miałem możliwość podzielenia funkcjonalności na poszczególne procesy. Poniżej wklejam printout z wszystkimi procesami i drugi z socketami. https://obrazki.elektroda.pl/4477476100_...
No wtedy się nie da, tak jak napisałem. Tyle, że skoro dane są już w buforze, najprostszą optymalizacją jest nie kopiować ramek do buforów tymczasowych, tylko parsować fifo w locie, a payloadów też nie kopiować, tylko przetwarzać w locie. Ale oczywiście to juz zależy od implementacji, gdyż cm3 nie potrafi sprzętowo adresować %, więc dostęp do każdego...
Wszystko fajnie, pod warunkiem, że chce się używać STM32. Dodanie podstawowego wsparcia dla innych układów jest porównywalne z postawieniem projektu na FreeRTOSie - ot po prostu musisz mieć tablicę wektorów i skonfigurowane rozmiary/adresy pamięci i dokładny typ układu. We FreeRTOSie przecież wsparcie dla STM32 czy dla LPC tak samo nie istnieje - tablicę...
Witam U mnie akurat to pomogło... ale cóż co projekt to inne problemy. Ja osobiście nie zrobił bym nigdy tak jak Ty czyli odbierać dane w przerwaniu i zapisywać je do globalnej zmiennej. Jak już muszę używać jakiś globalnych zmiennych to używam to zapisu i odczytu tych zmiennych funkcji. np readCos, i writeCos. Wiem że tylko ta funkcja może mi coś zmienić....
Dlaczego nie można wywołać w normalny sposób przerwania, które powoduje tylko wysłanie danych przez xQueueSendFromISR? Jesli mozna to poprosze ten kawalek kodu. Jesli chodzi o USBSend to jego zadaniem jest właśnie wstawienie bajtu do odpowiedniej kolejki. Sprawa jest taka, że w tej chwili mam dodatkowe zadanie które tylko czeka, aż w buforze Rx znajdą...
to może powinieś spróbować, lukni na załącznik, większość kodu masz napisane, wszystkie rejestry zmapowane, coś Ci brakuje to sam możesz dodać, patrz ile czasu oszczędza, masz stos usb, stos tcp, do każdego procka luminary masz własnie takie API i one jest open source. Wszystkie funkcje dostępne, mnie np brakowało ustawinie przerwania od ilości bajtow...
"Tick frequency" dotyczy jedynie przełączania zdarzeń o tym samym priorytecie które są w stanie "gotowe" (czyli w zasadzie chodzi o "round-robin scheduling"). Wszelkie* operacje na "synchronization primitives" (semafory, mutexy, kolejki, delay, sekcja krytyczna, ...) powodują natychmiastowe przełączenie kontekstu (jeśli jest ono oczywiście konieczne)....
Witam Mam zamiar napisać w FreeRTOS przykładowy program obrazujący działanie systemu RTOS (rózne reakcje programu na jakies dane wejściowe). Uruchomiłem przykład Demo win32-minGW w eclipsie, lecz że jest on rozbudowany, w pliku main zacząłem od przykładu z zadaniami i kolejką. Na podstawie przykładu z filmiku: /* Standard includes. */ #include <stdio.h>...
Nie za bardzo rozumiem o jakich przerwaniach piszesz. Slave SPI (abstrahując od przerwan błędów itd) ma przerwanie wtedy kiedy rejestr wysyłki jest pusty albo kiedy coś otrzymał (pominę kwestię fifo). Jeżeli jest to przerwanie od pustego rejestru TX to może tam wpisać dane, która zostanie wysłana przy następnej transmisji mastera. Jeżeli jest to od...
Od kilku dni siedzę nad programem opierającym się o FreeRTOS dla Atmegi32/128. Mam niesamowity problem z dobraniem wielkości stosu dla każdego z tasków. jakimi regułami się kierować? Obecnie mam 8 tasków. Dla każdego przydzielony stack wielkości 130. Mam też 4 kolejki komunikatów, nie przekraczajace wielkością 6 bajtów kazda. Heap size ustawiłem dla...
A jeżeli będzie "fail" to dalej ma się wykonywać subscribe? Raczej, nie. Dodano po 1 Zainstaluj sobie w końcu Exception Stack Trace Decoder: Dodano po 1 To może lepiej, że zamiast tworzyć kilka zadań o tym samym priorytecie, stworzyć jedno coś na zasadzie pętli loop i do sterowania fragmentami kodu użyć warunków if. Tak jak w moim przypadku obsługę...
hmmm chyba sie nie myle bo co to jest jak nie fragment parsowania linii NMEA: header[0] = header[1]; header[1] = header[2]; header[2] = znak; if ((header[0] == 'G') && (header[1] == 'G') && (header[2] == 'A')) { new_ggaHeader_flag = 1;...
http://obrazki.elektroda.pl/8659817100_1... WSTĘP Inercyjna jednostka pomiarowa o 9 stopniach swobody do określania orientacji w przestrzeni. To mały projekt czysto edukacyjny, a jego celami były: -przypomnienie sobie jak sie pisze aplikacje na PC w Qt Creator -zapoznanie się z FreeRTOS i jego implementacja na procesorze -zapoznanie...
Tak podejrzewałem, czyli zostawiam w przerwaniu, i już odebrane dane wrzucę do kolejki. Póki co zmagam się z innym problemem, bo pomimo tego, że teoretycznie wszystko działa i urządzenie przechodzi enumerację, mogę się z nim połączyć i coś do niego wysłać i poprawnie odczytać, to próba wysłania czegoś do komputera kończy się stadem nulli w terminalu...
LPC176x (czyli wersja 100-nóżkowa) posiada 4 timery, każdy z nich posiada po dwa wejścia: CAP0 i CAP1. Daje to max 8 wejść, czyli może się udać. Pokrótce wejścia CAP pozwalają zapisać aktualny stan timera (rejestr TC) w rejestrze CR0/CR1 w momencie zmiany stanu na takim wejściu. Pomiar szerokości impulsu PWM jest tym samym tak dokładny, jak często tyka...
(at)ElektrodaBot Ta wersja wygląda najlepiej. Zweryfikuj jej użycie pod kątem pracy w środowisku ESP-IDF/FreeRTOS, w tym ISR. Bezpośrednia odpowiedź Funkcja `atomic_swap_relaxed()` (zamiana za pomocą `exchange + store`) jest: • poprawna i wystarczająco szybka w zwykłych wątkach FreeRTOS na ESP32 (dla typów ≤ 32 bit), • niewskazana do uruchamiania bezpośrednio...
Witam, mam kilka pytań o pewne dolegliwości/ nieścisłości w moim rozumuwaniu dotyczących przede wszystkim używania sterty w RTOSach oraz unii i struktur. Pytanie nr.1 Kiedy najlepiej używać dynamicznej alokacji pamięci ze sterty, a kiedy statycznej deklaracji w danym zadaniu, jaka jest różnica pomiędzy tymi sposobami alokacji pamięci w FreeRTOS np....
Oba taski maja ten sam priorytet ? Spróbuj sprawdzić czy przerwanie od SysTiicka działa (breakpoint). Możesz tez spróbować wrzucić tutaj kod, który nie działa (okrojony najbardziej jak to możliwe). Powiem tak, na stm32f105 jeśli dobrze pamiętam to timer działa, a zmiana priorytetów nic nie dawała. Dzisiaj jednak pomęczyłem się z gołym projektem dla...
Jedyny problem jest taki, że zmienisz tym sposobem lokalizację tylko jednego stosu (np. tego od przerwań) - na stosy wątków wpływ masz minimalny. To fakt, choć jeśli chodzi o FreeRTOS, to wspomnianymi wyżej narzędziami stwierdziłem, że jest w miarę ok. Taski są w moim odczuciu na tyle przewidywalne, że jeśli są określone z zapasem za pomocą watermarków,...
Ad.2 NIc sie nie stanie, tylko program moze róznie działać w zalezności jak sie zsynchronizują wątki tzn raz będzie działał a raz nie. No ok :] Skoro dla Ciebie raz_dziala_raz_nie != nie_dziala, to trwoga... Jesli juz precyzowac, niewiele zalezy od synchronizacji watkow. Zalezy od uzycia danego peryferium. Im czesciej watki beda konkurowac o jedno...
Z tego co piszecie, to widzę że i w RTOS'ach nie uniknę sprawdzania przeróżnych flag. Jak dobrze przemyślisz program, to tego sprawdzania flag jest mało. No i generalnie to nie jest sprawdzanie flag (zmiennych) tylko czekanie na semafory/mutexy/kolejki, bo jakbyś miał sprawdzać flagę (zmienną) którą ustawi inny wątek, to masz zablokowany system (;...
(at)ElektrodaBot ...niezły bot! ;) Jakie są podstawowe różnice w funkcjonalności, budowie struktur runtime i komponentów między firmware OpenBeken i ESPHome? Wstępna ocena dostępnych informacji Chcesz porównać oprogramowanie układowe OpenBeken i ESPHome pod względem podstawowej funkcjonalności, struktur kompilacji, środowiska wykonawczego i obsługi...
Ciekaw jestem ile czasu zajęło jego stworzenie? Ciężko powiedzieć ile dokładnie ale niemało, Kod zacząłem pisać jakis rok temu ale robiłem to z doskoku bo i innymi projektami się zajmowałem, nie jest to tez pierwsza wersja, dwa razy porzucałem zamysł i zaczynałem w zasadzie od nowa. Czy napisanie aplikacji na PC, czy napisanie kodu na STM'a było trudniejsze?...
Witam! Wrzucilem FreeRTOS v6.0.2 z ST Firmware v3.1.2 na te plytke. Uzywam IDE CrossWorks z ich standardowymi bibliotekami na ARMv7M w trybie THUMB little-endian. Kompilator pochodzi z IDE i jest to GCC v4.4.2. Nie dziala mi poprawnie komunikacja z karta inteligentnej. Karta pracuje w trybie T0, wiec Half-Duplex. Skonfigurowalem przerwania do USART3...
Chciałem przedstawić projekt, na który poświęciłem łącznie kilka tygodni życia. Tracker GPS, który wysyła dane do chmury poprzez satelity Iridium lub sieć komórkową LTE. Projekt przetestowany w boju na jachcie wyprawowym, który dotarł na Spitzbergen płynąc przez otwarte wody Oceanu Arktycznego odwiedzając m.in.: Polską Stację Polarną Hornsund. https://obrazki.elektroda.pl/9640915700_...
Faktycznie wygląda na to, że obsługa semaforów wpływa negatywnie na to. Musze przyznać, że jestem w lekkim szoku, ponieważ pomiędzy dwoma zboczami jest 400 us, procesor taktowany jest zegarem 180MHz, a w samych wątkach niewiele się dzieje. Moja opinia jest subiektywna i może zostać uznana za stronniczą (z racji tego że tworzę własny RTOS), jednak uważam...
https://obrazki.elektroda.pl/2375178000_... Dzisiaj tworzymy kolejny miniprojekt - tym razem będzie to dotykowy kontroler lampy RGB. Sam kontroler będzie bazować na płytce ESP32 + wyświetlacz dotykowy ESP32-2432S028R, natomiast sterować on będzie dowolnym urządzeniem Tasmota/OpenBeken poprzez interfejs HTTP Tasmoty. Komendy będą wysyłane...
Witam ponownie Troche czasu minelo i zdazylem bardziej doglebnie poznac ten zestaw ref. jak i sam procesor STM32. Niestety wraz z rozrastaniem sie projektu powracaja stare bledy i tak: W trybie SC USART nie generuje mi przerwan dla kazdego znaku, tzn.: Przy wysylaniu przez karte ATR w stanie RSTIN LOW moj soft dostaje tylko jeden bajt (pierwszy z ATR)...
Witam wszystkich. Szukam speca od freeRTOSa aby powiedział mi co robie nie tak.. Otóż używam freeRTOSa wygenerowanego z CubeMXa. Chce obsłużyć moduł BT, a to równa się ogarnąć UARTa. No i zaczynają się schody bo mimo że program bez freeRTOSa działa to z nim odbiera mi jakieś śmieci. A dokładnie dwa znaki. I nie wiem co może być nie tak. Mam skonfigurowany...
Poproszę o wiarygodny link do tej rewelacyjnej informacji. Trochę mam deja vu, bo chyba na to pytanie już Tobie odpisywałem, ale: Przykład 1 - a raczej przykłady - spójrz na same urządzenia na stronie blakadder, np. ZMAi-90 - https://templates.blakadder.com/ZMAi-90.... WARNING: New Tuya devices have replaced their Wi-Fi module with one incompatible...
Nie da się tego zrobić, Twój program jest po prostu źle zaprojektowany. Aby dane były prywatne dla wątków muszą być albo na stosie, albo globalne i w takiej ilości jak ilość wątków, a każdy wątek dostaje wskaźnik do "swojego" kawałka (nie wie nic o pozostałych). Arbitraż o którym piszesz to zadanie dla Twojego programu, a nie FreeRTOSa. Jeśli interesuje...
Zachciało mi się FreeRTOS i teraz mam z tym problemy ;) Piszę PORT do FreeMODBUS'a na STM32 działającego pod systemem FreeRTOS. Wszystkie płykłady jakie są nawet pod FreeRTOS'a działają na jego starszej wersji gdzie działają makra przełączania kontekstu: [syntax=c]portENTER_SWITCHING_ISR(); portEXIT_SWITCHING_ISR(); [/syntax] A w nowym FreeRTOS takich...
https://obrazki.elektroda.pl/6052073200_... SiFive zaprezentowało nowy rdzeń IP oparty na RISC-V - U8, który jest mniej więcej równoważny rdzeniowy ARM Cortex-A72. W skład tej nowej rodziny wchodzą rdzenie takie jak energooszczędny U84, taktowany zegarem do 2,6 GHz oraz U87 - wyższej klasy rdzeń oferujący superskalarny potok poza kolejnością...
Witam, testuję prostą aplikację z dwoma taskami, która startuje wg poniższego schematu: 1. iniclailizacja potrzebnych kolejek/semaforów 2. inicjalizacja peryferiów 3. zarejestrowanie taskow (xTaskCreate() 4. vTaskStartScheduler(); Używając powyższy schemat powoduje problem z iniclalizacją peryferiów (zew. modułów), które do inicjalizacji potrzebują...
Witam 1.Czy używając semaforów lub kolejek w przerwaniach, minimalny czas odebrania takiego semafora, lub kolejki wynosi Tick, czyli 1 ms? Czyli w teorii max 1000 razy na sekundę..? 2. Jakie niebezpieczeństwo niesie za sobą obsługa całego przerwania w przerwaniu np od USB, nie używając semaforów lub kolejek. No bo działać to działa. 3. Co jeśli: -obsłużę...
Witam, Czy komus udalo sie uzywac w jakis bardziej zaawansowany sposob komunikacji FreeRTOSa z Winda przez wirtualny port COM przy pomocy przykladowego kodu lwip_demo_Rowley pod at91sam7s? Problem jest nastepujacy: - niektore terminale maja wogole problem z komunikacja przez wirtualny port (zawieszaja sie przy probie wyslania, "program nie odpowiada")....
Witam. Używam mikrokontrolera coldfire mcf52235 freescalea, pisząc w eclipse Codewarrior. Mam tam system operacyjny freeRTOS. Problem pojawia się gdy w uruchomionym już tasku wywołuję pvPortMalloc(jest to wrapper do funkcji malloc dostarczonej przez producenta - ale thread safe). Okazuje się że w kodzie malloc używany jest rejestr adresowy a5, ktory...
freertos biblioteka freertos flash freertos rejestry
czujnik zmierzchu czasu testy akumulatorów uszkodzenie pilot telewizor
kontroler napięcia zmiennego marantz pm6010
Nikon COOLPIX P100 – mrugająca czerwona ikona zegara, co oznacza? Zmiana loga startowego w OpenATV - jak to zrobić?