在FreeRTOS中实现两项任务,意外结果

时间:2017-12-03 12:54:19

标签: c gcc multitasking freertos

我正在尝试使用FreeRTOS API运行两个任务。我跟随Handson Tutorial pdf of FreeRTOS,但我的任务只运行一次并停止。我在x86 Intel上使用FreeRTOS内核。我能够编写并运行代码。

我的操作系统是Ubuntu,我正在使用带有GCC的Eclipse工具链。如果有人有这方面的经验,他们可以给我一些关于如何做正确的指示。

这是我的代码:

static unsigned long uxQueueSendPassedCount = 0;

void vTask1(void *pvParameters)
{
   const char *str_to_display="This is task1\n\r";
   while(1)
   {
     printf("%s",str_to_display);
     vTaskDelay(1000);

   }

}

void vTask2(void *pvParameters)
{
    const char *str_to_display="This is task2\n\r";

    while(1)
    {
      printf("%s",str_to_display);
      vTaskDelay(1000);
    }

}

int main()
{

    xTaskCreate(vTask1, (signed char *)"Task1",1000,NULL,3,NULL);
    xTaskCreate(vTask2,(signed char *)"Task2",100,NULL,1,NULL);

    vTaskStartScheduler();
    while(1)
    {

    }
    return 0;

}

更新 我试过的其他事情:

  • 只创建了一个具有无限循环的任务,它按预期运行,

  • 只创建了一个任务,添加了vTaskDelay,我收到错误"分段错误(核心转储)"

1 个答案:

答案 0 :(得分:0)

您使用的是哪个端口?或者您是否尝试在Ubuntu上运行代码?本书中的项目配置为在Windows上运行。