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

📄 testostaskmodeset.c

📁 RTOS -REWORKS ReWorks里一个有关任务的例子
💻 C
字号:
#include "taskTest.h"

#define put_mode( _comment, _output_mode ) \
   printf( "%s %08x\n", _comment, _output_mode );
   
static void entry1(
  void* argument
);

/* add application specific code here */
int testOSTaskModeSet(){
    OS_STATUS status;
    unsigned32 task_id;
    
    printf("*** test of OSTaskModeSet ***\n");
    printf("create and start a task with OS_DEFAULT mode\n");
    status = OSTaskCreate(
    	"task",
    	90,
    	STACK_MINIMUM_SIZE * 2,
    	OS_DEFAULT,
    	OS_DEFAULT,
    	&task_id
  	);

  	status = OSTaskStart( task_id, entry1, 0 );    
  
  	OSTaskDelay(1000);
	OSTaskDelete(task_id); 
   	printf("*** OSTaskModeSet test OK! ***\n");
	return 1;

}

   
static void entry1(
  void* argument
)
{
    OS_STATUS           status;
    unsigned32        previous_mode;
    printf("task runs before delay\n");
    OSTaskDelay(500);
    printf("task runs after delay\n");
    
    unsigned32 tid;
    status = OSTaskIdGet( "task1", 0, &tid );
    printf("task1_id ---[%d]\n",tid);
   
    status = OSTaskModeSet(
    OS_NO_PREEMPT,
    OS_PREEMPT_MASK,
    &previous_mode
    );
    printf("TA1 - previous OS_PREEMPT_MASK mode: 0x[%x]\n",previous_mode);    
    
    printf("TA1 - OSTaskModeSet OS_PREEMPT_MASK to OS_NO_PREEMPT\n");

            
    status = OSTaskModeSet(
    OS_NO_PREEMPT,
    OS_PREEMPT_MASK,
    &previous_mode
    );

    printf("TA1 - previous OS_PREEMPT_MASK mode: 0x[%x]\n",previous_mode);    

    
}  

⌨️ 快捷键说明

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