Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Создание таска.
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Jenya7
Я создаю таск
Код
tMSGs = taskSpawn("MSGS", GRS_LRUS_MSG_TASK_PRIORITY, VX_FP_TASK, (PAGE_SIZE*2), (FUNCPTR) Messages_TaskEntryPoint,    TASK_EMPTY_ARGS);

Таск в качестае аргумента получает указатель на функцию
Код
void Messages_TaskEntryPoint()
{
   //do some stuff

   Messages_Main();
}

И потом крутиться в
Код
void Messages_Main()
{
    while (1)
    {
        //do some stuff
    }
}

Но Messages_Main() вызывается из void Messages_TaskEntryPoint() - то есть Messages_TaskEntryPoint() остался на стаке. Так правильно делать?
Rst7
QUOTE
Так правильно делать?


Ну как бы не очень правильно, перерасход стека. Поставьте на Messages_Main подходящий модификатор для вашего компилятора, типа no_return, __task или что у Вас есть - скажите компилятору, что функция никогда не выйдет, и можно забить на сохранение всякого в стек.
Jenya7
Цитата(Rst7 @ Mar 9 2018, 01:47) *
Ну как бы не очень правильно, перерасход стека. Поставьте на Messages_Main подходящий модификатор для вашего компилятора, типа no_return, __task или что у Вас есть - скажите компилятору, что функция никогда не выйдет, и можно забить на сохранение всякого в стек.

понял. спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.