реклама на сайте
подробности

 
 
> Неожиданное обнуление семафора, Указатель семафора сам по себе становится NULL
turnon
сообщение Sep 29 2015, 12:01
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Использую рекурсивный семафор. Иногда (1-2 раза в неделю при работе 7*24) указатель семафора становится NULL сам по себе.
Определяю это срабатыванием ассерта, FreeRTOS\Source\queue.c, line 491.

FreeRTOS V8.2.2, IAR.

Не пойму, что может такого происходить, что приводит к обнуления переменной ассерта?
Переполнение стека? Это контролируется vApplicationStackOverflowHook и vApplicationMallocFailedHook.
И от HighWaterMark до конца стека еще больше 20%.

Создание семафора:

_semaphore = xSemaphoreCreateRecursiveMutex();
assert(_semaphore != NULL);

_semaphore объявлена volatile.

Использование семафора:

assert(xSemaphoreTakeRecursive(_semaphore, (portTickType)portMAX_DELAY) == pdTRUE);
...
assert(xSemaphoreGiveRecursive(_semaphore) == pdTRUE);

Или так:

assert(xSemaphoreTakeRecursive(_semaphore, (portTickType)portMAX_DELAY) == pdTRUE);
...
assert(xSemaphoreTakeRecursive(_semaphore, (portTickType)portMAX_DELAY) == pdTRUE);
...
assert(xSemaphoreGiveRecursive(_semaphore) == pdTRUE);
...
assert(xSemaphoreGiveRecursive(_semaphore) == pdTRUE);

Прикрепленное изображение


Прикрепленное изображение
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- turnon   Неожиданное обнуление семафора   Sep 29 2015, 12:01
- - den_po   Цитата(turnon @ Sep 29 2015, 16:01) Испол...   Sep 29 2015, 12:14
|- - turnon   Цитата(den_po @ Sep 29 2015, 15:14) а вот...   Sep 29 2015, 12:16
- - den_po   Потому что assert это макрос, который в релизных к...   Sep 29 2015, 12:26
|- - turnon   Цитата(den_po @ Sep 29 2015, 15:26) Потом...   Sep 29 2015, 14:25
|- - den_po   Цитата(turnon @ Sep 29 2015, 18:25) Ну ка...   Sep 30 2015, 09:46
|- - turnon   Цитата(den_po @ Sep 30 2015, 12:46) Если ...   Sep 30 2015, 10:44
|- - den_po   Цитата(turnon @ Sep 30 2015, 14:44) Понял...   Sep 30 2015, 11:38
|- - turnon   Цитата(den_po @ Sep 30 2015, 14:38) Во вр...   Sep 30 2015, 11:50
|- - den_po   Цитата(turnon @ Sep 30 2015, 15:50) asser...   Sep 30 2015, 12:21
- - zltigo   QUOTE (turnon @ Sep 29 2015, 15:01) Переп...   Sep 29 2015, 15:16
- - turnon   Цитата(zltigo @ Sep 29 2015, 18:16) Посем...   Sep 29 2015, 15:46
- - zltigo   QUOTE (turnon @ Sep 29 2015, 18:46) Спаси...   Sep 29 2015, 15:47
|- - turnon   Цитата(zltigo @ Sep 29 2015, 18:47) MAP ф...   Sep 29 2015, 16:37
|- - zltigo   QUOTE (turnon @ Sep 29 2015, 19:37) Что-т...   Sep 29 2015, 18:08
|- - turnon   Цитата(zltigo @ Sep 29 2015, 21:08) Мне т...   Sep 30 2015, 08:50
|- - zltigo   QUOTE (turnon @ Sep 30 2015, 11:50) Вот д...   Sep 30 2015, 12:37
|- - turnon   Цитата(zltigo @ Sep 30 2015, 15:37) Данны...   Sep 30 2015, 17:36
|- - den_po   Цитата(turnon @ Sep 30 2015, 22:36) Конеч...   Sep 30 2015, 21:11
|- - turnon   Цитата(den_po @ Oct 1 2015, 00:11) Виснущ...   Sep 30 2015, 21:15
- - megajohn   Цитата(turnon @ Sep 29 2015, 18:46) Спаси...   Sep 29 2015, 16:17
- - zltigo   QUOTE (megajohn @ Sep 29 2015, 19:17) мож...   Sep 29 2015, 16:24


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016