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, że system gryzie się z ustawionymi przeze mnie przerwaniami więc je wyłączyłem. Nie przyniosło to pożądanego efektu.
Chciałem sprawdzić jak wyglądają rejestry w trakcie pracy programu. Konfiguracja przebiega prawidłowo i rejestry są ustawione identycznie jak gdybym to robił za pomocą SysTick_Config. Zaś konfiguracja RTOSa była zaczerpnięta z dema dla stm32f107 oraz z poradnika Elektroniki praktycznej. Nie posiadam też nigdzie indziej zadeklarowanych funkcji Handlerow. Nie zauważyłem, żadnego problemu jeśli chodzi o priorytety tasków oraz przerwań więc już naprawdę nie wiem gdzie szukać błędu.
Używam:
heap_4.c
FreeRTOS v8.2.2
Gcc 4.9
Poniżej wstawiam kod.
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, że system gryzie się z ustawionymi przeze mnie przerwaniami więc je wyłączyłem. Nie przyniosło to pożądanego efektu.
Chciałem sprawdzić jak wyglądają rejestry w trakcie pracy programu. Konfiguracja przebiega prawidłowo i rejestry są ustawione identycznie jak gdybym to robił za pomocą SysTick_Config. Zaś konfiguracja RTOSa była zaczerpnięta z dema dla stm32f107 oraz z poradnika Elektroniki praktycznej. Nie posiadam też nigdzie indziej zadeklarowanych funkcji Handlerow. Nie zauważyłem, żadnego problemu jeśli chodzi o priorytety tasków oraz przerwań więc już naprawdę nie wiem gdzie szukać błędu.
Używam:
heap_4.c
FreeRTOS v8.2.2
Gcc 4.9
Poniżej wstawiam kod.
Kod: C / C++
Kod: C / C++
Kod: C / C++
Kod: C / C++