NVIC_ClearPendingIRQ(USB_IRQn) nic nie da w tym przypadku. Należy wykasować flagi w rejestrze USB interrupt status register (USB_ISTR) , ale jeśli to zrobisz samodzielnie funkcja HAL_PCD_IRQHandler(&hpcd_USB_FS) może już nie działać właściwie ponieważ w zależności od stanu tych flag są podejmowane odpowiednie działania. Jak wskazuje sama nazwa tej...
Witam, w pliku konfiguracyjnym od systemu mam taką stała: [syntax=c]#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO... Jeżeli wywołam w przerwaniu o priorytecie ustawionym z przedziału 0-4 funkcję xQueueReceiveFromISR, program zawiesza się. Wychodzi na to, że mogę ustawiać priorytety jedynie od 5-15. I może zgadzało by się z komentarzem...
Oto i plik konfiguracyjny: [syntax=c] /* FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public...
Jak jestem w przerwaniu i robię tak to działa: Większość funkcji FreeRTOSa zwraca jakiś kod błędu, wystarczy go sprawdzić a nie ignorować. Czy jak używam przerwań na FreeRtos to funkcja powinna mieć naked+ interrupt, czy tylko interrupt tak jak tu: W pliku FreeRTOSConfig.h po prostu dorzuć coś takiego: [syntax=C]#define vPortSVCHandler SVCall_Handler...
Próbuję bawić się systemem FreeRTOS. Mam problem, gdy uruchomię tylko jedno zadanie led lub tx to wówczas one działają. Gdy próbuję uruchomić 2 zadania, nie działa nic. Próbowałem zmieniać rozmiar stosu, priorytety zadań i nic. [syntax=c]#include <stm32f4xx_usart.h> #include <misc.h> #include "stm32f401_discovery.h" #include "usart.h" #include...
Hej, chciałem was poprosić o pomoc w postawieniu FreeRTOS na STM32F407 VG discovery Board. Przeczytałem kilkakrotnie tutorial na stronie http://imagizer.imageshack.us/v2/320x240... Następnie dodaje pliki RTOS'a zgodnie z instrukcją http://imagizer.imageshack.us/v2/320x240... W kolejnym kroku dodaje FreeRTOSConfig.h do katalogu...
Witam, Problem polega na tym, że po dodaniu do projektu bibliotek FreeRTOS'a i "poprawnym" jego skonfigurowaniu mam problem z SysTickiem i jego przerwaniem. Samo w sobie przerwanie działa poprawnie. Są zgłaszane przerwania co określony czas jednak taski nie są w stanie się przełączać. Planista ciągle siedzi w ostanio utworzonym tasku. Początkowo myślałem,...
Witam, przejrzałem na forum podobne tematy, ale mimo wszystko nie umiem sobie poradzić z uruchomieniem zadania mającego na celu miganie diodą. FreeRTOSConfig.h - zapożyczony z przykładu z archiwum z FreeRTOS [syntax=c]#ifdef __ICCARM__ #include <stdint.h> extern uint32_t SystemCoreClock; #endif #define configUSE_PREEMPTION 1 #define configUSE_IDLE_HOOK...
Skoro tak to pokaż w kodzie gdzie ten WD jest ustawiany i przerwanie od niego, bo ja nie znalazłem. Odnoszę się do kodu ze strony https://github.com/feilipu/Arduino_FreeR... [syntax=c] BaseType_t xPortStartScheduler( void ) { /* Setup the relevant timer hardware to generate the tick. */ prvSetupTimerInterrupt(); /* Restore the context of the...
Witam, próbuje uruchomic FreeRTOS 7.6.0 na LPC1768. Korzystam z CooCox`a. Dodałem do projektu plik FreeRTOSConfig.h, wybrałem stertę heap_2, port to oczywiście GCC->ARC_CM3. Podpiołem Handlery do przerwań. Plik FreeRTOSConf.h [syntax=c] #ifndef FREERTOS_CONFIG_H #define FREERTOS_CONFIG_H /* Here is a good place to include header files that are required...
niemniej jednak cały taki proces zajmuje kilkadziesiąt-kilkaset cykli zegara. A dokładniej, to jest to ok. 1000 cykli, czyli 10x więcej (15us(at)72MHz) http://stackoverflow.com/a/24906003/4676... Ale żeś się uparł... Normalnie zaraz oscyloskop chyba wyciągnę i Ci zmierzę ile trwa zmiana kontekstu w moim systemie (; Tak czy siak FreeRTOS jest ciekawym...
Miałem podobny problem z przerwaniem od RTC (przeliczanie/odświeżanie dnia/miesiąca/godziny itd do struktury). Po zainicjowaniu przerwań: [syntax=c]/* Enable the RTC 1s Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp... = 4; NVIC_InitStructure.NVIC_IRQChannelSubPri... = 0; NVIC_InitStructure.NVIC_IRQChannelCmd...
Doszedłem do podobnego wniosku aby dodać w pliku vector .extern vPortYieldProcessor oraz zmienić // Software interrupt (SWI) .weakSWI_Handler .globalSWI_Handler //.setSWI_Handler, __Default_Handler .setSWI_Handler, vPortYieldProcessor przynajmniej tak autor tworzył pozostałe uchwyty. Nie wiem czy będzie to to samo co . set SWI_Handler, __SWI_Handler...
Nie znalazłem pliku o którym piszesz w źródłach FreeRTOS. Semafor jest tworzony przez funkcję prvSetupEMACInterrupt(void): static void prvSetupEMACInterrupt( void ) { /* Create the semaphore used to trigger the EMAC task. */ vSemaphoreCreateBinary( xSemaphore ); if( xSemaphore ) { /* We start by 'taking' the semaphore...
valarian napisał: Zgodnie z tym, co wyczytałem na stronce RTOS'a, to na rdzeniach Cortex-M3 wartości priorytetów są odwrócone - zero oznacza zatem najwyższy priorytet. Mógłbyś pokazać źródło ? gaskoin, choćby na stronce ARMa 5.3.1. Priority levels The NVIC supports software-assigned priority levels. You can assign a priority level from 0 to 255 to...
No właśnie o priorytetach wiem, 15 top najniższy dlatego wszystkie przerwania mają Dodano po 2 Niestety zwiększenie do 4kB stosów (Stack Configuration i Heap Configuration) w niczym nie pomogło, program wchodzi do przerwania i zawiesza się przy sprawdzaniu flagi. Jak nie sprawdzam flagi to wszystko działa. Wychodzi na to, że musiałbym na te 4 klawisze...
Witam, mam problem z sprzętowymi przerwaniami na FreeRTOS-ie, dla LPC1768 (Keil v.4.60). Otóż, wstępnie już freeRTOSa ogarnąłem, taski, semaphory, softwareowe przerwania. Wszystko fajnie działa. Przyszedł czas na obsługę przerwań sprzętowych. Próbowałem dołączyć pliki .c i .h które mam do obsługi przerwań danej peryferii, jak i bezpośrednio do projektu...
Witam, Próbuję odpalić FreeRtos na At91Sam7S128. Próbuję go debugować i dochodzę do wywołania wstawki asemblerowej: __asm volatile ( "SWI 0" ) lub asm volatile ( "SWI 0" ) Ani jedna opcja ani druga nie działa. Po wywołaniu tej wstawki program idzie w buraka. Zaktualizowałem plik *.S który zamieszczam w tym poście....
Pamietaj ze w FreeRTosie przerwan nie mozna obslugiwac w " zwyczajny sposob" tzn funkcjami ktore automatycznie odkladaja dane na stos a potem je zdejmuja itp. Nalezy wykorzystac makra portENTER_SWITCHING_ISR() i portEXIT_SWITCHING_ISR Przyklad przerwania od timera: Inicjalizacja timera void timer_init ( void ) { portENTER_CRITICAL(); //* Open timer0...
oraz odzielnie projekt urządzenia USB klasy HID Ten "projekt urządzenia USB" to program napisany pod system freeRTOS? Czy raczej chcesz pod systemem freeRTOS uruchomić obsługę USB? Nie,to oddzielny projekt-> standardowy projekt urządzenia USB klasy HID od ST. Chcę uruchomić ten przykład USB HID pod freeRTOSem. Zaczałem od tego,że do dziającego projektu...
Witam, Pierwszy raz ustawiam PWM na SAM7S64. Całość działa na FreeRTOS. Chcę ustawić PWM na kanale 0 (pinA0) o okresie 1sek. void audio_hw_conf(void) { // Confiugre PIO (Parallel Input/Output Controller). AT91C_BASE_PIOA->PIO_PDR = AT91C_PWMC_CHID0; // Enable peripheral function. AT91C_BASE_PIOA->PIO_ASR = AT91C_PWMC_CHID0;...
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...
[syntax=c]void EXTI15_10_IRQHandler(void) { pEXTI15_10_func(); }[/syntax] do pEXTI15_10_func(); podczas inicjalizacji zostaje przypisana poniższa funkcja: [syntax=c]void vhCRIF2_WIEGAND_ISR(void){ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; if(EXTI->PR & (uint32_t)(1 << CRIF2_DATA1_Pin)){ pCRIF2_Buffer[CRIF2_BufferIndex] = 0x01; CRIF2_BufferIndex++;...
Witam Powiem tak u mnie jest to samo jeśli chodzi o FreeRtos i Sam7x256 +Code Sourcery mam podobne problemy co kolega "Zaquadnik". Kiedyś pracowałem yagarto, po ściągnięciu gotowego projektu ze strony FreeRtos, program się kompiluje i działa od razu. (nadmienię że na stm32 nie ma żadnych problemów z Rtos + Code Sourcery) Pierwszy problem mam z przerwaniami...
Witam! Walka jest ostra, ale z każdą chwilą tracę nadzieję EDIT: przy synchronizacji flagą jakimś sposobem gubione jest pierwsze przerwanie, więc jeśli za pierwszym razem nie czekam na flagę, to potem już idzie, tyle że się trochę UART sypie - po 14tu znakach wysyłane są dwa zera... Jakieś pomysły co robię źle? 4\/3!!
[syntax=c]//-=-=-=-=-=-=-=-=-=-=-=-=-=-=... // Task FreeRTOS - obsluga interfejsu sieciowego //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=... void vTaskEthernet(void * pvParameters) { /* uIP */ int i; struct uip_eth_addr mac_addr; //MAC Address struct...
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)...
Optymalizacja - zero boot.s MEMORY { flash: ORIGIN = 0x00100000, LENGTH = 256K ram : ORIGIN = 0x00200000, LENGTH = 64K } __stack_end__ = 0x00200000 + 64K - 4; SECTIONS { . = 0; startup : { *(.startup)} >flash prog : { *(.text) *(.rodata) *(.rodata*) *(.glue_7) *(.glue_7t)...
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------------------------------------...
I tu jest problem. Łamiesz tym podstawową zasadę w ustawianiu priorytetów przerwań w FreeRTOS'ie. Ustaw priorytet na: configLIBRARY_KERNEL_INTERRUPT_PRIORITY. Zdefiniowane jest toto w FreeRTOSConfig.h. W komentarzu masz opisane na jaką najniższą wartość możesz ustawić przerwanie korzystające z funkcji FreeRTOS'a.
Jeśli timer jest 16-bitowy to musisz dorzucić coś więcej - 16-bitów to zbyt mało. Licznik z którego korzystają run-time stats musi być 32-bitowy... Ja na STM32 mam to zrobione tak... 1. W FreeRTOSConfig.h mam: [syntax=C]... /*--------------------------------------... | Runtime...
Poczytaj w dokumentacji, sprawa jest tam poruszona. SysTick i PendSV mają być na najniższym, a inne przerwania - które używają funkcji RTOSa - nie mogą mieć wyższego priorytetu (niższego numerka) niż configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO... lub configMAX_SYSCALL_INTERRUPT_PRIORITY. Obstawiam, że jedna z tych wartości nie jest używana i w ogóle jest...
Dodałem konfiguracje SysTick do obu projektów. Zero efektu. Już mi się kończą pomysły. Przejrzałem konfiguracje linkera, kompilatora i nic. Nie wiem czego się złapać. Wszystkie inne projekty działają a nie umiem uruchomić żadnego RTOS'a. Dodano po pewnym czasie Odpaliłem FreeRTOS Wiedza dla potomnych. Wystarczyło w pliku port.c włączyć aliasy przerwań...
Nie pochwalę się pewnie teraz wiedzą ale już piszę co zrobiłem że mi zaczął freertos banglać.. :) A więc - podpięte przerwania miałem w pliku stm32f10x_it.c: [syntax=c]void SVC_Handler(void) { vPortSVCHandler(); //FreeRTOS SVC Handler } void PendSV_Handler(void) { xPortPendSVHandler();//FreeRTOS PendSV Handler } void SysTick_Handler(void) { xPortSysTickHandler();//FreeRTOS...
Jeżeli chcesz używać funkcji z API FreeRTOS w przerwaniach to portENTER_CRITICAL() powinien maskować to przerwanie. To, które przerwania są maskowane określa definicja: configMAX_SYSCALL_INTERRUPT_PRIORITY Znajduje się ona w pliku FreeRTOSConfig.h.
Ach, więc to jest problem. Naprawimy to w następnym patchu. Potrzebuje kogoś do przetestowania uart, najlepiej z tuyamcu. Głównym problemem jaki napotkałem jest to, że esp_restart powoduje crash (najczęściej "Wykryto przepełnienie stosu w zadaniu sys_evt"). Jeśli ktoś wie, jak to debugować, oto coredump ========================================...
Dziękujemy za udostępnienie. Oto migawka ich SDK: Major enhancements with this release include: • Support BK7235/BK7237/BK7256 development kit • Support Multi-media dirver & demos • Support new software architecture, such as components and middleware etc • Support boot for RISC-V • Support new APIs for driver ADC/GPIO/DMA/UART/SPI/QSPI/Timer/TRNG/Ma...
Atrybut interrupt pochodził z Twojego kodu http://files.elektroda.net/559270,vector... To są stare czasy - wywal ten atrybut <; Piszesz, że problem jest w kodzie generowanym dla blokowania wątków. Czyli jeśli dobrze rozumiem, błąd leżałby we FreeRTOS? Nie do końca o to chodzi [; Po prostu źródłem problemu wg mnie jest kod który zajmuje...
michalko12: Zmieniłem xHandleTaskLED1, xHandleTaskLED2 na static, ale nic to nie pomogło. xLastFlashTime nie można: error "initializer element is not constant". W keilu żadnej tej zmiennej nie miałem jako static a program działał więc podejrzewam, że nie tu jest problem. Dodano po 4 Smashing: Jak wrzucam Twój program do Eclipsa to się nawet nie kompiluje...
Podaje, gdyby ktoś szukał i potrzebował: To rozwiązanie to akurat generuje zadania FreeRTOS, a nie przerwania. Aby faktycznie generowały się przerwania kod inicjacji timera powinien wyglądać tak: [syntax=c]esp_timer_create_args_t timer_args = { .callback = &onTimer, .arg = NULL, .dispatch_method = ESP_TIMER_ISR, .name = "Timer 2ms", };[/syntax]...
Nic. Wszystkie wartości PRIGROUP od 0 do 3 mają takie same znaczenie czyli 16 grup i 0 sub. No właśnie w teorii też myślę że tak jest ale praktyka jest dla mnie trochę inna jeśli chodzi o FreeRtos. Na stronie http://www.freertos.org/RTOS-Cortex-M3-M... piszą wyraźnie: If you are using an STM32 with the STM32 driver library then ensure all the priority...
Tablice wektorów mam z przykładów ze strony [url=http://www.freddiechopin.info/]http... Nic w niej nie zmieniałem i wersja 6.1.1 działa dobrze a 7.1.0 wiadomo Tak wygląda tablica wektorów: [syntax=cpp]void (* const vectors[])(void) __attribute__ ((section(".vectors"))) = { (void (*)(void))&__main_stack_end,// Main stack end address...
Oto FreeRTOSConfig.h [syntax=c] /* FreeRTOS V7.4.1 - Copyright (C) 2013 Real Time Engineers Ltd. FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. ****************************************... * * * FreeRTOS tutorial books are available...
Armino SDK zostało oczywiście wydane jako open-source: https://github.com/bekencorp/armino Funkcje Armino 1.2.0: Główne ulepszenia wprowadzone w tej wersji obejmują: • Obsługa zestawu rozwojowego BK7235/BK7237/BK7256 • Obsługa multimediów i demonstracji • Obsługa nowej architektury oprogramowania, takiej jak komponenty i oprogramowanie pośrednie itp...
Witam! Piszę aplikacje pod FreeRTOS / STM32 i napotkałem się na taki problem. W systemie uruchomione mam przerwania które to ustawiają semafory a te zezwalają na pracę tasków uruchomionych pod FreeRTOS. No i wszystko jest fajnie pięknie puki ustawienie semafora nastąpi już po uruchomieniu systemu czyli vTaskStartScheduler() Pomijam już fakt, że z chwilą...
Natomiast GDB wyrzuca mi bledy uniemozliwiajace uruchomienie i debbugowanie programu. ... Komunikaty GDB: target remote localhost:3333 Transfer rate: 8 KB/sec, 9702 bytes/write. break main Breakpoint 1 at 0x4fc4: file src/main.c, line 65. continue Note: automatically using hardware breakpoints for read-only addresses. Program received signal SIGINT,...
Pierwszą rzeczą, jaka mi się pozytywnie rzuciła w oczy, to brak konieczności stosowania debouncingu dla przycisku, co widać w ciele funkcji increment_from_interrupt_PA0 (main.c) oraz funkcji EXTI0_IRQHandler (ISR.c). W procedurze obsługi przerwania od przycisku EXTI0_IRQHandler następuje odblokowanie semafora, pozwalając na wykonanie funkcji increment_from_interrupt_PA0....
Witam! Mam troche amatorskie pytanie, ale nie mogę się połapać co robię nie tak.. Miałem swój działający program kompilował się normalnie, ale gdy zrobiłem sobie make clean i chciałem go na nowo skompilować za pomocą make, to już przestał się kompilować :shocked!:, czego nie rozumiem teraz generalnie dostaje błąd: [syntax=bash]/home/tomek/Pobrane/FreeRTO...
Udało się. Nie wiem jak to zrobiłem. Jestem w tej chwili w takim szoku pozałamaniowym, że ciężko mi się skupić na pisaniu. Ale zostawię tutaj rozwiązanie dla potomnych, krok po kroku. Otóż. Najpierw inicjuję w main'ie przerwanie dla przycisku, który ma włączać diodę. void prvSetupLedInterrupt() { vSemaphoreCreateBinary( xSemaphore );...
Ustawione jak poniżej oraz dodatkowo plik FreeRTOSConfig.h w załączniku. Czy jest dobrze ? [syntax=c]void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) { . . /* UART5 interrupt Init */ HAL_NVIC_SetPriority(UART5_IRQn, 5, 0); HAL_NVIC_EnableIRQ(UART5_IRQn); } [/syntax]
Powtórzyłem twój test u siebie i niestety u mnie nie działa. Nawet po zwiększeniu CONFIG_FREERTOS_HZ do 1000 Cały zegar działa natomiast gdy użyję timer_isr_register(TIMER_GROUP_0, TIMER_0, przerwanie_od_timer, NULL, 0, NULL); I to działa nawet gdy z 111µs zejdę do 35µs. The thing is flash (write) accesses. An interrupt marked as in...
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...
Widzę, że koledzy poruszali podobny temat o który chcę zapytać: Otóż po utworzeniu semafora binarnego: xSemaphoreHandle hBinarySemaphore = NULL; int main (void) { hw_SystemSetup(); vSemaphoreCreateBinary(hBinarySemaph... if(NULL!=hBinarySemaphore) { xTaskCreate(vTask1Continous, "continous",...
Co do priorytetów, u mnie dla LPC1769 jest ustawione tak: [syntax=C]/* The lowest priority. */ #define configKERNEL_INTERRUPT_PRIORITY ( 31 << (8 - configPRIO_BITS) ) #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( 5 << (8 - configPRIO_BITS) )[/syntax] Dla STM32 configPRIO_BITS jest równe 4. U siebie też tak masz? Z tym przesunięciem bitowym?...
w port.c zmien pxTopOfStack -= 2; na pxTopOfStack -= 1; kiedyś miałem podobny problem. Ale to też zależy od wersji RTOS-a. Generalnie jest z tym trochę problemów. U mnie to tak wyglada: [syntax=c]StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters ) { /* Simulate the stack frame as it would be created...
Witam Próbuje napisać w miarę sprawny driver pod Freertosa (PIC24FJ...), napotkałem dość dziwną sytuacje: -------- Wysyłanie stringa: xQueueSend(xTxQueue_UART2,pTemp,port... -(zapis wykonał sie, zostało zwrócone pdTRUE -sprwadz. przez debbuger) tuz potem występuje przerwanie z racji HR_StartTxTransmission(); //IFS1bits.U2TXIF...
(at)Zari44 Mi sie bardzo nie podoba jak ty odbierasz dane z GPS, nie dosc ze parsowanie i to bardzo kiepskie zrobione jest w przerwaniu to masz bardzo duza szanse ze XXX_buffer_index wyjedzie poza zdeklarowany bufor w przypadku braku 0x0A Ja bym ten fragment doprowadzil najpierw do ladu i skladu np. dodal jakis ladny bufor kolowy i calosc parsowania...
Witaj, Zrobiłem kilka dużych projektów na tym STR912. Nie mam jednak kodu pod ręką więc napisze coś co Ci może pomóc a resztę wieczorem. ARM, ma dwie linie przerwań, jedna IRQ druga FIQ, i tyle. Ten VIC jest zewnętrzny i nie ma nic do ARMa. Trzeba więc mieć: 1) Handler do IRQ ARMa, zwykle assembler, poszukaj plików *.s a w nich czegoś o nazwie "Vector...
Witam, Od dłuższego czasu używam Eclipse Indigo wraz z CodeSourcery i GDB od Atollica do tworzenia i debugowania programów pod STM32. Taki "zestaw" działa bardzo dobrze przy klasycznej, jednowątkowej aplikacji. Jednak przy próbie uruchomienia FreeRTOS na STM32F103 program wchodzi w HardFault_Handler z komunikatem Suspended: Signal 'SIGTRAP' received....
Witam, Używam stm32F100 z zaimplementowanym FreeRTOS ver. 7.0.0. Stworzyłem 3 taski oraz dodatkowo jedną funkcję wykonującą się w vApplicationTickHook. Problem polega na tym, że po pewnym czasie np. 5 min dzialania programu nagle sterownik zawiesza się - ląduje cały czas w funkcji portTASK_FUNCTION czyli w tasku Idle. Żaden task nie działa, jedynie...
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...
Od trzech dni bawię się ARM AT91SAM7x256 i RTOS. O RTOS nie wiem nic. Analizując program z www.freertos.org doszedłem co gdzie zmienić żeby dane które chce pojawiały sie w przeglądarce na PC, może ktoś zna odpowiedzi na te pytania: 1. RTOS w AT91SAM i w ogóle "system czasu rzeczywistego" w mikrokontrolerach polega na wywoływaniu wewnętrznego przerwania...
Didn't manage to get any further than (at)__Maciek__ and (at)pkaczmarek2 . make bk7231 throws general_dma compile errors: beken378/driver/general_dma/general_dma.... error: 'gdma_get_dma_en' defined but not used And if you ignore the errors with make -i bk7231 looks like more drivers also fail to compile. I've compiled and flashed the binary for...
Witam, mam problem z Input capture mode w stm32vldiscovery. Mianowicie chciałbym zliczyć czas trwania impulsu na pinie PA0. Zrobiłem wszystko według instrukcji z http://www.st.com/web/en/resource/techni... strona 291. Wynik pomiaru wysyłam za pomocą UART. Problem jest w tym, że przy podaniu sygnału mikrokontroler...
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....
Niektóre narzędzia pozostawiają wiele do życzenia. Można mieć setki opcji, ale jeśli te opcje nie są opisane, albo opisane lakonicznie, bo narzędzie nie pozwala na obszerny komentarz, to tak naprawdę niczego to nie ułatwia. Trzeba się domyślać co autor miał na myśli, albo szukać gdzieś w zewnętrznej dokumentacji, jeśli w ogóle ona istnieje. Jeszcze...
Chciałbym odświeżyć temat. Obecnie linker script wygląda tak: [syntax=c]/* ----------------------------------------... */ /* Atmel Microcontroller Software Support */ /* SAM Software Package License */ /* ----------------------------------------... */ /* Copyright (c) 2014, Atmel Corporation...
Witam wszystkich zainteresowanych. Może zacznę od opisu kontekstu: W swoim projekcie wykorzystuje czytniki kart. Zasada ich działania jest taka, że gdy na jednej lini pojawia się zbocze opdajace, z drugiej odczytujemy logiczny stan. Wysłanie jednego numeru to wysłanie 40 bitów. W moim urzadzeniu wykorzystuję dwa takie czytniki. W załaczonym obrazku...
Sprawa wielokrotnie poruszana. Jak zajrzysz do skryptu linkera, to znajdziesz tam takie coś: /* +=======================================... | stacks sizes +=======================================... */ /* Handler mode (core exceptions / interrupts) can use only main stack */ /*...
(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ć...
Np. w takim LPC5411x do tego typu komunikacji międzyrdzeniowej wykorzystywany jest mailbox. • Provides a means Inter-Processor Communication, allowing multiple CPUs to share resources and communicate with each other in a simple manner. • Each CPU can cause up to 32 user defined interrupts to its partner. • Each CPU can claim a shared...
Kolejnym krokiem jaki zrobilem to zaladowalem pod eclipcs program demosntarcyjny dla FreeRTOS: [url=http://www.freertos.org/portlpc2368... LPC2368 with Eclipse and GCC development tools . Z kompilacja nie bylo problemow. Wgralem plik wynikowy RTOSDemo.elf do pamieci Flash przy pomocy openocd. Wystartowalem program demonstracyjny z debuggera...
Wydawało mi się, że poprawnie skonfigurowałem FreeRTOS, ale ten znowu mnie zaskoczył :) Nie wiem czym Cię zaskoczył bo dokumentacja mówi o tym wyraźnie. Starts the FreeRTOS scheduler running. Typically, before the scheduler has been started, main() (or a function called by main()) will be executing. After the scheduler has been started, only tasks...
Witam ponownie, próbuję uruchomić przerwania na str9 (timer, watchdog) na GCC. Mianowicie, obsługa timera wykonuje się tylko raz, kojarzy mi się, że miałeś podobny problem. W którym miejscu jest błąd? Z góry dzięki za pomoc. Poradziłem sobie z tym, przy przerabianiu kodu z przykładu str91x z IAR na GCC warto było zwrócić uwagę na: - dokładne sprawdzenie...
Popatrz na ten fragment skryptu linkera: /* Handler mode (core exceptions / interrupts) can use only main stack */ /* Thread mode can use main stack (default) or process stack - selected in CONTROL special register */ __main_stack_size = 0; __process_stack_size = 1024; PROVIDE(__main_stack_size = __main_stack_size); PROVIDE(__process_stack_size...
Witam Mam pytanie odnośnie FreeRTOS-a. Zacząłem analizować kod źródłowy, a konkretnie port.c dla ARM_CM3 (GCC). Zaczynam już rozumieć mechanizm przełączania kontekstu, ale utknąłem w jednym miejscu. Problem mam z funkcją : void xPortPendSVHandler( void ) { /* Start first task if the stack has not yet been setup. */ __asm volatile (...
Pokaż mi jakikolwiek komercyjny czy darmowy kod NIE-BĘDĄCY biblioteką do układów peryferyjnych od ST, NXP, Atmela itd., w którym jest coś podobnego, chętnie zobaczę. LWIP (biblioteka - od Ethernetu) * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *...
Standardowo jest taktowany 168MHz na wewnętrznym źródle sygnału: Dodano po 13 Dodano po 28 [syntax=c] /** ****************************************... * (at)file system_stm32f4xx.c * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 30-September-2011 * (at)brief CMSIS Cortex-M4 Device Peripheral Access...
Brak timerinit(), więc nie wiemy, co robi. A to co?: osThreadInit(); osKernelStart(); timerInit() zamieściłem w pierwszym poście, powtarzam: Dodano po 15 Buforowanie rejestru preskalera? Po konfiguracji rejestru TIMx_PSC dodaj ustawienie bitu TIMx_EGR_UG i daj znać czy pomogło ;) Dodałem to o czym piszesz: [syntax=c] void timerInit(void) { /* Włączenie...
Aż tak nie testowałem, a nawet myślałem, że yield() właśnie już nie będzie potrzebny w ESP32, bo właśnie WIFI działa sobie na osobnym core, można go co prawda użyć bez problemu, ale i tak domyślnie jest tylko core1, core0 działa sobie z obsługą WIFI. A od guru esp znalazłem taki cytat: igrr says: October 31, 2016 at 9:20 am In ESP32 Arduino core we...
Dzień dobry! Przycisk podpięty do płytki mam w/g schematu: http://arduino.cc/en/uploads/Tutorial/bu... Kod mojego maina: #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include "stm32f10x_flash.h" #include "misc.h" /* Scheduler includes. */ #include <stdio.h> #include "FreeRTOS.h" #include...
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,...
Witam Przymierzam się do portowania FreeModbus na STM32 i mam kilka problemów wynikających z wymagań. Platform specifics (port.h) You should first check the file port.h and check the if the examples are already suitable for your platform. You must at least define the macros for enabling ENTER_CRITICAL_SECTION and disabling EXIT_CRITICAL_SECTION interrupts....
1. Jak wspomniałem komendy gdb wziąłem z innego projektu, a że nie znam dobrze gdb więc konfiguruję wszystko metodą prób i błędów. Zamieniłem zatem soft_reset na reset_halt i tez działa. Zostawię tak jak poleciłeś. 2. Kod startup'a nie jest mojego autorstwa, był razem z paczkami od Luminary (albo z dema FreeRTOSa). //**************************************...
Używam VScode z esp-idf i mam problem z kodem i myślę, że biblioteki chcę podłączyć modem 868 MHz do esp32c6 i podłączyć bezprzewodowy Czujnik PIR. Moduł 868 MHz to transcelator RS485 eletechsup RT18A01. #include < RadioLib.h > // Pin czujnika ruchu const int motionSensorPin = 2); // Pin czujnika drzwi const int doorSensorPin = 3; // 868 MHz...
interrupt event interrupt podstawy interrupt wyłączyć
zmiana głosu naprzemiennie diody czujnik wyrównać
magnes amica excel statystyki pracy
Temperatury rurek w suszarce z pompą ciepła Bosch, LG, Miele – typowe wartości i diagnostyka Szlifierka mimośrodowa Nitro 300W – spadek mocy przy docisku, szczotki, łożyska, diagnostyka