google: pvPortMalloc :freertos.org http://www.freertos.org/index.html?http:...
W jaki sposób w FreeRTOS sprawdzić wolną pamięć dla pojedynczego zadania i całego systemu?
FreeRTOS jest dla mnie na razie zagadką - nie rozpracowałem go na tyle, żeby powiedzieć "znam". Uwierz mi, że FreeRTOS jest prosty jak przysłowiowa budowa cepa. Jednak z poziomu mojej niewiedzy wysuwa się postulat - że FreeRTOS "żre" pamięć RAM jak najęty. Bzdura. FreeRTOS "żre" dokładnie tyle pamięci ile mu każesz. Z tego co wiem w FreeRTOS są funkcje...
Proszę o wyrozumiałość, bo wiem, że na temat sterty i stosu jest mnóstwo informacji w internecie, ale jakoś ciężko mi to zebrać do kupy w przypadku FreeRTOS. FreeRTOS alokuje dynamicznie pamięć na stercie za każdym razem gdy zadanie jest tworzone. Czy oznacza to że wątki działając nie korzystają tak na prawdę ze stosu procesora, tylko sterty? Czyli,...
Myślałem, że lepiej jest alokować pamięć ze sterty, ale okazuje się, że jednak nie. Zaalokuje zasoby statycznie w potrzebnych funkcjach. Dziękuję za pomoc:)
Warto też w docelowej aplikacji wyłączyć opcję: #define configUSE_TRACE_FACILITY0
Ponawiam pytanie- w jaki sposób ocenić czy pamięć RAM jest niewystarczająca (oczywiście pod FreeRtosem). Korzystam z debbugera od Freddiego, eclips + openocd. Istnieje może jakaś nakładka umożliwiająca podgląd pamięci RAM coś jak pod AVR studio? BTW: Asekuracyjnie przymierzam się do zmiany uk na coś o większym RAM - LPC17x (cortex-m3) Moglą koledzy...
Dobra, problem prawie rozwiązany. Rzeczywiście, FreeRTOS nie konfiguruje WDT, robiłem to ja w startupie... Wiara we własną pamięć bywa zawodna. Z WDT wiec sobie od biedy poradze. Wolałbym jednak korzystać z soft Resetu udostepnianego przez RSTC, jesli komuś się udało, bardzo proszę o jakąś podpowiedź. W przypadku kodu ktory zamieścilem powyżej, nie...
Dla twojej informacji: Micropython na W600 nie jest martwy. Jest aktualizowany na GitHub Roberta Hammelratha jako [url=https://github.com/robert-hh/microp... Połączyć branch do rzeczywistego Micropythona. Jesteśmy w wersji MP 1.20. Udało mi się zwiększyć dostępną pamięć w MP z 45K do >85K (lepiej niż w ESP8266). Również dekoratory...
żeby był wyświetlacz i ethernet Moim skromnym zdaniem NAJWAŻNIEJSZY jest debugger, ale może Ty masz ochotę męczyć się bez niego (obydwa mają wbudowane bootloadery). Używałem LPC1768 (STM32F4 też) i wierz mi (albo i nie), po krótkim etapie machania pinami przyszedł czas na Ethernet. Pal licho z pamięcią Flash, bo tej raczej starczy, ale 64KB RAM jest...
Idea bardzo ułatwia np umieszczanie kodu w róźnych rdzeniach/procesorach - i ta funkcja "boot-ująca" main może być naprawdę duża i kosztowna (tzn po wywaleniu nic praktycznie nie kosztująca). Tyle że we FreeRTOS możesz zrobić tylko tak. W jednej aplikacji może Ci to pasować, w innej nie. W alternatywnych rozwiązaniach możesz zrobić to tak albo inaczej,...
Szkoda, że nie ma tematu o RTOS dla Arduino Trzeba założyć :) Gdy RTOS używa przerwań od WD (nie zadziała na każdym AVR, dajmy na to mega128) to jak task oddaje czas innym zadaniom? AVR nie może generować przerwań programowo więc jak to jest realizowane? Nowsze atmegi mogą bo mają przerwania od WD, starsze startują od resetu, ale pamięć nie jest kasowana,...
Dziękuję za szybką odpowiedź. Opisz na czym polega problem, bo to że kod który nic nie robi z wyłączoną optymalizacją zajmuje ileśtam czasu który niekoniecznie jest stały to jest najwyżej "sztuczny problem", a nie "problem". W skrócie chciałbym dowiedzieć się skąd wynika różnica czasu wykonania się tej samej instrukcji w aplikacji bez systemu operacyjnego...
1.Chyba nie korzystasz z modemu? 3.75MB to rzeczywiście mega objętość :) 2.No nie wiem- SAMy są między sobą kompatybilne, i niezależnie jakiego używa, jeśli karte ma podłączoną do SPI0, NPCS_1, to jedyne co może sprawić problem, to pamięć RAM i stos- w projekcie rzeczywiście dość optymistycznie ustawione jest 64KB. 3.Przekonałeś mnie. Umieszcze same...
STM32f4 64KB RAM. Właśnie się przekonałem, że wiele zależy od konfiguracji pamięci.
Wyjaśnię może, o co dokładnie mi chodzi. Jeżeli w trakcie długiego działania ESP występują regularne operacje tworzenia nowych zadań, a następnie ich kasowania to powoduje to zwiększoną fragmentację sterty pamięci (heap). Domyślnie zadania we FreeRTOS korzystają z pamięci dynamicznej, czyli sterty. Może się okazać, że przy ponownej próbie utworzenia...
Witam, Zauważyłem dziwne zachowanie programatora STM32 ST-LINK oraz nie mogę poprawnie podłączyć debuggera gdb (połączonego z Eclipsem i OpenOCD) podczas użycia funkcji vTaskDelay z FreeRTOS. Używam płytki ewaluacyjnej STM32L-Discovery z układem STM32l152. Do projektu udało mi się zintegrować FreeRTOS'a (możliwe że mam źle skonfigurowaną pamięć w jakiś...
Siedzę nad problemem już kilka dni i nie mogę sobie poradzić. Do tej pory program ładnie chodził. Kiedy wzbogaciłem go o funkcje malloc zaczęły się schody. Jeśli załaduje to co napisałem do pamięci wszystko ładnie przechodzi. Jeśli zresetuję urządzenie to w następnym przebiegu program się wywala na malloc. Jeśli wgram jeszcze raz ten sam obraz to znów...
Ja stawiam na problemy z wyrównaniem stosu, mazanie po stosie albo jakieś inne cacko z tego rodzaju. Bez optymalizacji pamięć rozłoży się trochę inaczej niż z optymalizacją i stąd może być różnica. Miałem kiedyś podobnie z FatFS i X256. Używałem starego FreeRTOS-a a tam nie było jeszcze wyrównywania stosu do 8 bajtów i bez optymalizacji działało praktycznie...
Z atollica na razie zrezygnuję, bo boję się, że znowu mi się coś sypnie Ja sobie chwalę, dobrze przygotowane pod ARMy IDE. Do tego oficjalne STM-a. Adres jest oczywiście bzdurny (nie wspominając o jego dziesiętności). Czy w ogóle wiesz gdzie jest pamięć w tym STM-ie? Tam jest więcej rejestrów i inofrmacji o HF. Dowiedz się co to za HF. Musisz sięgnąć...
"kontroler przerwań" nazywa się NVIC, ma coś takiego jak tail-chain przydatne gdy dwa przerwania przychodzą blisko siebie. Thumb2 - lepszy DMIPS/MHz i DMIPS/mW architektura harvard sprzętowe mnożenie i dzielenie dla procesorów ST teoretycznie pozwala na prace z prędkością 2x większą niż pamięć flash (u innych producentów pewnie też) dodatkowo u ST (u...
Serwus, ale w tej chwili masz ( w kodzie który tu zamieściłeś) pvPortMalloc, a one alokują pamięć ze sterty, a jej po prostu nie ma... Ale nawet gdybyś dał tego standardowego malloca, to i tak masz problem, bo wielkość stosu, jaką podajesz dla taska jest liczona *8 - tyle jest alokowane ze sterty dla taska -> to jest u Ciebie 8*400 = 3200, a configTOTAL_HEAP_SIZE...
Podmieniłem jeszcze plik startowy i skrypt linkera na te z przykładu z FreeRTOS dla LPC2106 (pozmieniałem rozmiary pamięci w skrypcie linkera) i nadal się wykłada :/ Spróbuję jeszcze Twoją metodą.
https://obrazki.elektroda.pl/8064219100_... Witajcie, dzisiaj przedstawię jak okiełznać kolejny chiński mikrokontroler WiFi+Bluetooth, a dokładniej W800-C400 od WinnerMicro. Na ten moment można go kupić za około 10 zł, z kolei płytkę startową z nim już za 25 zł i obie te ceny uwzględniają już przesyłkę. Oczywiście nie będę tu korzystać...
Cześć, Ponieważ pojawiła się prośba o możliwość udostępnienia uproszczonej wersji na inny uC to przedstawię krótką instrukcję jak dostosować projekt do potrzeb. Generalnie w obecnej wersji obsługiwane są dwie rodziny procesorów czyli STM32F4xx i STM32H7xx - prawdopodobnie nie powinno być większych problemów z innymi podobnymi układami STM natomiast...
No właśnie, "Bez rtos sprawa wydaje mi się banalna" - i jest banalna. To po co ten RTOS? żeby było wolniej i żeby zająć więcej pamięci?
Linux'a raczej nie wgrasz. Raczej - bo widziałem już Linux'a uruchomionego na emulowanym ARM na AVR, ale to robił ktoś, dla samego faktu. Nie wgrasz z prozaicznego powodu - brak interfejsu do pamięci zewnętrznej. Można oczywiście to jakoś obejść , ale gra nie warta świeczki (lepiej wziąść jakiś Cortex A-x). Możesz postawić jakiś RTOS : FreeRtos, uCos,CoOS...
Skompilowałem bardzo prosty program w systemie FreeRTOS. Niestety kod wynikowy nie mieści się w całości w pamięci RAM mikrokontrolera AT91SAM7X256. Chciałbym, żeby program był uruchamiany w pamięci RAM. Umożliwia to jego debugowanie poprzez JTAG. Wiem, że można użyć procesora o większej ilości pamięci i tak zamierzam zrobić, gdy powstanie obwód drukowany...
Witam, Panowie, konkretne pytanie: Czy opłaca się stosować kopiowanie pamięci przy użyciu DMA zamiast memcpy? System jest wielowątkowy na FreeRTOS. Mam bardzo dużo kopiowania pamięci średnio po 15 bajtów. Wątek mógłby wstrzymać pracę i czekać na semafor z przerwania. Czy to sie jednak opłaca wydajnościowo? Przy okazji: Czy da się zmusić kompilator,...
A jak sprawa z RTOSem wygląda jak są obecne w uC dwa lub więcej fizyczne rdzenie? Czy to trzeba jakoś specjalnie przygotować RTOS do tego czy on powinien sam wiedzieć już co robić? Widzę że widzisz RTOS jak desktopowy OS. Pomino tego że się nazywają Operting System to niewiele mają ze sobą wspólnego. Procesory wielordzeniowe to temat rzeka i jednym...
Porównaj układy NXP iMX RT1011 oraz ESP32 pod względem wydajności, ze szczególnym uwzględnieniem pracy tych układów w środowisku wielowątkowym (RTOS). Układy NXP iMX RT1011 i Espressif ESP32 to dwa różne rodzaje układów o różnych przeznaczeniach. NXP iMX RT1011 to układ ARM Cortex-M7 z maksymalną częstotliwością taktowania 500 MHz i 128 kB pamięci...
Ma to bardzo dużo zalet. Kiedyś robiłem dość zaawansowany układ pomiarowy i synchronizacja zadań była elementem kluczowym w projekcie. Dla utrudnienia - niektóre zadania wykonywały się regularnie co jakiś czas, inne tylko w pewnych warunkach, niektóre na życzenie użytkownika, a były też takie zadania, które uruchamiały szereg kolejnych i czekały, aż...
Jeśli chcesz to zdebuggować, to możesz się "zaopatrzyć" w bleeding-edge-toolchain ( https://github.com/FreddieChopin/bleedin... ). Jest on kompilowany praktycznie tak samo jak toolchain ARMowy, z tym że biblioteki zawierają wszystkie symbole, a więc można je spokojnie debuggować i widzisz co się dzieje. Z Twojego opisu wynika, że problem...
Cześć. Szukam sposobu, aby na procku STM32F439 skompresować bieżący obraz framebuffera (grafika typu napisy, kolorowe ikony z przejściami tonalnymi, ramki itp, dużo jednolitego tła) i wysłać do przeglądarki. W systemie mam pamięć SDRAM, postawiony jest FreeRTOS i LwIP. Kompresja powinna trwać nie dłużej niż 0,5s, chociaż 1s ostatecznie mógłbym przeboleć....
A kto czyści flagę przerwania? Bo tutaj nie widać... W zasadzie we wszystkich przykładach wykorzystania przerwania z UARTA nie było nigdzie czyszczenia flagi, więc założyłem, że jej nie potrzeba... gdzieś czytałem, że flaga jest automatycznie czyszczona, ale jestem laikiem więc mogę się mylić. Wdzięczny byłbym za wszelkie wskazówki jak do tego podejść....
Trochę dziwne. Zawsze możesz zignorować GDB i połączyć się z OpenOCD bezpośrednio przez telnet (port 4444), wydać komendę typu "halt" i będziesz wiedział mniej więcej co się dzieje również. W OpenOCD można również stawiać breakpointy oraz dokonywać dezassemblacji pamięci. 4\/3!!
Witam, szukam porady, jak obliczyć ilość pamięci którą trzeba przeznaczyć dla stosu pojedynczego zadania w systemie czasu rzeczywistego FreeRTOS. Oczywiście zależy ona od konkretnego zadania, jednak nie wiem jak ją rozsądnie dobierać aby nie marnować pamięci oraz żeby nie było jej za mało. Pozdrawiam
Dzień dobry. Zwracam się z problemem zmiany kontekstu danych w freeRTOSie którego właściwie nie potrafię zdefiniować z nazwy, otóż : Mikrokontroler STM32F303 współpracuje z wyświetlaczem LCD ITM 400x160 - matryca 8000 bajtów (pamięć ekranu) zdefiniowana w pamięci RAM jest na bieżąco wysyłana do wyświetlacza w przerwaniu z priorytetem wyższym niż RTOS...
Intel Edison (a na nim system Linux) odpowiada za komunikację przez Wi-Fi lub Bluetooth oraz za funkcje multimedialne (kamera na USB, dźwięk). Zamiast Intel Edisona RoboCORE może współpracować z telefonem komórkowym lub tabletem, który będzie pełnił te same funkcje. STM32F4 zawiera system operacyjny czasu rzeczywistego FreeRTOS. Opdowiada za wszystkie...
Rozumiem, że mam coś ze stosem Mógłbym zaryzykować stwierdzenie, że 99% problemów w FreeRTOS, to problemy ze stosem. Jak masz wyrównany stos ? (w pliku portmacro.h wpis #define portBYTE_ALIGNMENT xx <- co tutaj jest?) Jaki sposób zarządzania pamięcią wybrałeś (który plik heapxx.c?)
Nie żebym nie wnosił nic do tematu, ale temat do zamknięcia :P. Zabierasz się do rzeczy bez znajomości sprzętu. To że w środku siedzi rdzeń z nieśmiertelnego Ziloga nie znaczy że jakiś FreeRTOS ruszy na tym. Musiałbyś z tego dumpa o którym pisałem wcześniej wygrzebać jakiś program (np mp3 player) i debugerem prześledzić jego działanie. Co zapisuje,...
Dzięki wszystkim za odpowiedzi. (at)Freddie - co odpowiesz na zarzut, że FreeRTOS ma tragiczną obsługę pamięci? Ja widziałem, że jest kilka plików heap. Użycie właściwego pozwala na dynamiczne tworzenie i kasowanie tasków. Zwolnione obszary są ponownie dostępne do wykorzystania. Nie jest więc chyba aż tak źle. Zwolennicy innych systemów zwracają też...
Widzę, że masz już jakieś doświadczenie z tą biblioteką. Wiesz może czy da się zmniejszyć alokowane ilości pamięci ? Chciałbym jeszcze użyć FreeRTOS'a, oraz STemwin'a. W następnej płytce mam dodany zewnętrzny sram, ale nie wszystko da się tam umieścić. Masz może dla mnie jakieś wskazówki ? A próbowałeś może libjpeg turbo ? Czy będzie on szybszy nawet...
Bazowałem właśnie na tym samplu tworząc swój projekt. Z racji braku czasu dopiero teraz powróciłem do tego tematu. Doszedłem do przyczyny lądowania procesora w Hard Fault, otóż w pliku ethernetif.c zdefiniowałem globalny wskaźnik do struktury netif i widzę, że zaraz po inicjalizacji stosu dane z pod tego adresu ulegają uszkodzeniu. Następnie funkcja...
Jakiej biblioteki polecasz użyć do wielowątkowego programowania asynchronicznego na platformie AVR? Do wielowątkowego programowania asynchronicznego na platformie AVR można skorzystać z biblioteki FreeRTOS (Real Time Operating System). FreeRTOS to system czasu rzeczywistego, który umożliwia wykonywanie wielu zadań równocześnie, a także zapewnia mechanizmy...
No dzięki. ściągnąłem sobie i zainstalowałem. Mam teraz jednego ptaszka więcej - (w sumie dla mnie to mała pociecha, ale może żonie przynajmniej się spodoba).... A czy jest jakaś możliwość skonfigurowania sobie kilku dodatkowych pathów żeby były "built in" jak te, które się wyświetlają (+ ew. symboli)? Cały czas tworzenie nowego projektu wymaga masy...
Witam 1. Zastanów się nad: pamięcią na program, pamięcią na zmienne, pamięcią na dane o błędach i itp. 2. Musisz w jakiś sposób wgrać program ( drabinkę ) do pamięci program ( pewnie to będzie pamięć ram ). 3. Zastanów się w jaki sposób dekodować instrukcje czyli masz np styk normalnie otwarty musisz jakoś "wsiąść" zmienna z pamięci na zmienne ( ze...
Wywołania systemowe do zarządzania pamięcią, najczęściej musisz sobie je sam zaimplementować.
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...
Wykasowałem tą instrukcje ale niewiele się zmieniło. Spróbowałem jeszcze innej opci - włączyłem H-JTAG-a i przy wykrywaniu pokazało się okienko: http://obrazki.elektroda.net/88_12581037... Po kilku próbach z resetowaniem udało mi się wyczyścić pamięć - Eraze i wgrałem soft H-JTAG-iem. Tym razem normalnie wykrywał kostke. Po uruchomieniu debugera...
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,...
Jaka jest maksymalna częstotliwość kroku? Przy obecnej implementacji teoretycznie jest to 75kHz. W praktyce nie jest to już zakres użyteczny gdyż ziarnistość regulacji prędkości rośnie do absurdalnych wartości - w zakresie powyżej 20khz mozna ustawić juz tylko wartości 75,50,37,30,25,21 kHz. Do sterowania silnikami krokowymi moim zdaniem to w zupełności...
Ja dla rozdzielczości 800x480 mam WriteCommand(0xE6); WriteData(0x03); WriteData(0xff); WriteData(0xff); Nie mam pojęcią jednak jak te wartości wpływają na wyświetlanie. Miganie może być od niewłaściwego sterowania podświetlaniem, różnie jest to rozwiązane w wyświetlaczach. Może być PWM z kontrolera lub załącz/wyłącz z GPIO. Niedziałanie w tasku może...
Coraz śmielej w sieci pojawiają się informacje o zaawansowanych pracach nad hiper inteligencją AGI. Wreszcie Inteligencja uzyska możliwość uczenia się i zapamiętywania nie tylko w ranach danej sesji ale ogólnie adaptacyjnie i uniwersalnie. Zapytałem o to ChatGPT co o tym sadzi. 🧠 1. Co to jest AGI? AGI (Sztuczna Inteligencja Ogólna) to idealna forma...
Logowanie i inne rzeczy o których mówisz jak dla mnie nie leżą w gestii systemu operacyjnego samego w sobie, tylko dodatkowych programów/wątków na nim uruchomionych (shell, UI, ...). Sam system na takich prostych mikrokontrolerach zapewnia tylko wielowątkowość i nic więcej, na pewno w gołym FreeRTOS tego nie ma. Na gotowo takie rzeczy są w Linuxach,...
To samo w przypadku opóźnień za zwyczaj nie potrzeba tutaj kosmicznej dokłądośći. W wypadku stosowania mechanizmów typu event-driven, gdzie jest istotne odliczanie czasu dla poszczególnych zadań, niestety jest potrzebna dokładność dla funkcji millis(), micros() etc. Może nie "kosmiczna", ale precyzyjna. Dla płytek Arduino z AVR stosowanie programowania...
https://obrazki.elektroda.pl/7961960300_... SBC-U1 to nowa płytka prototypowa firmy Novasom Industries. Sercem płytki jest układ ESP32 firmy Espressif Systems zawierający dwurdzeniowy procesor typu Tensilica LX6 o taktowaniu 240MHz. Płytka pracuje pod kontrolą systemu FreeRTOS. Płytka posiada 520kB pamięci RAM i (zintegrowane w układzie...
Właśnie INCLUDE_vTaskSuspend mam zadeklarowane na 1. Próbuję jak najbardziej trzymać się tego co jest w manualu. Co do portYELD_FROM_ISR(xHigherPriorityTaskWok... Jeśli zrobię to w ten sposób to dostaję błąd error: 'portYIELD_FROM_ISR' undeclared (first use in this function). Właśnie nie mogę zdebugować programu, bo podczas prób wyskakuje napis informujący...
więc pora wziąć się za USB i Ethernet(na początek wystarczy USB). No nie wiem czy to drugie nie będzie prostsze. Poza tym na USB atmel udostępnia gotowe źródła, więc to tylko zostaje zaadoptować do swojego kodu. Co do środowiska, to popatrz, potestuj. Każdy ma inny gust i każdemu co innego się podoba. A wybór jest szeroki: IAR, Keil, CrossWorks, WinAvr.........
Ponieważ analyzePulseFromIR() jest teraz powiązane z przerwaniem to taki program musi być krótki i nie wolno w nim wykonywać żadnych podprogramów inaczej wyłożymy ESP - skończy nam się stos a jest go raptem 8192 Faktycznie, domyślny rozmiar stosu dla wątku, w którym wykonuje się loop() wynosi 8192 i wartość ta jest ustawiona przez stałą ARDUINO_LOOP_STACK_SIZE...
https://obrazki.elektroda.pl/3617408200_... Poniższa instrukcja przedstawi nam, jak skonstruować fotozegar oparty o moduł z układem ESP32 oraz ekran LCD. System wykorzystuje japoński portal BiJin ToKei (美人時計) do pobierania zdjęć, które wyświetlane będą przez zegar. Krok 1: Co to jest BiJin ToKei? BiJin ToKei(美人時...
Dzięki za przypomnienie, zapomniałem o tym. IGMP jest domyślnie włączone na wszystkich realtekach o ile pamiętam, flagą LWIP_IGMP. https://github.com/Ameba-AIoT/ameba-rtos... RTL8710AF nie jest dobry, brak xip oznacza, że wszystko...
Na początek proponuje umieścić delay(1) w loop(), zaraz po handleButtons(). Zwiększy się w ten sposób prawdopodobieństwa regularnych wywołań zadania [url=https://docs.espressif.com/projects... które ma niższy priorytet niż wątek z loop().
http://obrazki.elektroda.pl/4846829200_1... http://obrazki.elektroda.pl/8573925000_1... http://obrazki.elektroda.pl/7613928800_1... ESP32 to nowy produkt firmy Espressif będący następcą popularnego ESP8266. Układ o wymiarach 4mm x 4mm jest rozwiązaniem typu kombo, które integruje Wi-Fi oraz Bluetooth...
Jeszcze możesz mieć zdefiniowaną zbyt dużą stertę FreeRTOS'a. Szukaj definicji [syntax=c] #define configTOTAL_HEAP_SIZE 123456 [/syntax] Tablicę na której działa heap FreeRTOS'a masz w pliku heap_2.c. Oczywiście wielkość sterty powinieneś dostosować do ilości pamięci RAM dostępnej w Twoim MCU.
Któraś z wcześnejszych instrukcji wywołała wyjątek Data Abort. Zapewne robisz coś na styl odczyt/zapis nieistniejącej pamięci lub próba zapisu do flash. 4\/3!!
https://obrazki.elektroda.pl/5189522600_... Aport-213 to nowy, stworzony z myślą o zastosowaniu jako konwerter (brama) interfejsu szeregowego (RS-232/422/485) na Wi-Fi model komputera typu USFF firmy Artila. Sercem komputera jest jednordzeniowy procesor ARM typu Cortex-M3 o taktowaniu 166MHz. Urządzenie pracuje pod kontrolą systemu...
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...
https://obrazki.elektroda.pl/9289138500_... Ameba Z2 to nowa płytka prototypowa firmy Realtek. Sercem Ameba Z2 jest układ RTL8720CM firmy Realtek zawierający jednordzeniowy procesor ARM typu KM4 (zmodyfikowany Armv8-M) o taktowaniu 100MHz. Kompatybilność Ameba Z2 obejmuje system Amazon FreeRTOS. Ameba Z2 ma 256KB pamięci SRAM, 4MB...
Widzę, że starasz się wymyślić swój własny RTOS :) rządzący się własnymi prawami. (Dla rozumiejacych inaczej to żart) 1. Nie wiem co to app_main , ale jeżeli to coś co wolasz z main po uruchomieniu schedulara - to jest to źle. Po starcie schedulera w min nie powinno jeż być nic bo ten kod nie powinien się wykonywać. 2. W dalszym ciągu tasku mogą wyjść...
Kazdy task to pamiec, kazdy priorytet to tez pamiec. Jak pracaich jest zalezna i zawsze taka sama wzgledem siebie to faktcznie nie ma sensu tego w ogole rozbijac.
Ewidentnie wygląda to na problemy z pamięcią. Nie masz za małego stosu? Jakie masz wielkości sterty po kolei dla freertos oraz lwip ? To czesc lwIP - to przychodzi chyba nawet z dystrybucja Free RTOS-a. Bawilem sie z jakis czas temu - zero problemów Tu akurat są problemy. Jakoś dziwnie się składa, że po tych wywołaniach. Mimo wszystko sprawdziłbym czy...
https://obrazki.elektroda.pl/4365413600_... VisionSOM-RT to nowy model model modułu SOM firmy SoMLabs. Sercem modułu jest układ i.MX RT 1050 firmy NXP zawierający czterordzeniowy procesor ARM typu Cortex-M7 o taktowaniu 600MHz i procesor graficzny PXP PiXel. Kompatybilność modułu obejmuje dystrybucje FreeRTOS. Moduł posiada 512kB...
Zwykle w takich sytuacjach okazuje się, że brakuje pamięci lub jest problem z jej wyrównaniem - w Cortex-M3 stosy muszą być wyrównane do 8. 4\/3!!
Np. UART może mieć takie funkcje: - OpenUart(<numer, paramtery, opcje itd>) - ReadChar(), WriteChar() - ReadBuffer, WriteBuffer(<wskaznik na bufor, ile znakow>) - IsFifoEmpty - IsFifoFull Użycie przerwań to już trochę bardziej skomplikowane, bo można to zrobić na wiele sposobów. Np. dany otwarty UART powinien mieć bufory do których czyta...
Mam rozumieć ze nie włączasz żadnych peryferii? i CONFIG_TICK_CLOCK 16000000 używasz tylko do SysTick. Czyli jak jestem w "main" wtedy wszystko sobie uruchamiam? (dla mnie to ma sens ale chce się upewnić ) 3x "tak". Na chwilę obecną żadne układy peryferyjne (poza SysTick) nie są przeze mnie "dotykane". W przyszłości pewnie się to nieco zmieni, ale...
Racja, ale może np. brakować pamięci w stosie IwIP. Ten stos ma logi do włączenia w każdym module, lwipopts.h (#define UDP_DEBUG). Może to coś powie.
http://obrazki.elektroda.pl/6699228200_1... Tajwańska firma MediaTek wprowadziła do oferty nowy, opracowany wspólnie z firmą Silicon Application i należący do serii LinkIt, model płyty rozwojowej o nazwie kodowej 7687 HDK. Sercem LinkIt 7687 HDK jest układ MT7687F firmy MediaTek integrujący w sobie, taktowany częstotliwością 192MHz...
Napisanie softa pod RTOS nie jest niczym trudnym. Naginałem już freeRTOSa do zadań dla niego nie przeznaczonych - kompilowałem funkcje w trybie position independent i mogłem dynamicznie "instalować aplikacje" i je uruchamiać jak i killować, prawie jak pod prawidziwym OSem :) Jeśli SPI obsługuje kilka urządzeń, to powinno się stworzyć oddzielny task...
http://obrazki.elektroda.pl/7185723600_1... Firma Vigek wprowadziła do sprzedaży, stworzoną z myślą o aplikacjach Internetu Rzeczy, płytę rozwojową o nazwie IoT Core. W konstrukcji IoT Core wykorzystany został układ STM32F103 firmy STMicroelectronics integrujący w sobie, taktowany częstotliwością 72MHz, jednordzeniowy procesor ARM typu...
http://obrazki.elektroda.pl/5049806000_1... NadajnikGPRS NadajnikGPRS to urządzenie do układów alarmowych i układów sterowania. Posiada programowalną logikę wejść i wyjść, coś na wzór sterowników PLC. W podstawowej wersji mamy do dyspozycji 8 wejść analogowo-cyfrowych, 2 wyjścia open-drain wysoko-prądowe, modem GSM z obsługą CLIP, SMS,...
http://obrazki.elektroda.pl/4247102800_1... RIO-2014PG to nowy model modułu SOM firmy Artila Electronics. Sercem modułu jest układ układ SAM4E16E firmy Atmel, integrujący w sobie jednordzeniowy, taktowany częstotliwością 120MHz procesor ARM typu Cortex-M4. Moduł pracuje pod kontrolą systemu FreeRTOS. Do dyspozycji użytkownika jest 128KB...
Skoro podejrzewasz złe użycie pamięci, użyj wbudowanych we FreeRTOSa sposobów sprawdzania użycia stosów dla poszczególnych tasków. Mowa konkretnie o tym http://www.freertos.org/index.html?http:... Podobnie jak koledzy uważam, że powinieneś jeszcze raz zaprojektować aplikację. Nie każda funkcja...
Masz debugger? Powyżej piszesz o HardFault, ale czy jesteś PEWNY, że właśnie to się dzieje? Hard fault zwraca w moim przypadku CFSR = 1400 BFAR = E000ED38 Czyli wygląda to na błąd związany ze stosem? Dobrze patrzę?. Program działa pod FreeRTOS 7.3.0, a zmiana wielkości stosu dla task'a nic nie daje :(. Wywaliłem wszystko zostawiając sam CMSIS + 3 instrukcje...
https://obrazki.elektroda.pl/5434831400_... MaixCube to nowy zestaw prototypowy firmy Sipeed. Sercem MaixCube jest moduł M1n (ulepszona wersja M1, czyli MAIX-I) firmy Sipeed zawierający dwurdzeniowy procesor Kendryte K210 typu RISC-V o taktowaniu 400MHz i kooprocesor NPU o wydajności 1 TOPS. Kompatybilność MaixCube obejmuje języki:...
Nie warto - stracisz za dużo pamięci flash. Napisz swoją wzorując się na tej od '51. W systemie FreeRTOS jest obsługa tego układu - można się posiłkować. Jak dla mnie ten układ posiada same wady i tylko ogranicza aplikacje. Najpoważniejszą wadą jest brak pełnego dostępu R/W do buforów układu. Bufor odbiorczy możesz tylko czytać a bufor nadawczy tylko...
Witam, piszę program na mikrokontroler stm32l151RxT6. Na początku używałem stm32l151R8T6 z pamięcią FLASH 64kB, ale szybko program się rozrósł i przerzuciłem się na stm32l151RCT6 (256 kB pamięci). Podczas uruchamiania programu z stm32l151R8T6 na RCT6 zauważyłem że przy starcie FreeRTOS-a program zamiast wchodzić do tasków ucieka do nieznanego obszaru...
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...
Przy okazji testów 16MB flasha na esp-05 :) zauważyłem 2 rzeczy. 1. błąd w bootloaderze pojawiający się czasem przy utraconych pakietach. (poprawiłem) 2. nie można dać 10k pull-down'a na TXD bo moduł nie wystartuje. (TXD...? czemu?) Czy Ty masz jakieś NDA podpisane z Esspressif? Jeśli mówisz o bootloaderze to znaczy się jest to aplikacja użytkownika...
https://obrazki.elektroda.pl/5076033200_... ESP32-S2 to nowa płytka prototypowa firmy TTGO. ESP32-S2 przypomina ESP32-S2-Saola-1, ale w odróżnieniu od tej drugiej posiada złącze karty pamięci typu Micro SD i możliwość zasilania bakteryjnego. Sercem ESP32-S2 jest układ ESP32-S2 firmy Espressif Systems zawierający jednordzeniowy procesor...
Dużo ciekawiej wygląda zużycie pamięci RAM w mega328 dla pierwszego przykładu w artykule (dwa proste zadania) - jest to mnie więcej 3:1 tzn. 3 razy więcej RAM pożre wersja z tym FreeRTOS. Poczytałem o RTOS i na 2kB RAM nie ma to sensu chyba, że do migania diodą ale wtedy RTOS nie jest potrzebny.
Przebrnąłem w końcu przez cały proces kompilacji, wgrywania do pamięci i debagowania prostego przykładu. Wszystko działa poprawnie. Teraz czas na bardziej zaawansowane projekty np. z FreeRTOS-em itd. Póki co, zastanawia mnie jedna rzecz. Po uruchomieniu OpenOCD 0.4.0 na pasku statusu, w prawym dolnym rogu ekranu w Eclipse'ie, pojawia się informacja...
C++ wymaga większych nakładów na naukę ale jak już się go nauczysz to przejrzystość programu dobrze napisanego w C++ jest dużo większa niż programu napisanego w C. Aleeee... o czym Pan piszesz? 8-O C++ jest językiem obiektowym, C nie. Co prawda istnieje coś takiego ja Objective C, w którym bodaj glib jest napisana, ale to zupełnie inna para kaloszy....
https://obrazki.elektroda.pl/6256289300_... Renesas RZ/A3UL to jednordzeniowy procesor ARM Cortex-A55 o taktowaniu do 1 GHz zaprojektowany do uruchamiania systemu operacyjnego FreeRTOS lub Azure RTOS na rozwiązaniach HMI o wysokiej rozdzielczości (1280 × 800), wymagających szybkiego startu, takich jak urządzenia przemysłowe i automatyki,...
pvPortMalloc i vPortFree. Dodatkowo proponuję Ci sprawdzić jaką wersję pvPortMalloc i vPortFree kompilujesz i linkujesz. Te "prostsze" nie defragmentuja i bardzo szybko się sfragmentujesz. Co prawda ta defragmentacja jest bardzo prosta ale i tak zamnim printf umrze minie więcej czasu. Dodano po 13 PS tak jeszcze mała dygresja - przy debugowaniu lepiej...
Może być jeszcze taki zestaw: AT91SAM7X512 + DP83848 lub inny PHY. Na to jest system operacyjny FreeRTOS lub Ethernut. Ten mikrokontroler ma 512kB Flash i 128RAM wbudowanego i od razu kontroler ethernet - część MAC. Jesli chcesz więcej pamięci i system Linux lub inny 'duży wbudowany' system operacyjny to radzę jak kolega wyżej - ARM9. Na przykład taką...
Przygodę z Azure RTOS (dawnej ThreadX) zacząłem częściowo z konieczności dalszego rozwoju mojego projektu, a częściowo za sprawą decyzji STMicroelectronics o zastąpieniu FreeRTOS przez Azure RTOS i szkoleń prowadzonych przez ST, które polecam. Moje pytania w tym temacie dają wyobrażenie o poziomie mojej wiedzy w tej dziedzinie. Jestem na początku drogi....
https://obrazki.elektroda.pl/8694458700_... Pierwszy raz Ambiq Micro zaprezentowało mikrokontroler Apollo w 2015 roku. Miał on oferować wydajność, jak Cortex-M4 przy poborze prądu na poziomie rdzenia M0+. Wszystko dzięki nowej technologii optymalizacji pracy, która pozwolić miała na pracę systemu przy bardo niskim napięciu - poniżej...
https://obrazki.elektroda.pl/7342033700_... Apalis to nowy model model modułu SOM (System On Module)/COM (Computer On Module) szwajcarskiej firmy Toradex. Sercem modułu jest układ i.MX8 QuadMax firmy NXP zawierający ośmiordzeniowy (2 rdzenie Cortex-A72 o taktowaniu 1.6GHz, 4 rdzenie Cortex-A53 o taktowaniu 1.26GHz i 2 rdzenie Cortex-M4F...
https://obrazki.elektroda.pl/8879705300_... SiFive zaprezentowało właśnie płytę główną w formacie mini-ITX dla komputerów PC z procesorem RISC-V, o czym pisaliśmy https://obrazki.elektroda.pl/2424246300_... Dane techniczne PolarBerry: * SoC - Microsemi PolarFire - MPFS250T-FCVG484 - pięciordzeniowy procesor z rdzeniem...
freertos biblioteka freertos flash freertos kolejka
uszczelnienie przepustu karta graficzna intel pentium naprawa kompresor
kingston datatraveler datatraveler stacja dyskow
0x08000000 na dziesiętnie – adres Flash STM32, ARM Cortex-M, RISC-V Renault Scenic diesel dCi szarpie, czarny dym, gaśnie, brak rozruchu – typowe usterki