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...
Witam W trybie FS możesz mieć mały problem z freeRTOS i USB jeśli chodzi o wysłanie danych z Stm32 do PC. W nim nie masz DMA i żeby wysłać dane musisz albo sprawdzać sam czy pierwsze 64 bajty zostały wysłane i potem wysłać następne (np co 1ms) lub zostawić jak masz zrobione w bibliotece od Stm, czyli oni włączają przerwanie Tx FIFO Empty Interrupt,...
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...
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...
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...
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ń...
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...
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...
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...
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...
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,...
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 ========================================...
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...
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.
Cześć, mam skonfigurowanego i działającego FreeRTOSa na STM32L452, priorytety w FreeRTOSConfig.h są skonfigurowane następująco: [syntax=c] #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO... 5 #define configKERNEL_INTERRUPT_PRIORITY 255 #define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent...
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...
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...
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...
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]...
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...
Nie da się. W tej implementacji FreeRTOS dla AVR, tiki są generowane przez przerwania WD - ich interwał można więc ustawiać w zakresie od 15 ms do 500 ms, co czyni ten RTOS (w moim przekonaniu) praktycznie bezużytecznym, ze względu na rozdzielczość timeout-ów. Pobrałem najnowszą wersjębo zainteresowało mnie wykorzystanie wd do przełączania zadań ale...
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(...
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...
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, 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;...
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...
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...
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...
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...
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....
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...
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 );...
[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++;...
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]
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,...
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...
Mój port to a LPC2xxx. W pliku portmacro.h jest napisane: /* If a switch is required then we just need to call */ /* vTaskSwitchContext() as the context has already been */ /* saved. */ #define portEXIT_SWITCHING_ISR(SwitchRequire... \ { \ extern void vTaskSwitchContext(void); \ \ if(SwitchRequired) \ { \ vTaskSwitchContext();...
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...
Może jednak masz błąd gdzieś indziej? Wg informacji z najbardziej pewnego źródła: http://infocenter.arm.com/help/topic/com... (strona 4-18) ustawienie PRIGROUP na wartości od 0 do 3 ma jednakowy efekt dla STM32, bo tenże układ ma tylko 4 wyższe bity priorytetów: Implementations having fewer than 8-bits of interrupt...
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;...
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...
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...
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...
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.
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!!
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...
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...
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...
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)...
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...
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...
[syntax=c]//-=-=-=-=-=-=-=-=-=-=-=-=-=-=... // Task FreeRTOS - obsluga interfejsu sieciowego //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=... void vTaskEthernet(void * pvParameters) { /* uIP */ int i; struct uip_eth_addr mac_addr; //MAC Address struct...
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....
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...
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)...
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 */ /*...
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...
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...
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------------------------------------...
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 (...
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...
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...
Fajna sprawa taka plytka z sam7x i ethernetem. Tez sie bawie taka konstrukcja. 1. RTOS w AT91SAM i w ogóle "system czasu rzeczywistego" w mikrokontrolerach polega na wywoływaniu wewnętrznego przerwania które to przerwanie zarządza wszystkimi zadaniami? Mniej wiecej. W procku SAM7X i przykladzie ze strony FreeRTOSa zajmuje sie tym PIT (periodic interrupt...
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...
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ą...
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....
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...
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 *...
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). //**************************************...
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...
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 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...
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 wyłączyć interrupt podstawy
bascom input bajty zasilanie radia buczy przygasa płomień
czemu zalewa swiece czemu zalewa swiece
Soundcraft Spirit M4 – schemat serwisowy, Service Manual, typowe usterki, zamienniki części HP DeskJet 2130 – reset kolorowego tuszu, chip HP 302, obejścia, napełnianie wkładów