testostasksuspend.c

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

C
69
字号
#include "taskTest.h"

static unsigned32 task_id1,task_id2;

static void entry3(
  void* argument
)
{
    printf("in task1:suspend itself,so the task2 can run\n");
    OSTaskSuspend(task_id1);
    while(1)
    	printf("task1 run ,test error\n");
}

static void entry4(
  void* argument
)
{
    printf("in task2:test success.\n");
   	OSTaskDelete(task_id1); 
	OSTaskDelete(task_id2); 

}

int testOSTaskSuspend()
{
    OS_STATUS status;

    
    printf("*** test of OSTaskSuspend ***\n");
    printf("create 2 tasks,the pri of task1 is higher than task2.\n");
   	status = OSTaskCreate("tsk1",101,STACK_MINIMUM_SIZE,OS_DEFAULT,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_DEFAULT,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, entry3, 0 );  
	if(status != OS_OK)
  	{
		printf("OSTaskStart error:[%s]\n",serrno(errno));
		return (-1);
	}

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

	OSTaskDelay(200);

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


⌨️ 快捷键说明

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