Easyelectronics.ru • Просмотр темы - vTaskEndScheduler() не отдает управление.

Easyelectronics.ru

Электроника для всех
Текущее время: 20 авг 2018, 07:45

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: vTaskEndScheduler() не отдает управление.
СообщениеДобавлено: 02 авг 2014, 12:57 
Старожил

Зарегистрирован: 22 авг 2011, 17:36
Сообщения: 251
Программа составлена так, что в случае ошибки вызывается vTaskEndScheduler, при этом ОС останавливается и управление передается функции, которая находится после vTaskStartScheduler(). Но этого не происходит.
Вот код:
Код:
void Task_1(void *pvParameters) {
   printf("\rStop scheduler");   // это выводится
   vTaskEndScheduler();
   printf(" OK");   // это не выводится, значит, Scheduler остановлен

   while (1) {
   }
}

int main(void) {
   SystemInit();
   SystemCoreClockUpdate();

   setbuf(stdout, NULL);   // размер буффера вывода

   xTaskCreate(&Task_1, (const char*)"Task_1", configMINIMAL_STACK_SIZE*5, NULL, configMAX_PRIORITIES-1, ( xTaskHandle * ) NULL);
   vTaskStartScheduler();

   /////////////// ДАЛЕЕ НЕ РАБОТАЕТ ///////////
   printf("\rend scheluder!");

   while (1) {
   }
}

Собственно, что не работает, написано в комментах.
По сути, ОС останавливается, но код, который находится после vTaskStartScheduler не выполняется. Размер кучи равен половине памяти МК, поэтому не хватки оперативы быть не должно.
МК - STM32F4VGT6


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: vTaskEndScheduler() не отдает управление.
СообщениеДобавлено: 02 авг 2014, 13:08 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1558
Откуда: Киев
http://www.freertos.org/FreeRTOS_Suppor ... 09410.html

В двух словах - оно реализовано полностью для x86, для stm есть патч


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: vTaskEndScheduler() не отдает управление.
СообщениеДобавлено: 02 авг 2014, 13:21 
Старожил

Зарегистрирован: 22 авг 2011, 17:36
Сообщения: 251
А у вас часом нет патча для версии 8.0?
Просто там патч для 7,1, а судя по коду, от 8,0 он кардинально отличается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: vTaskEndScheduler() не отдает управление.
СообщениеДобавлено: 02 авг 2014, 15:48 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1558
Откуда: Киев
неа. Нужды в таком не было


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB