Może choć pokazałbyś to wywołanie które jest problematyczne, bo pewnie nie jest to `printf("Hello world!");`. Masz te wywołania w więcej niż jednym wątku? Włączyłeś wsparcie dla newliba w FreeRTOSie (struktura reent)?
Pomijam fakt ze na stronce pisali ze demo powinno sie od strzala skompilowac bez jednego warninga ;) No ale ok, mam przykladowy plik syscalls.c do biblioteki newlib, teraz pytanie, moze banalne, jak dolaczyc ten plik do projektu ? Wydaje mi sie ze to jednak cos z ustawieniami eclipse/yagarto jest nie tak. Czemu tak mysle, nikt nie pisze nic ze trzeba...
Mi zadziałało coś takiego: http://obrazki.elektroda.pl/1811887400_1... [syntax=text]symbol-file Release-v1.2/aboard.elf monitor arm semihosting enable monitor reset halt[/syntax] a openocd uruchamiam tak: [syntax=text]bin\openocd-0.7.0 -f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg -c "$_TARGETNAME configure -rtos FreeRTOS"[/syntax]...
Ostatnio był podobny tamat na forum. Możesz wykorzystać compound literals. https://gcc.gnu.org/onlinedocs/gcc-3.2/g... http://www.elektroda.pl/rtvforum/viewtop... Przykładowo: [syntax=c] #include <stdio.h> #include <stdint.h> #define COMPOUND_LITERAL(type, value)(type){value} #define TEST_U8 COMPOUND_LITERAL(uint8_t,...
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...
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>...
Wciąż nie rozumiem do końca... LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n", length)); //LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=hu)\n"));//Moja modyfikacja - powyższa linijka powodowała hard fault Jak odkomentujesz tą drugą linijkę to się wykrzacza tak? Czy może wykrzacza się jak zakomentujesz pierwszą...
Ja to mam w dużo starszej wersji, tresć jest inna. Generalnie printf nie jest rtos-friendly, jest niereentrant, przy okazji pojawiają się problemy z alignment. Włacz sobie sprawdzanie stosu w rtosie przy okazji.
Wykonałem po 400 wywołań foo(). Otrzymane średnie wyniki: Bare-metal: 1. 7 2. 244,27 3. 44281,76 FreeRTOS: 1. 6 2. 236,22 3. 42486,88 Także wychodzi na to samo. Kod dorzucam dla ewentualnego sprawdzenia, czy na pewno dobrze wykonuje te pomiary. [syntax=c] uint32_t w1 = 0; uint32_t w2 = 0; uint32_t w3 = 0; void foo() { __disable_irq(); uint32_t j = 0;...
Napisz funkcję w C, której zadaniem będzie pobranie informacji o częstotliwości pracy wybranego rdzenia w ESP32. Użyj ESP-IDF. Oczywiście, chętnie pomogę Ci napisać taką funkcję. W ESP32, aby odczytać częstotliwość pracy rdzenia, możesz skorzystać z funkcji `esp_clk_cpu_freq()` dostępnej w ESP-IDF, która zwraca częstotliwość pracy CPU w Hz. Poniżej...
Hmm, właśnie nie rozwiązało to problemu. Racja, używa tych sprintfów do dodawania danych do tablicy, którą mu podaję. Żeby rozwiązać problem dużej biblioteki użyłem printf-stdarg.c z demo użycia FreeRTOS'a. Teraz jest tylko jeden problem, po pierwszym wykonaniu funkcji TaskGetRunTimeStats() dane wydają się być ok, ale po późniejszych procenty przekraczają...
printf() używa okrutnych ilości RAM, więc zacząłbym od tego. Jeśli nie wyświetlasz liczb z przecinkiem, to użyj iprintf() - wersja ta nie obsługuje zmiennego przecinka, ale za to zajmuje mniej pamięci flash i chyba trochę mniej RAM. Do tego printf() wymaga funkcjonalnego syscallsa _write_r(), więc na "pierwszy ogień" lepiej zacząć od sprintf() (lub...
Nigdy nie używałem debug_printf i w ogóle raczej mało debuguje w ten sposób ale FreeRTOS przejmuje systemowe przerwanie w SAM7X coby wykryć przerwanie od PITa. Poza tym jeżeli debug_printf w ogóle korzysta z przerwań to nie będzie działać bo we FreeRTOS przerwania muszą być odpowiednio "spreparowane". Popatrz sobie na przykładowe przerwania od UARTa.
(at)Freddie Chopin Tak jak wcześniej pisałem miałem uruchomiony projekt - obsługę ethernet na STM32f407 gdzie main wyglądał tak: [syntax=c] /** ****************************************... * (at)file main.c * (at)author MCD Application Team, EvertDekker * (at)version V1.1.0 * (at)date 14-September-2014 * (at)brief...
Już chyba wiem w czym problem - Twoja kompilacja po prostu wciąga kupę nieużywanych w ogóle funkcji (i danych), które nie zostają usunięte na etapie linkowania. Po przejechaniu Twojego kodu moim skryptem (tego dla AT91...) przy optymalizacji 0, ale z usuwaniem niepotrzebnych elementów, całość zajmuje.... 1.7kB (; Jeśli tylko wyłączę usuwanie nieużywanego...
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ć...
jest mały problem uruchomiłem wszystko jednak system się zawiesza dioda się zapala uruchamia się wyświetlacz i usart wszystko zawiesza :/ main.c [syntax=c]/*****************************... (c)*************************************... ** ** http://www.powermcu.com ** **--------------File Info------------------------------------...
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(美人時...
Cześć, Platforma: STM32F769I-DISCO OS: FreeRTOS Środowisko: System Workbench for STM32 Próbuję zaimplementować PTP na podanej platformie, jednak od dłuższego czasu męczę się z regularnie pojawiającym się Hard Faultem. Jak zdołałem wybadać, błąd pojawia się prawdopodobnie, gdy upłynie czas jednego z timerów programowych, które są tworzone. Tworzonych...
Projekt jest taki jaki jest, przez make kompiluje się co trzeba, część funkcjonalności została tymczasowo zakomentowana (ta z FreeRTOS) w ramach poszukiwania źródła problemu. Z CodeSourcery walczyłem i walczę, ale problem mam ze skryptem linkera Twoja strona bardzo pożyteczna i ciekawa, przydałby się jakiś artykuł o skryptach linkera (podobny do tego...
https://obrazki.elektroda.pl/6687336200_... Dzisiaj przedstawię najprostszą wersję DIY kamery internetowej opartej o płytkę M1S Dock. Pokażę jak można skompilować demo przesyłania obrazu JPG z kamery przez TCP do serwera w Pythonie oraz przeanalizuję jego działanie, ze szczególnym naciskiem na komunikację pomiędzy dwoma rdzeniami BL808....
Mam program w ze stosem LwIP 1.4.0 (+ FreeRTOS na LPC 1758/68 - ale to bez znaczenia). Pytanie moje brzmi: Jak mogę pobrać adres nadawcy pakietu UDP? Po moich poszukiwaniach znalazłem funkcję sockaddr ), zamiast sockaddr_in. W związku z czym nie mogę skorzystać z tej funkcji w sposób taki: [syntax=c]if (recvfrom(s, buf, BUFLEN, 0, &si_other, &slen)==-1)...
(at)ElektrodaBot Czy w zwykłych wątkach (poza ISR) można użyć vPortEnterCriticalSafe() oraz vPortExitCriticalSafe() zamiast stosowania operacji atomowych? Bezpośrednia odpowiedź W zadaniach (wątkach) FreeRTOS działających pod ESP-IDF można wywoływać `vPortEnterCriticalSafe()` / `vPortExitCriticalSafe()` zamiast używać `std::atomic`, ale należy traktować...
Witam! Od jakiegoś czasu bawię się mikrokontrolerami. Ostatnio próbuje swoich sił przy WinArmie. Nie mam problemu przy prostrszych projektach, gdzie w skład wchodzi pare plików. Problem i to duży pojawił się ostatnio, gdy próbowałem skompilować projekcik FREE RTOS-a (dość rozbudowany). Zmieniam ścieżkę dostępu do projektu, w pliku poza tym nic nie zmieniam....
STM32 + FreeRTOS 7.1.0 + IRQ Siedze już dłuższą chwilą nad takim czymś. Mam zdefiniowaną kolejkę i zadanie: xQueueReceive definiuje po ilu taktach (czyli ms) zadanie ma przechodzić w stan ZABLOKOWANE. Co bym tam nie wpisał zadanie się nie blokuje i działa. Ilość znaków w kolejce się zgadza - po wyświetleniu ostatniego znaku z kolejki zwraca 0. Próbowałem...
Sorry, wydawało mi się, że będzie czytelniej. [syntax=c]/* USER CODE BEGIN Header */ /** ****************************************... * (at)file : main.c * (at)brief : Main program body ****************************************... * (at)attention * * <h2>© Copyright (c) 2020...
Po napisaniu programu z wykorzystaniem z systemem FreeRTOS, nie mogę go skompilować. Od 2 dni googlam i bez rezultatu. Oto kod źródłowy programu. [syntax=c] #include "misc.h" //#include "stdio.h" #include <stm32l1xx_gpio.h> #include <stm32l1xx_rcc.h> //#include <stm32l1xx_flash.h> #include "discover_board.h" /* Scheduler includes....
A masz wyrównane stosy do 8-miu bajtów? Kiedyś o tym pisałem - bez tego właśnie CZASEM dzieją się problemy - np z funkcjami variadic, czyli m.in. z printfem... 4\/3!! Sekcję .data mam wyrównaną do 8, ale to wszystko co mogę zrobić. Ze stosami jest problem ponieważ korzystam z FreeRTOSa i każdy task ma dynamicznie przydzielany swój stos ze sterty, wiec...
No właśnie że nie, jedyne co mój komputer potrzebuje to zainstalowaną wirtulna maszynę javy, a resztę załatwia eclipse "rozszerzając" sobie systemowe PATH (na szybko opisałem wszystko tu link ) Skoro rozszerza o folder w którym jest make.exe, to równie dobrze może rozszerzać o folder z kompilatorem... Tak jak piszesz, np. plik arm-none-eabi-gcc.exe...
Hej wszystkim! Mam pytanie dotyczące połączenia klient-serwer ftp. Realizuje tego typu połączenie na mikrokontrolerze z wykorzystaniem lwip oraz freertos. W przypadku takiej komunikacji mamy dwa kanały - kanał poleceń oraz kanał danych. Realizuje jak na razie jedynie tryb pasywny komunikacji - a więc to klient nawiązuje połączenia. Najpierw nawiązuję...
Witam, posiadam STM32F429 na którym chcę uruchomić klienta http używając lwIP Raw Api. Problem jest taki że program działa kiedy używam debuggera, bez niego funkcja tcp_connect() zwraca błąd -4: /** Routing problem. */ ERR_RTE = -4, void tcp_client_init(void) { /* 1. create new tcp pcb */ struct tcp_pcb *tpcb; tpcb = tcp_new();...
Witam, Od kilku dni walczę z problemem uruchomienia serwera Echo TCP na FreeRTOS+TCP. Działam na zestawie discovery z mikrokotrolerem STM32F746NGH.Warstawę Ethernetu przetestowałem bez używania FreeRTOS na stosie LwIP i na pewno działa. Opis problemu: Po inicjalizacji sprzętu wywołuję funkcję FreeRTOS_IPInit, która tworzy zadanie prvIPTask odpowiedzialne...
Niestety nie zauważyłem znaczącej poprawy. Ale rozwiązanie zostało znalezione - błąd był po mojej stronie. Użyłem funkcji dostarczonej przez crossworksa debug_printf("Blalala..."); który powodował wysyłanie logów debuggowych na okno "output" w crossworks, niezależnie czy była to wersja debug, czy release. Problem polega na tym że funkcja ta wymaga podłączonego...
https://obrazki.elektroda.pl/4509007500_... Zapraszam na prezentację https://obrazki.elektroda.pl/1519670000_... Przygodę z APM32F003F6 pozwoli nam szybko rozpocząć płytka Mini Board. Oprócz głównego MCU z przydatnymi do uruchomienia elementami takimi jak rezonator kwarcowy, przycisk RESET oraz testowy, diody LED,...
sklonowane tutaj dla bezpieczeństwa https://github.com/divadiow/xr872_sdk Czy ktoś próbował zbudować z tego obraz hello world? Może wtedy moglibyśmy znaleźć offset flash w tym 1MB chipie, gdzie moglibyśmy flashować ten hello world... Dodano po 1 Kompilacja pod WSL dotychczasowe doświadczenia: 1. Pobrałem SDK stąd: https://launchpad.net/gcc-arm-embedded/4...
printf double stm32f printf printf stm32
programy symbian cienki blacha spawać passat wymiary
Elwro DEA – ściśnięte częstotliwości po przestrojeniu głowicy lampowej, jak rozciągnąć zakres UKF Mercedes radio – podłączenie kabli brązowy, czarny, szary do radia ISO (czarny, czerwony, żółty, pomarańczowy, niebieski)