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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? system.c

?? samsung 9908DVD源代碼,
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/**********************************************************************************
 * system.c                                                                         
 * coded by hspark@ce.cnu.ac.kr
 * modified by hjahn@ce.cnu.ac.kr
 * 
 **********************************************************************************/

#include "kernel\\mk_sys.h"
#include "kernel\\mk_task.h"
#include "kernel\\mk_ddi.h"
#include "kernel\\mk_sem.h"
#include "util\\mk_lib.h"
#include "CalmRISC16\\CalmRISC16.h"

#if (MK_DEBUG_PRINT | MK_KERNEL_PRINT)
#include <stdarg.h>
#include <stdio.h>
#endif

extern void UART_SendString( signed char *string );

extern void MK_Puts(const char *s);
extern void MK_InterruptInitialize(void);
//extern void UART_Initialize(void);

extern void MK_MemoryInitialize(void);
extern void MK_TaskInitialize(void);
extern void MK_HISRInitialize(void);
extern void MK_MsgQueueInitialze(void);
extern void MK_SemaphoreInitialize(void);
extern void MK_SystemTimerInitialize(void);
extern void MK_EventInitialize(void);
extern void MK_MsgMailBoxInitialze(void);
extern void MK_MsgPortInitialze(void);
extern void MK_TaskPortInitialize(void);
extern void MK_PipeInitialize(void);
//extern int MK_DDIInitialize(void);
extern int MK_ShellInitalize(void);

void
MK_EndFunction(void)
{
#if MK_DEBUG_PRINT
	MK_InfoPrintf(MK_TASK_WARNING, "End of Task\n");
#endif
	
	for(;;);
}

MK_TASK *
MK_CreateTask(MK_TASK *pTask, MK_TASK_FUNC_T Function, int Priority,
			  char *pTaskName, long TimeSlice, char *pStackArea, LONG StackLength,
			  ULONG Arg1, VOID *Arg2)
{
	int Flags;					/* for Interrupt Disable, Restore */
	char *pStack;				/* for Stack */
	ULONG Temp;					/* for Stack */


	if(pTask->t_Magic == MK_TASK_MAGIC)
	{
#if MK_DEBUG_PRINT
		MK_Panic("MK_CreateTask() - Magic error!\n");
#endif
		return (MK_TASK *)MK_ERROR;	
	}
	
	if(Priority<0 || Priority>MK_TASK_MAX_PRIORITY)
	{
#if MK_DEBUG_PRINT
		MK_InfoPrintf(MK_TASK_ERROR, "MK_TaskCreate() - illegal Priority(0x%x)\n", Priority);
#endif
		return (MK_TASK *)MK_ERROR;	
	}

	if(TimeSlice <= 0)
	{
#if MK_DEBUG_PRINT
		MK_InfoPrintf(MK_TASK_ERROR, "MK_TaskCreate() - illegal TimeSlice(0x%x)\n", TimeSlice);
#endif
		return (MK_TASK *)MK_ERROR;
	}

	if(StackLength <= 0)
	{
#if MK_DEBUG_PRINT
		MK_InfoPrintf(MK_TASK_ERROR, "MK_TaskCreate() - StackLength(0x%x)\n",StackLength);
#endif
		return (MK_TASK *)MK_ERROR;	/* return -1, 0xFFFFFFFFL */
	}

	pTask->t_Priority = Priority;
	pTask->t_Function = Function;
	pTask->t_Arg1 = Arg1;
	pTask->t_Arg2 = Arg2;

	pTask->t_RemainedTimeSlice = TimeSlice;
	pTask->t_TimeSlice = TimeSlice;
	pTask->t_UsedTimeSlice = 0;

	pTask->t_PendingList = 0;
	pTask->t_pendingMemSize = 0;		/* It is used Temporary in Heap */

#ifdef	_MK_TPORT
	pTask->t_PortPending = 0;
	pTask->t_PortValueAvailable = 0;
	pTask->t_PortValue = 0;
#endif	
#ifdef	_MK_SIGNAL
	pTask->t_Signal = 0;
	pTask->t_SigMask = 0;
	pTask->t_pSigFunction = 0;
#endif
#ifdef	_MK_EVENT
	pTask->t_EventRequested = 0;
	pTask->t_EventOperation = 0;
	pTask->t_EventActualEvents = 0;
#endif

	pTask->t_pName = pTaskName;

	pTask->t_TopOfStack = (ULONG)pStackArea;
	pTask->t_LengthofStackArea = StackLength;
	Temp = (ULONG) pStackArea + StackLength;	/* Bottom of Stack */
	Temp &= 0xFFFFFFFCL ;						/* Truncate for Word Align */
	Temp -= 4;									/* Elbow Room */
	pTask->t_BottomOfStack = Temp;
	pStack = (char *)Temp;


/*------------------------------------------------------------------------
    
	(lower address) Stack top -->	SR
									r0		saved r0
									r1		saved r1
									r2		saved r2
									r3		saved r3
									r4		saved r4
									r5		saved r5
									r6		saved r6
									r7		saved r7
									r8		saved r10
									r9		saved r11
									r10		saved r12
									r11		saved r13
									r12		saved r14
									r14		saved lr
					

 *------------------------------------------------------------------------*/

	
	pStack -= sizeof(ULONG);
	*(ULONG *)pStack = (ULONG)MK_TaskShell;	/* 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_CurrentOfStack = (ULONG)pStack;
	
	pTask->t_Magic = MK_TASK_MAGIC;

	Flags = MK_InterruptDisable();		/* Start of Critical Region */
	pTask->t_pTaskNext = MK_NULL;
	pTask->t_pTaskPrev = MK_NULL;
	if(MK_pTaskListHead == MK_NULL)
	{
		MK_pTaskListHead = pTask;
		MK_pTaskListTail = pTask;
	}
	else
	{
		MK_pTaskListTail->t_pTaskNext = pTask;
		pTask->t_pTaskPrev = MK_pTaskListTail;
		MK_pTaskListTail = pTask;
	}

	pTask->t_pTaskReadyNext = MK_NULL;
	pTask->t_pTaskReadyPrev = MK_NULL;
	pTask->t_pDelayedNext = MK_NULL;
	pTask->t_pDelayedPrev = MK_NULL;
	pTask->t_pPendingNext = MK_NULL;
	pTask->t_pPendingPrev = MK_NULL;

	pTask->t_Status = MK_TASK_SUSPEND;		/* SUSPENDED State */
	/* Don't insert Ready List because Task's Status is SUSPEND */
	MK_AddTotalTasks();
	
	MK_InterruptRestore(Flags);	/* End of Critical Region */
	return pTask;
}

VOID
MK_TaskShell(VOID)
{
	MK_TASK *pTask;

	pTask = MK_pCurrentTask;	
	__asm("SETSR  IE");//MK_InterruptEnable();
	(*pTask->t_Function)(pTask->t_Arg1, pTask->t_Arg2);

	MK_DeleteTask(pTask);
}


STATUS
MK_ResetTask(MK_TASK *pTask, ULONG Arg1, VOID *Arg2)
{
	ULONG *pStack;			/* for Stack */
	ULONG Temp;				/* for Stack */
	INT	Flags;
	MK_PENDING_LIST 	*pPendingList;
	MK_SEMAPHORE	*pSem;

	if (pTask == MK_NULL)
	{
#if MK_DEBUG_PRINT
		MK_InfoPrintf(MK_TASK_WARNING, "MK_ResetTask() - Task doesn't exist! Task(%s)\n", MK_pCurrentTask->t_pName);
#endif
		return MK_ERROR;
	}
	if(pTask->t_Magic != MK_TASK_MAGIC)
	{
#if MK_DEBUG_PRINT		
		MK_Panic("[%S] line %d : MK_ResetTask() - Magic error!\n", __FILE__, __LINE__);
#endif
		return MK_RESOURCE_ERROR;
	}

	Flags = MK_InterruptDisable();
	
	if(!(pTask->t_Status & MK_TASK_SUSPEND)) //Modified
	{
		if( pTask->t_Status & MK_TASK_READY )
			MK_DeleteTaskFromReadyList( pTask );

		if( pTask->t_Status & MK_TASK_DELAYED )
			MK_DeleteTaskFromDelayedList( pTask );

		if( pTask->t_Status & MK_TASK_PENDING ) {
			pPendingList = (MK_PENDING_LIST *)pTask->t_PendingList;
			pSem = (MK_SEMAPHORE *)pPendingList->p_Sem;
if(pSem->s_Magic == MK_SEMAPHORE_MAGIC) {
			pSem->s_Count++;
}
#if 0
else if(pSem->s_Magic == MK_EVENT_MAGIC) {
	MK_Printf("\nMK_EVENT_PENDING_LIST\n");
}
else if(pSem->s_Magic == MK_HEAP_MAGIC) {
	MK_Printf("\nMK_HEAP_PENDING_LIST\n");
}
else { }
#endif
			MK_DeleteTaskFromPendingList( (MK_PENDING_LIST *)pTask->t_PendingList, pTask );
		}
	}

	pTask->t_Status = MK_TASK_SUSPEND;

	pTask->t_Arg1 = Arg1;
	pTask->t_Arg2 = Arg2;

	pTask->t_RemainedTimeSlice = pTask->t_TimeSlice;
	pTask->t_UsedTimeSlice = 0;

	pTask->t_PendingList = 0;
	pTask->t_pendingMemSize = 0;		/* It is used Temporary in Heap */

#ifdef	_MK_TPORT
	pTask->t_PortPending = 0;
	pTask->t_PortValueAvailable = 0;
	pTask->t_PortValue = 0;
#endif	
#ifdef	_MK_SIGNAL
	pTask->t_Signal = 0;
	pTask->t_SigMask = 0;
	pTask->t_pSigFunction = 0;
#endif
#ifdef	_MK_EVENT
	pTask->t_EventRequested = 0;
	pTask->t_EventOperation = 0;
	pTask->t_EventActualEvents = 0;
#endif

	Temp = pTask->t_TopOfStack + pTask->t_LengthofStackArea;	/* Bottom of Stack */
	Temp &= 0xFFFFFFFC;						/* Truncate for Word Align */
	Temp -= 4;									/* Elbow Room */
	pTask->t_BottomOfStack = Temp;
	pStack = (ULONG *)Temp;

/*------------------------------------------------------------------------
    
	(lower address) Stack top -->	SR
									r0		saved r0
									r1		saved r1
									r2		saved r2
									r3		saved r3
									r4		saved r4
									r5		saved r5
									r6		saved r6
									r7		saved r7
									r8		saved r10
									r9		saved r11
									r10		saved r12
									r11		saved r13
									r12		saved r14
									r14		saved lr
					

 *------------------------------------------------------------------------*/

	pStack -= sizeof(ULONG);
	*(ULONG *)pStack = (ULONG)MK_TaskShell;	/* 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, SSR */
    pStack -= sizeof(UINT);

	pTask->t_CurrentOfStack = (ULONG)pStack;

	pTask->t_pTaskReadyNext = MK_NULL;
	pTask->t_pTaskReadyPrev = MK_NULL;
	pTask->t_pDelayedNext = MK_NULL;
	pTask->t_pDelayedPrev = MK_NULL;
	pTask->t_pPendingNext = MK_NULL;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品主播直播| 亚洲国产日韩一区二区| 亚洲丝袜另类动漫二区| 亚洲综合丁香婷婷六月香| 免费一级欧美片在线观看| 国产精品影视在线| 91国产丝袜在线播放| 欧美剧在线免费观看网站| 久久综合色综合88| 日韩理论片网站| 天天影视色香欲综合网老头| 国产精品白丝av| 欧美日韩在线亚洲一区蜜芽| 久久综合久久鬼色| 亚洲一区国产视频| 国产综合色在线视频区| 欧美自拍偷拍一区| 国产亚洲欧美在线| 亚洲成a天堂v人片| 日本成人中文字幕| 91在线云播放| 亚洲精品一区在线观看| 亚洲自拍欧美精品| 国产 欧美在线| 3atv一区二区三区| 国产精品久久久久婷婷| 日本不卡的三区四区五区| 国产成人在线视频网址| 制服丝袜中文字幕亚洲| 成熟亚洲日本毛茸茸凸凹| 欧美午夜在线观看| 国产精品青草综合久久久久99| 三级在线观看一区二区| 成人性色生活片| 欧美一区日本一区韩国一区| 亚洲另类色综合网站| 国产精品一区专区| 91精品国产综合久久久久久| 亚洲丝袜另类动漫二区| 国产乱一区二区| 日韩欧美国产成人一区二区| 亚洲一区二区在线播放相泽 | 欧美久久久一区| 国产精品日韩成人| 韩国三级电影一区二区| 欧美三级一区二区| 亚洲精品中文字幕在线观看| 国产成人h网站| 欧美mv日韩mv亚洲| 日韩中文字幕av电影| 91国内精品野花午夜精品| 国产精品国产馆在线真实露脸| 国精产品一区一区三区mba视频 | 亚洲国产日韩a在线播放 | 亚洲综合激情网| 91在线播放网址| 国产精品色一区二区三区| 国模少妇一区二区三区| 日韩丝袜情趣美女图片| 日韩福利电影在线| 91精品欧美久久久久久动漫| 香蕉成人啪国产精品视频综合网| 欧美中文字幕一区二区三区| 亚洲另类一区二区| 色婷婷综合久久| 亚洲精品中文在线影院| 91黄色免费观看| 一区二区三区四区国产精品| 91国在线观看| 亚洲综合免费观看高清在线观看| 91福利国产精品| 亚洲国产日韩综合久久精品| 欧美日韩精品高清| 丝袜美腿亚洲综合| 91精品综合久久久久久| 蜜臀久久99精品久久久久宅男 | 久久精品国产精品亚洲精品| 欧美成人a在线| 狠狠色丁香婷婷综合| 久久综合久色欧美综合狠狠| 国产精品一色哟哟哟| 国产精品欧美一级免费| 97久久精品人人做人人爽50路 | 91国偷自产一区二区三区成为亚洲经典| 综合激情成人伊人| 在线视频欧美区| 婷婷六月综合亚洲| 欧美电影免费观看完整版| 国产一区二区三区黄视频| 国产欧美日韩久久| 99久久夜色精品国产网站| 亚洲精选视频免费看| 欧美日韩国产综合视频在线观看 | 欧美喷水一区二区| 美女视频黄久久| 国产欧美日韩另类一区| 色婷婷一区二区| 丝袜美腿亚洲色图| 26uuu色噜噜精品一区二区| 成人综合在线网站| 亚洲一区二区三区免费视频| 欧美二区在线观看| 久久99精品久久久久久动态图 | 国产成人av电影| 亚洲丝袜精品丝袜在线| 在线不卡欧美精品一区二区三区| 久久精品免费观看| 日韩一区有码在线| 在线综合视频播放| 国产成人aaa| 亚洲国产成人av好男人在线观看| 日韩美女在线视频 | 亚洲精品综合在线| 日韩精品一区二区在线| www.欧美.com| 五月婷婷久久综合| 国产区在线观看成人精品 | 亚洲国产精品一区二区久久恐怖片 | 国产日韩欧美激情| 欧洲一区二区av| 国产乱码精品1区2区3区| 亚洲乱码一区二区三区在线观看| 日韩欧美一二三| 91丝袜呻吟高潮美腿白嫩在线观看| 奇米亚洲午夜久久精品| 国产精品大尺度| 日韩免费视频一区二区| 一本大道久久a久久综合 | 亚洲国产成人在线| 欧美精品日日鲁夜夜添| 成人午夜视频网站| 日本不卡视频在线| 亚洲女同ⅹxx女同tv| 精品国产亚洲在线| 91极品视觉盛宴| 粉嫩嫩av羞羞动漫久久久| 日韩和的一区二区| **欧美大码日韩| 欧美精品一区二区三区四区| 欧美性色综合网| 成人av动漫在线| 国产呦萝稀缺另类资源| 午夜一区二区三区在线观看| 国产精品亲子乱子伦xxxx裸| 日韩精品一区二区三区视频| 欧美日韩综合在线| jizzjizzjizz欧美| 国产精品一二三区| 日韩国产精品久久| 亚洲自拍偷拍综合| 日韩毛片在线免费观看| 欧美国产一区二区在线观看| 欧美一级在线视频| 欧美色手机在线观看| 91社区在线播放| 成人精品视频一区| 国模冰冰炮一区二区| 奇米色777欧美一区二区| 亚洲第一成人在线| 亚洲一区中文在线| 亚洲乱码一区二区三区在线观看| 国产精品狼人久久影院观看方式| 久久久久99精品一区| 欧美videossexotv100| 日韩午夜在线影院| 欧美一区二区精品久久911| 欧美日韩国产高清一区二区三区| 91麻豆免费看片| 不卡一卡二卡三乱码免费网站| 国产a精品视频| 国产一区二区在线免费观看| 美女精品自拍一二三四| 日本欧美一区二区三区| 午夜精品影院在线观看| 天天免费综合色| 日精品一区二区三区| 亚洲成人激情社区| 婷婷国产在线综合| 天堂精品中文字幕在线| 亚洲成av人**亚洲成av**| 亚洲国产成人精品视频| 亚洲午夜视频在线观看| 香蕉乱码成人久久天堂爱免费| 亚洲成人av一区二区| 亚瑟在线精品视频| 天堂资源在线中文精品| 日韩精品电影一区亚洲| 日韩国产欧美在线观看| 麻豆精品一二三| 狠狠色丁香久久婷婷综| 国产1区2区3区精品美女| av福利精品导航| 日本黄色一区二区| 精品视频色一区| 欧美一卡2卡三卡4卡5免费| 亚洲精品一区二区三区香蕉| 久久精品一区八戒影视| 中文字幕制服丝袜一区二区三区| 18成人在线观看| 亚洲国产成人va在线观看天堂|