Страница 1 из 1

FreeRTOS количество задач

Добавлено: Ср фев 05, 2020 19:39:09
imsushka
Разбираюсь с ОСью. Discovery407 + Eth. Все запустил, Все работает. ВЕБстраница показывается. МОДБАС ТСП пашет. Светодиоды моргают.
Но.
Как только пытаюсь добавить еще 1 задачу. Все зависает, при первом же обращении по сети.
При 8 задачах работает. 9 уже нет.
В настройках FreeRTOS ничегго такого нету. Хип увеличил до 48 кило.

main.c

Код: Выделить всё

  ETH_BSP_Config(); /* configure ethernet (GPIOs, clocks, MAC, DMA) */ 

  LwIP_Init(); /* Initilaize the LwIP stack */

  /* Main task */
  vSemaphoreCreateBinary( xMBMSemaphore );
  xTaskCreate(Main_task, "MAIN", configMINIMAL_STACK_SIZE * 2, NULL, MAIN_TASK_PRIO, NULL);

  xTaskCreate(http_server_socket_thread, "HTTP_S", DEFAULT_THREAD_STACKSIZE*2, NULL, WEBSERVER_TASK_PRIO, NULL);
//  xTaskCreate(http_server_netconn_thread, "HTTP_N", DEFAULT_THREAD_STACKSIZE*2, NULL, WEBSERVER_TASK_PRIO, NULL);
//  xTaskCreate(tcpecho_thread, "TCP_ECHO", DEFAULT_THREAD_STACKSIZE, NULL, TCPECHO_TASK_PRIO, NULL);
//  xTaskCreate(udpecho_thread, "UDP_ECHO", DEFAULT_THREAD_STACKSIZE, NULL, UDPECHO_TASK_PRIO, NULL);

#ifdef USE_DHCP
  /* Start DHCPClient */
  xTaskCreate(LwIP_DHCP_task, "DHCP", configMINIMAL_STACK_SIZE * 2, NULL, DHCP_TASK_PRIO, NULL);
#endif

  /* Modbus slave task */
  vSemaphoreCreateBinary( xMBSSemaphore );
//  xTaskCreate(MBSlave_task, "MBSlave", configMINIMAL_STACK_SIZE * 2, NULL, MODBUS_TASK_PRIO, NULL);

  /* Start toogleLed4 task : Toggle LED4  every 250ms */
  xTaskCreate(ToggleLed4, "LED4", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);
  xTaskCreate(ToggleLed5, "LED5", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);

  /* Start scheduler */
  vTaskStartScheduler();

список задач
  • Number of page hits:381
    Name State Priority Stack Num
    ---------------------------------------------
    HTTP_S R 5 538 5
    IDLE R 0 102 8
    Eth_if B 6 316 3 --- lwip
    LED5 B 2 94 7
    LED4 B 2 104 6
    TCP/IP B 5 924 2 --- lwip
    LINK B 3 218 1 --- lwip
    MAIN S 1 226 4
На картинке стек по ошибке

Re: FreeRTOS количество задач

Добавлено: Ср фев 05, 2020 19:42:50
afz
imsushka писал(а):Хип увеличил до 48 кило.
А стек?

Re: FreeRTOS количество задач

Добавлено: Ср фев 05, 2020 19:46:04
imsushka
Стек задач (да увеличил)? или общий стек (а есть такой?) ?
последнее нет (не знаю где)

увеличил CSTACK в .icf файле до 2 кил (было 1) - тоже вистнет

Re: FreeRTOS количество задач

Добавлено: Чт фев 06, 2020 20:34:53
imsushka
Си = зло, указатели = супер зло

при формировании хтмл-странички с данными о задачах, данных получалось больше чем было выделенно памяти под переменную строковую, НА 2 БАЙТА !!!!

Re: FreeRTOS количество задач

Добавлено: Сб фев 08, 2020 09:42:32
Trully
Хахаха, на указателях многие срубились :)
По ошибке - Hard Fault есть ни что иное, как (вероятно) неправильная работа с указателями.

Re: FreeRTOS количество задач

Добавлено: Сб фев 08, 2020 10:03:54
HardWareMan
[uquote="Trully",url="/forum/viewtopic.php?p=3787172#p3787172"]По ошибке - Hard Fault есть ни что иное, как (вероятно) неправильная работа с указателями.[/uquote]
Или если нарушается выравнивание. Обращение к слову/полуслову по нечётному адресу.

Re: FreeRTOS количество задач

Добавлено: Вс фев 09, 2020 21:14:18
Myp3ik
Си = зло, указатели = супер зло
"Для хорошего человека армия - мать родная, а плохому - тёща" :o