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

📄 testossignalcatch.c

📁 RTOS REWORKS ReWorks里一个有关信号的例子
💻 C
字号:
#include "signalTest.h"

static int finish_flag=0;
static os_asr_entry asr_hander(os_signal_set the_signal_set)
{
    printf("task catch signal %x\n",the_signal_set);
    finish_flag=1;
    return 1;
}
static os_task_entry sig_entry(void *arg)
{
	
	if(OSSignalCatch(asr_hander,1)!=OS_OK)
    {
		printf("OSSignalCatch error:[%s]\n",serrno(errno));   
		return -1; 
	} 
   	while(!finish_flag)
   	{  
    	printf("Task is running\n");
    	OSTaskDelay(1000);
	}   
 	printf("Task TSIG end\n");
 	return 1;
}
int testOSSignalCatch(void )
{
 	OS_STATUS status;
 	unsigned32 tid;
 	printf("*** test of OSSignalCatch ***\n");
 	status=OSTaskCreate("TWAIT2",200,4096,OS_PREEMPT,OS_DEFAULT,&tid);  
  	if(status!=OS_OK)
    {
		printf("OSTaskCreate error:[%s]\n",serrno(errno));   
		return -1; 
	}  
  	status=OSTaskStart(tid,(os_task_entry)sig_entry,0);
  	if(status!=OS_OK)
    {
		printf("OSTaskStart error:[%s]\n",serrno(errno));   
		return -1; 
	} 
  	
   	OSTaskDelay(4000);
   	
   	printf("send signal to the task.\n");
  	status=OSSignalSend(tid,1);
	
  	OSTaskDelay(1000);
  	OSTaskDelete(tid);
  	
  	printf("*** OSSignalCatch test OK! ***\n");
    return 1;
}



⌨️ 快捷键说明

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