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

 
 
 
Reply to this topicStart new topic
> Создание таска.
Jenya7
сообщение Mar 7 2018, 13:22
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 673
Регистрация: 29-03-12
Пользователь №: 71 075



Я создаю таск
Код
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() остался на стаке. Так правильно делать?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 8 2018, 19:47
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 330
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



QUOTE
Так правильно делать?


Ну как бы не очень правильно, перерасход стека. Поставьте на Messages_Main подходящий модификатор для вашего компилятора, типа no_return, __task или что у Вас есть - скажите компилятору, что функция никогда не выйдет, и можно забить на сохранение всякого в стек.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Mar 11 2018, 05:56
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 673
Регистрация: 29-03-12
Пользователь №: 71 075



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

понял. спасибо.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2018 - 07:33
Рейтинг@Mail.ru


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