亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? system.c

?? samsung 9908DVD源代碼,
?? C
?? 第 1 頁 / 共 2 頁
字號:
	pTask->t_pPendingPrev = MK_NULL;

	MK_InterruptRestore( Flags );
	return MK_NO_ERROR;
}

#ifdef	_MK_SIGNAL
static void
MK_BasicSignalHandler(void)
{
	MK_TASK *pTask;
	ULONG	Signal;
	ULONG	*PrevStack;
	int		Priority;
	int		Flags;

	pTask = MK_pCurrentTask;
	Signal = pTask->t_Signal;

	(*pTask->t_pSigFunction)(Signal);	/* Execute Registerd Signal Handler */

	Flags = MK_InterruptDisable();		/* Critical Region */

	PrevStack = (ULONG *)pTask->t_PreviousCurrentOfStack;

	/* Restore Information From Stack */
	pTask->t_CurrentOfStack =					*--PrevStack;
	pTask->t_PreviousCurrentOfStack =			*--PrevStack;

	/* In MK_TASK_SIGNAL, State can be MK_TASK_READY, MK_TASK_DELAYED, 
	MK_TASK_PENDING at the same time */

	if( (pTask->t_Status & MK_TASK_DELAYED) || (pTask->t_Status & MK_TASK_PENDING) )
	{
		MK_DeleteTaskFromReadyList(pTask);
	}
	pTask->t_Status &= ~MK_TASK_SIGNAL;

	Priority = MK_GetHighPriority();
	pTask = MK_pTaskReadyListHead[Priority];
	MK_pCurrentTask = pTask;
	MK_StartHighPriorityTask(&pTask->t_CurrentOfStack);

	MK_InterruptRestore(Flags);			/* Never reach this line */
}

STATUS
MK_SignalSend(MK_TASK *pTask, UINT Signal)
{
	MK_TASK *pCurrentTask;
	CHAR	*pStack;
	int		Flags;

	if( pTask->t_Status & MK_TASK_SIGNAL)
	{
#if MK_DEBUG_PRINT
		MK_InfoPrintf(MK_TASK_WARNING, "MK_SignalSend() - now signal handler is running but received signal(%x) is ignord!", Signal);
#endif
		return MK_ERROR;
	}

	if( pTask->t_pSigFunction == 0)
	{
#if MK_DEBUG_PRINT
		MK_InfoPrintf(MK_TASK_WARNING, "MK_SignalSend() - no registered signal hanler function is exist!");
#endif
		return MK_ERROR;
	}

	if( (pTask->t_SigMask & Signal) == 1)
	{
#if MK_DEBUG_PRINT
		MK_InfoPrintf(MK_TASK_WARNING, "MK_SignalSend() - Singal sended to %s is all masked!", MK_GetTaskName(pTask));
#endif
		return MK_ERROR;
	}

	Flags = MK_InterruptDisable();		/* Critical Region */

	pCurrentTask = MK_pCurrentTask;

	if(pTask != pCurrentTask)
	{
		pStack = (CHAR *)pTask->t_CurrentOfStack;
		
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = pTask->t_CurrentOfStack;
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = pTask->t_PreviousCurrentOfStack;
		
		/* Context */	
		
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = (ULONG)MK_BasicSignalHandler;	/* LR(A14) */
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = 0;			/* A13 */
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = 0;			/* A12 */
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = 0;			/* A11 */
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = 0;			/* A10 */
	
		pStack -= sizeof(ULONG);
		*(ULONG *)pStack = 0;			/* A9 */	
		pStack -= sizeof(ULONG);
	    *(ULONG *)pStack = 0;			/* A8 */
    		
		pStack -= sizeof(UINT);
		*(UINT *)pStack = 0;			/* R7 */	
		pStack -= sizeof(UINT);
    	*(UINT *)pStack = 0;			/* R6 */
    	pStack -= sizeof(UINT);
    	*(UINT *)pStack = 0;			/* R5 */
    	pStack -= sizeof(UINT);
    	*(UINT *)pStack = 0;			/* R4 */
    	pStack -= sizeof(UINT);
    	*(UINT *)pStack = 0;			/* R3 */
    	pStack -= sizeof(UINT);
    	*(UINT *)pStack = 0;			/* R2 */
    	pStack -= sizeof(UINT);
    	*(UINT *)pStack = 0;			/* R1 */
    	pStack -= sizeof(UINT);
    	*(UINT *)pStack = 0;			/* R0 */ 
    	pStack -= sizeof(UINT);    
    	*(UINT *)pStack = 0x0040;		/* SR */
    	pStack -= sizeof(UINT);

		pTask->t_PreviousCurrentOfStack = pTask->t_CurrentOfStack;
		pTask->t_CurrentOfStack = (ULONG)pStack;
		pTask->t_Signal = ~pTask->t_SigMask & Signal;
		pTask->t_Status |= MK_TASK_SIGNAL;

		if( !(pTask->t_Status & MK_TASK_READY) )
		{
			MK_InsertTaskToReadyList(pTask);
		}

		MK_Schedule();		

	}
	else
	{
		(*pTask->t_pSigFunction)(Signal);
	}

	MK_InterruptRestore(Flags);
	return MK_NO_ERROR;
}
#endif	/* #ifdef	_MK_SIGANL */

void
MK_Printf(char *fmt,...)
{
#if MK_KERNEL_PRINT
	va_list ap;
	//char string[256];
	char string[50];

	va_start(ap,fmt);
	vsprintf(string,fmt,ap);
#if MK_CALMRISC16
	// printf("%s", string);
	UART_SendString( (signed char *)string );
#else
	MK_Puts(string);
#endif /* MK_CALMRISC16 */
	va_end(ap);
#endif
}

void
MK_InfoPrintf(LOGLEVEL ErrorInfo, char *fmt, ...)
{
#if 0

#if MK_DEBUG_PRINT
	va_list ap;
	//char string[256];
	char string[50];

	if(ErrorInfo >= MK_SYSTEM_INFO)
	{
		va_start(ap,fmt);
		vsprintf(string,fmt,ap);
#if MK_CALMRISC16
		printf("%s", string);
#else
		MK_Puts(string);
#endif /* MK_CALMRISC16 */
		va_end(ap);
	}
#endif
#endif /* 0 */
	// printf("INFO");

}

void
MK_Panic(char *fmt, ...)
{
#if MK_DEBUG_PRINT
	va_list ap;
	//char string[256];
	char string[50];

	va_start(ap,fmt);
	vsprintf(string,fmt,ap);
#if MK_CALMRISC16
	printf("%s", string);
#else
	MK_Puts(string);
#endif /* MK_CALMRISC16 */
	va_end(ap);
#endif
//	for(;;); /* infinite loop */
}

int 
MK_Sprintf(char * buf, char *fmt, ...)
{
#if MK_DEBUG_PRINT
	va_list ap;
	int i;

	va_start(ap,fmt);
	i = vsprintf(buf,fmt,ap);
	va_end(ap);
	return i;
#else
	return 0;
#endif
}

#if 0
#ifdef _MK_DDI
void 
MK_Fprintf(struct mk_ddi_struct *pDDI, char *fmt, ...)
{
	va_list ap;
	char string[256];
	int Length;

	va_start(ap,fmt);
	Length = vsprintf(string,fmt,ap);
	MK_Write(pDDI, string, Length);
	va_end(ap);
}
#endif	/* #if MK_DDI */
#endif  /* 0 */
void
MK_SystemInitialize(void)
{
	MK_InterruptInitialize();

#if (MK_DEBUG_PRINT | MK_KERNEL_PRINT)
#if !MK_CALMRISC16
	UART_Initialize();
#endif
#endif
}

void
MK_RTOSInitialize(void)
{
	MK_MemoryInitialize();
	MK_TaskInitialize();

#ifdef _MK_HISR
	MK_HISRInitialize();
#endif

#ifdef _MK_MSGQUEUE
	MK_MsgQueueInitialze();
#endif

#ifdef _MK_SEMAPHORE
	MK_SemaphoreInitialize();
#endif

#ifdef _MK_SYSTEMTIMER
	MK_SystemTimerInitialize();
#endif

#ifdef _MK_EVENT
	MK_EventInitialize();
#endif

#ifdef _MK_MAILBOX
	MK_MsgMailBoxInitialze();
#endif

#ifdef _MK_MPORT
	MK_MsgPortInitialze();
#endif

#ifdef _MK_TPORT
	MK_TaskPortInitialize();
#endif

#ifdef _MK_DDI
//	MK_DDIInitialize();
#endif

#ifdef _MK_PIPE
//	MK_PipeInitialize();
#endif

#ifdef _MK_SHELL
//	MK_ShellInitalize();
#endif
}

void
SWIHandler_Test(void)
{
#if MK_DEBUG_PRINT
#if MK_CALMRISC16
	printf("SWI Service Routine\n");
#else
	MK_Puts("SWI Service Routine\n");
#endif /* MK_CALMRISC16 */
#endif
	MK_InterruptDisable();
	for(;;);
}

#if 0
void
IRQHandler_Test(void)
{
#if MK_DEBUG_PRINT
	MK_Puts("IRQ Routine\n");
#endif

	rSRCPND = 0xFFFFFFFF;	/* clear */
	for(;;);
}
#endif	/* #if 0 */

#if 0
void
Undefined_Handler_Test(void)
{
#if MK_DEBUG_PRINT
#if MK_CALMRISC16
	printf("\nUndefined ISR - Dump Register\n\n");
#else
	MK_Puts("\nUndefined ISR - Dump Register\n\n");
#endif /* MK_CALMRISC16 */	
#endif
	MK_InterruptDisable();
	for(;;);
}

void
Prefetch_Handler_Test(void)
{
#if MK_DEBUG_PRINT
#if MK_CALMRISC16
	printf("Prefetch ISR\n");
#else
	MK_Puts("Prefetch ISR\n");
#endif /* MK_CALMRISC16 */	
#endif
	MK_InterruptDisable();
	for(;;);
}

void 
Abort_Handler_Test(void)
{
#if MK_DEBUG_PRINT
#if MK_CALMRISC16
	printf("Abort ISR\n");
#else
	MK_Puts("Abort ISR\n");
#endif /* MK_CALMRISC16 */	
#endif
	MK_InterruptDisable();
	for(;;);
}
#endif




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
福利一区在线观看| 国产精品久久三区| 亚洲色图清纯唯美| 麻豆久久久久久久| 欧美日韩中文一区| 国产精品久久久久aaaa樱花| 久久精品72免费观看| 欧美在线视频不卡| 综合婷婷亚洲小说| 国产精品自在在线| 欧美剧情电影在线观看完整版免费励志电影| 久久久99精品久久| 麻豆国产精品视频| 欧美视频一区二区在线观看| 亚洲视频一区二区在线| 国产精品自产自拍| 精品粉嫩aⅴ一区二区三区四区| 一区二区三区久久| 不卡电影免费在线播放一区| 亚洲精品一区二区三区99| 日韩福利视频网| 91久久精品国产91性色tv| 国产精品伦一区| 成人一道本在线| 国产欧美一区二区三区在线看蜜臀| 日韩高清欧美激情| 91精品国产综合久久精品图片| 亚洲综合区在线| 色天使色偷偷av一区二区| 国产精品短视频| 成人国产在线观看| 中文字幕佐山爱一区二区免费| 成人av在线电影| 国产精品免费视频观看| 成人免费福利片| 中文字幕一区二区三区四区| 成人18视频日本| 中文字幕一区二区三区视频| 91在线视频18| 亚洲图片欧美一区| 欧美日韩1234| 日韩电影在线免费看| 正在播放一区二区| 精品中文av资源站在线观看| 久久九九久久九九| caoporn国产一区二区| 亚洲精品老司机| 欧美午夜精品久久久| 五月天一区二区| 欧美大肚乱孕交hd孕妇| 国产一区二区在线电影| 国产精品国产三级国产三级人妇| av亚洲产国偷v产偷v自拍| 亚洲精品免费播放| 日韩一区二区三区av| 国产最新精品免费| 18涩涩午夜精品.www| 欧美色图片你懂的| 久久99深爱久久99精品| 国产精品麻豆视频| 欧美丰满高潮xxxx喷水动漫| 国产原创一区二区三区| 亚洲男人的天堂在线观看| 欧美日韩精品免费| 国产精品自拍一区| 亚洲一区在线看| 久久久久久久久蜜桃| 色综合色综合色综合色综合色综合 | 日韩欧美色电影| 成人性生交大片免费看中文| 亚洲自拍偷拍图区| 久久亚区不卡日本| 在线观看欧美黄色| 国产高清不卡一区| 日韩影视精彩在线| 日韩理论片中文av| 精品少妇一区二区三区视频免付费 | 一区二区三区在线不卡| 欧美一二三区精品| www.成人网.com| 紧缚奴在线一区二区三区| 亚洲视频香蕉人妖| 国产偷v国产偷v亚洲高清| 欧美日韩精品一区二区三区| 国产精品1区2区| 日本三级韩国三级欧美三级| 国产精品看片你懂得| 精品国产三级a在线观看| 欧洲一区二区av| aaa亚洲精品| 国产一区二区福利| 免费成人深夜小野草| 亚洲国产精品欧美一二99| 国产精品美女久久久久aⅴ国产馆| 欧美丰满嫩嫩电影| 色天使久久综合网天天| 成人精品高清在线| 国产精品99久久久久| 日本特黄久久久高潮| 一区二区不卡在线播放| 国产精品久久久久影院老司 | 欧美午夜宅男影院| 91亚洲资源网| va亚洲va日韩不卡在线观看| 国产精品一级在线| 国产综合色在线视频区| 久久疯狂做爰流白浆xx| 免费成人你懂的| 日本va欧美va瓶| 免费的成人av| 日本视频中文字幕一区二区三区| 天天操天天色综合| 舔着乳尖日韩一区| 午夜电影一区二区三区| 亚洲愉拍自拍另类高清精品| 亚洲男人都懂的| 亚洲综合久久久| 亚洲成精国产精品女| 亚洲综合色在线| 午夜精品福利视频网站| 视频一区国产视频| 免费看黄色91| 国产在线观看一区二区| 顶级嫩模精品视频在线看| 丁香五精品蜜臀久久久久99网站 | 欧美三电影在线| 欧美三区免费完整视频在线观看| 欧美三级韩国三级日本一级| 91精品国产综合久久福利软件| 欧美一区二区三区视频在线| 精品日韩成人av| 中文字幕精品三区| 亚洲色图视频网| 日韩在线一区二区三区| 久久爱另类一区二区小说| 国产一区二区剧情av在线| 风流少妇一区二区| 日本韩国精品一区二区在线观看| 欧美体内she精高潮| 精品国产乱码久久久久久久久 | 欧美电视剧在线观看完整版| 久久久久久黄色| 专区另类欧美日韩| 日产欧产美韩系列久久99| 国产制服丝袜一区| 色综合视频在线观看| 欧美一区在线视频| 国产精品拍天天在线| 亚洲成av人片一区二区梦乃| 韩国v欧美v日本v亚洲v| 99国产精品久久久久久久久久| 欧美性色aⅴ视频一区日韩精品| 欧美一区二区三区的| 国产精品妹子av| 丝袜a∨在线一区二区三区不卡| 国产福利一区二区三区视频在线| 色综合久久久久网| 欧美大片国产精品| 亚洲综合色视频| 国产白丝网站精品污在线入口| 色欧美日韩亚洲| 久久久久久久国产精品影院| 亚洲线精品一区二区三区 | 成人av影视在线观看| 欧美另类一区二区三区| 亚洲国产成人在线| 日本欧美在线观看| 91女厕偷拍女厕偷拍高清| 精品少妇一区二区三区视频免付费| 亚洲三级久久久| 国产精品一区二区视频| 欧美久久久久久久久| 中文字幕亚洲欧美在线不卡| 九九在线精品视频| 正在播放亚洲一区| 亚洲精品v日韩精品| 国产成人精品一区二区三区四区 | 欧洲一区二区三区在线| 亚洲国产成人一区二区三区| 日本不卡一区二区| 欧美色图激情小说| 亚洲精品高清在线| av亚洲精华国产精华精华| 国产午夜精品一区二区三区嫩草 | 欧美岛国在线观看| 婷婷夜色潮精品综合在线| 日本福利一区二区| 国产精品久久久久一区二区三区共| 极品少妇xxxx精品少妇| 91精品国产色综合久久不卡电影| 亚洲成a人在线观看| 欧美午夜不卡视频| 亚洲精品国产无天堂网2021| 91丝袜美腿高跟国产极品老师 | 欧美性一二三区| 亚洲国产婷婷综合在线精品| 色菇凉天天综合网| 夜夜揉揉日日人人青青一国产精品 | 亚洲激情综合网| 色天天综合色天天久久|