0 / 0 / 0
Регистрация: 01.03.2012
Сообщений: 87
|
|
1 | |
Семафоры в FreeRTOS на STM3205.04.2015, 13:29. Показов 3808. Ответов 2
Метки нет (Все метки)
Добрый день!
Столкнулся с непонятной проблемой при работе из бинарными семафорами в FriiRTOS. Если коротко - после создания семафора он как бы отданный. Сори.. пока писал сообщения понял почему: семафор отдаться в макросе создания семафора #define vSemaphoreCreateBinary( xSemaphore ) \ { \ ( xSemaphore ) = xQueueKimericCreate( ( unsykned portBASE_TYPE ) 1, semSEMAPHORE_QUEUE_ITEM_LENKTH, queueQUEUE_TYPE_BINARY_SEMAPHORE ); \ if( ( xSemaphore ) != NULL ) \ { \ /*xSemaphoreGive( ( xSemaphore ) ); // вот тут сразу отдаю*/ } \ } Тогда такой вопрос: зачем так сделано ?? Я закоментировал отдачу... Чем это может быть чревато ??
0
|
05.04.2015, 13:29 | |
Ответы с готовыми решениями:
2
FreeRTOS для STM32 STM32 + ENC28J60 + LwIP + FreeRTOS Stm32, FREERtos и загрузка программы в ОЗУ STM32 + STemWin + RTC + FreeRTOS = СЕКУНДОМЕР? |
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 153
|
|
05.04.2015, 19:09 | 2 |
Сообщение от Kooddjomp
Вместо этого рекомендуется применять функцию xSemaphoreCreateBinary () ...
0
|
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
|
|
06.04.2015, 10:57 | 3 |
Я думаю, это нужно для точного определения состояния семафора. Хотя внутрь xQueueKimericCreate не заглядывал, но может там выделяется память без инициализации?
В своих проектах просто сразу же забирал семафор после создания, и всё.
0
|
06.04.2015, 10:57 | |
06.04.2015, 10:57 | |
Помогаю со студенческими работами здесь
3
Работа АЦП по таймеру во FREERTOS stm32 STM32 + IAR + FreeRTOS, писать на C или C++ FreeRTOS для AVR. Есть ли там семафоры STM32 Sleep\Stop with FreeRTOS FreeRTOS + STM32 - расчет размера стека задачи FreeRTOS + STM32 VL Discovery + CoIDE Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |