25.10.2015, 23:40
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
FreeRTOS STM32
Здравствуйте.
Осваиваю эту ОСь для STM32 и возникает вопрос с приоритетом прерываний SysTIK и PVD. По умолчанию они настраиваются равными 15, т. е. имеют самый низкий приоритет в системе. Верно это или нет?
|
|
|
|
25.10.2015, 23:41
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: FreeRTOS STM32
А что это меняет для вас?
|
|
|
|
25.10.2015, 23:55
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: FreeRTOS STM32
Сообщение от Easyrider83
|
А что это меняет для вас?
|
Получается проблема с семафорами и уведомлениями при вызове из прерывания EXTI. Yходит куда-то не в ту степь.
|
|
|
|
26.10.2015, 00:03
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: FreeRTOS STM32
Без кода говорить трудно. Да и с кодом не просто - уходит она в hard fault, очевидно.
Для прерываний там есть специальные процедуры типа ****FromISR.
|
|
|
|
26.10.2015, 00:10
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: FreeRTOS STM32
Это я знаю. Но когда ставлю принудительно приоритет сустик 10 а ехти прерывания 15 то вроде работает. Может косяк в моих настройках?
|
|
|
|
26.10.2015, 09:42
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: FreeRTOS STM32
Может быть. Вам слова поддержки нужны? Даже если вы весь проект прилепите, вам на 100% никто не поможет. Вообще ничто вам не мешает по-старому использовать volatile переменные и флаги.
|
|
|
|
26.10.2015, 10:04
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: FreeRTOS STM32
Во FreeRTOS есть файл FreeRTOSConfig.h.
Я не совсем понял о чём вы пишете, но возможно об этом?
Код:
|
/* The lowest interrupt priority that can be used in a call to a "set priority"
function. */
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf
/* The highest interrupt priority that can be used by any interrupt service
routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
PRIORITY THAN THIS! (higher priorities are lower numeric values. */
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
/* Interrupt priorities used by the kernel port layer itself. These are generic
to all Cortex-M ports, and do not rely on any particular library functions. */
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY ‹‹ (8 - configPRIO_BITS) )
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY ‹‹ (8 - configPRIO_BITS) ) |
Правда там не вызывается HardFault.
Возьмите готовый проект на свой камень из примеров FreeRTOS либо из Cube. И воспользуйтесь готовыми настройками, для начала.
|
|
|
|
26.10.2015, 10:46
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: FreeRTOS STM32
Сообщение от anton_1000
|
Получается проблема с семафорами и уведомлениями при вызове из прерывания EXTI. Yходит куда-то не в ту степь.
|
Стэк? Куча? Учитесь пользоваться отладчиком, нужная вещь! Если хардфаулт - есть доки на сайте АРМ, там всё расписано что и как и по какой причине туда влетели.
|
|
|
|
26.10.2015, 14:26
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: FreeRTOS STM32
Сообщение от Easyrider83
|
Может быть. Вам слова поддержки нужны? Даже если вы весь проект прилепите, вам на 100% никто не поможет. Вообще ничто вам не мешает по-старому использовать volatile переменные и флаги.
|
volatile и флаги - это не кашерно. Модно уведомления и семафоры .
Вопрос в том, что правильно ли SYSTick прерывание имеет самый низкий приоритет 15? Хотя он отвечает за работу диспетчера.
CUBE пугает своей HAL. Если для SPL уже всё расписано, HAL страшный зверь.
|
|
|
|
26.10.2015, 17:28
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: FreeRTOS STM32
Сообщение от anton_1000
|
Вопрос в том, что правильно ли SYSTick прерывание имеет самый низкий приоритет 15?
|
Да, правильно. Это стандартный подход.
Прерывания от устройств никто не отменял. При правильно организованном проекте, у вас в задачах - отложенные обработчики, со своими приоритетами.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:54.
|
|