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

 
 
> Объем стека для работы задачи, Минимальный объем свободного места в стеке задачи
l_fin_l
сообщение Dec 18 2016, 09:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 23-08-11
Пользователь №: 66 836



Здравствуйте, очень интересует вопрос, какое минимальное значение свободного стека должно быть для стабильной работы задачи? Измеряю свободное место в стеке задачи функцией uxTaskGetStackHighWaterMark(). Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
l_fin_l
сообщение Dec 19 2016, 04:14
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 23-08-11
Пользователь №: 66 836



А зачем тогда в статье "FreeRTOS: практическое применение, часть 6 (устранение проблем)" (http://microsin.ru/content/view/1309/44/), в описании к функции uxTaskGetStackHighWaterMark написано следущее "...Эта величина остается неиспользованной, когда использование стека было самым большим. Возвращаемое значение, приближающееся к 0 означает, что имеется угроза переполнения стека задачи." Заранее извиняюсь за возможно тупой вопрос.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Dec 19 2016, 05:56
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(l_fin_l @ Dec 19 2016, 07:14) *
А зачем тогда в статье "FreeRTOS: практическое применение, часть 6 (устранение проблем)" (http://microsin.ru/content/view/1309/44/), в описании к функции uxTaskGetStackHighWaterMark написано следущее "...Эта величина остается неиспользованной, когда использование стека было самым большим. Возвращаемое значение, приближающееся к 0 означает, что имеется угроза переполнения стека задачи." Заранее извиняюсь за возможно тупой вопрос.


обычно стек назначаются с некоторым (по возможности большим) запасом. Иначе самая минимальная переделка программы может ее сломать. На что и обращают ваше внимание в данной статье

ЗЫ что такое "большой запас" вы решаете сами, исходя из имеющихся у вас ресурсов и особенностей вашей задачи

Цитата(l_fin_l @ Dec 18 2016, 14:08) *
Правда я использую stm32, там вроде как используется для прерываний свой стек, но в случае FreeRTOS непонятно он использует свой стек(стек задачи), или отдельный?


Отдельный. Тот, что вы выделили на этапе линковки. Он используется вашими функциями до запуска шедулера; при запуске он очищается и далее используется в прерываниях
Go to the top of the page
 
+Quote Post



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

 


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


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