⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 app.c.bak

📁 介绍ROCK OS操作系统.一般用于汽车电子,类似OCVX.里面是个DEMO文档,内附说明.
💻 BAK
字号:

#include "os.h"

HTASK g_testTask1;
HTASK g_testTask2;
HTASK g_testTask3;

HSEMA g_testSem;

void tTest1Entry(void * p);
void tTest2Entry(void * p);
void tTest3Entry(void * p);

STATUS app_entry(void)
{
    TASK_INFO taskInfo;

    /* create semaphore. */
    g_testSem = semCreate(OS_SEMA_BIN, 1, "sem for test");
    if (g_testSem != NULL_SEMA)
    {
        OS_printf("test semaphore created, id is [%d]!!\n", g_testSem);
    }
    else
    {
        OS_printf("Create test semaphore fail!!!\n");
        return OS_FAIL;
    }

    /* create test tasks. */
    taskInfo.priority = 10;
    strcpy (&taskInfo.name[0], "tTestTask1");
    taskInfo.taskEntry = tTest1Entry;
    taskInfo.pData = (void *)1;
    taskInfo.msgQSize = 100;
    taskInfo.semaQSize = DEFAULT_SEM_Q_SIZE;
    taskInfo.stackSize = DEFAULT_STACK_SIZE;
    taskInfo.option = OPT_TASK_DEFAULT;
    g_testTask1 = taskCreate(&taskInfo);
    if (g_testTask1 != NULL_TASK)
    {
        OS_printf("test task 1 created, id is [%d]!!\n", g_testTask1);
    }
    else
    {
        OS_printf("Create test task 1 fail!!!\n");
        return OS_FAIL;
    }

    /* create test tasks. */
    taskInfo.priority = 10;
    strcpy (&taskInfo.name[0], "tTestTask2");
    taskInfo.taskEntry = tTest2Entry;
    taskInfo.pData = (void *)2;
    taskInfo.msgQSize = 100;
    taskInfo.semaQSize = DEFAULT_SEM_Q_SIZE;
    taskInfo.stackSize = DEFAULT_STACK_SIZE;
    taskInfo.option = OPT_TASK_DEFAULT;
    g_testTask2 = taskCreate(&taskInfo);
    if (g_testTask2 != NULL_TASK)
    {
        OS_printf("test task 2 created, id is [%d]!!\n", g_testTask2);
    }
    else
    {
        OS_printf("Create test task 2 fail!!!\n");
        return OS_FAIL;
    }

    /* create test tasks. */
    taskInfo.priority = 10;
    strcpy (&taskInfo.name[0], "tTestTask3");
    taskInfo.taskEntry = tTest3Entry;
    taskInfo.pData = (void *)3;
    taskInfo.msgQSize = 100;
    taskInfo.semaQSize = DEFAULT_SEM_Q_SIZE;
    taskInfo.stackSize = DEFAULT_STACK_SIZE;
    taskInfo.option = OPT_TASK_DEFAULT;
    g_testTask3 = taskCreate(&taskInfo);
    if (g_testTask3 != NULL_TASK)
    {
        OS_printf("test task 3 created, id is [%d]!!\n", g_testTask3);
    }
    else
    {
        OS_printf("Create test task 3 fail!!!\n");
        return OS_FAIL;
    }

    return OS_SUCCESS;
}

void tTest1Entry(void * p)
{
    while (1)
    {
        if (semTake(g_testSem, 40) == OS_FAIL)
        {
            continue;
        }

        light_led(LED2, LED_ON);
        delay(300000);
        light_led(LED2, LED_OFF);
        delay(300000);

        taskDelay(2);
        semGive(g_testSem);
    }
}

void tTest2Entry(void * p)
{
    while (1)
    {
        if (semTake(g_testSem, 40) == OS_FAIL)
        {
            continue;
        }

        light_led(LED2, LED_ON);
        delay(300000);
        light_led(LED2, LED_OFF);
        delay(300000);
        light_led(LED2, LED_ON);
        delay(300000);
        light_led(LED2, LED_OFF);
        delay(300000);

        taskDelay(2);
        semGive(g_testSem);
    }
}

void tTest3Entry(void * p)
{
    while (1)
    {
        if (semTake(g_testSem, 40) == OS_FAIL)
        {
            continue;
        }

        light_led(LED2, LED_ON);
        delay(100000);
        light_led(LED2, LED_OFF);
        delay(100000);
        light_led(LED2, LED_ON);
        delay(100000);
        light_led(LED2, LED_OFF);
        delay(100000);
        light_led(LED2, LED_ON);
        delay(100000);
        light_led(LED2, LED_OFF);
        delay(100000);

        taskDelay(2);
        semGive(g_testSem);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -