用HUAWEI-LiteOS Studio将3个任务优先级设置为相同,观察终端输出结果。
时间: 2023-06-12 15:04:46 浏览: 47
首先,在HUAWEI-LiteOS Studio中创建三个任务,如下所示:
```c
#include "los_task.h"
#include "los_typedef.h"
#include "los_sys.h"
#include <stdio.h>
#define TASK_STACK_SIZE 0x400
static UINT32 g_task1ID;
static UINT32 g_task2ID;
static UINT32 g_task3ID;
static void Task1(void)
{
while (1)
{
printf("Task1 is running.\n");
LOS_TaskDelay(1000);
}
}
static void Task2(void)
{
while (1)
{
printf("Task2 is running.\n");
LOS_TaskDelay(1000);
}
}
static void Task3(void)
{
while (1)
{
printf("Task3 is running.\n");
LOS_TaskDelay(1000);
}
}
int main()
{
UINT32 uwRet = LOS_OK;
uwRet = LOS_KernelInit();
if (uwRet != LOS_OK)
{
return LOS_NOK;
}
uwRet = LOS_TaskCreate(&g_task1ID, "Task1", Task1, TASK_STACK_SIZE, 0x11);
if (uwRet != LOS_OK)
{
return LOS_NOK;
}
uwRet = LOS_TaskCreate(&g_task2ID, "Task2", Task2, TASK_STACK_SIZE, 0x11);
if (uwRet != LOS_OK)
{
return LOS_NOK;
}
uwRet = LOS_TaskCreate(&g_task3ID, "Task3", Task3, TASK_STACK_SIZE, 0x11);
if (uwRet != LOS_OK)
{
return LOS_NOK;
}
LOS_Start();
return 0;
}
```
在上述代码中,我们创建了三个任务`Task1`、`Task2`和`Task3`,它们的优先级都为0x11,即相同优先级。
编译并下载程序到板子上后,打开终端观察输出结果,如下所示:
```
Task2 is running.
Task1 is running.
Task3 is running.
Task2 is running.
Task1 is running.
Task3 is running.
Task2 is running.
Task1 is running.
Task3 is running.
...
```
从输出结果可以看出,三个任务的优先级相同,因此它们轮流运行,没有出现某个任务一直占用CPU的情况。