testostaskresume.c

来自「RTOS -REWORKS ReWorks里一个有关任务的例子」· C语言 代码 · 共 70 行

C
70
字号
#include "taskTest.h"

static unsigned32 task_id1,task_id2;

static void entry5(
  void* argument
)
{
    printf("in task1:suspend itself,so the task2 can run\n");
    OSTaskSuspend(task_id1);
   	printf("in task1:task1 run again,test success!\n");
	OSTaskDelete(task_id1); 
	OSTaskDelete(task_id2); 
}

static void entry6(
  void* argument
)
{
    printf("in task2:resume task1,so the task1 run again.\n");
    OSTaskResume(task_id1);
    while(1)
        OSTaskDelay(1);
}

int testOSTaskResume()
{
    OS_STATUS status;

    
    printf("*** test of OSTaskResume ***\n");
    printf("create 2 tasks,the pri of task1 is higher than task2.\n");
   	status = OSTaskCreate("tsk1",101,STACK_MINIMUM_SIZE,OS_TIMESLICE|OS_PREEMPT,OS_DEFAULT,&task_id1); 
   	if(status != OS_OK)
  	{
		printf("OSTaskCreate error:[%s]\n",serrno(errno));
		return (-1);
	}
	
	status = OSTaskCreate("tsk2",102,STACK_MINIMUM_SIZE,OS_TIMESLICE|OS_PREEMPT,OS_DEFAULT,&task_id2); 
   	if(status != OS_OK)
  	{
		printf("OSTaskCreate error:[%s]\n",serrno(errno));
		return (-1);
	}

	printf("start the two tasks.\n");
	status = OSTaskStart( task_id1, entry5, 0 );  
	if(status != OS_OK)
  	{
		printf("OSTaskStart error:[%s]\n",serrno(errno));
		return (-1);
	}

	status = OSTaskStart( task_id2, entry6, 0 ); 
   	if(status != OS_OK)
  	{
		printf("OSTaskStart error:[%s]\n",serrno(errno));
		return (-1);
	}

	OSTaskDelay(1000);

   	printf("*** OSTaskResume test OK! ***\n");
	return 1;
}   
 


⌨️ 快捷键说明

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