Easyelectronics.ru

Электроника для всех
Текущее время: 22 окт 2018, 21: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
Сообщения: 1561
Откуда: Киев
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
Сообщения: 1561
Откуда: Киев
неа. Нужды в таком не было


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

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


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

Сейчас этот форум просматривают: blik


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

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

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