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

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

?? m5200intr.c

?? mpc5200 for bsp,it is have passed built.
?? C
?? 第 1 頁 / 共 2 頁
字號:
    intMask = *ICTL_CPMIMR;#if 0TBD    /* lock all levels inferior to the interrupt detected */    /* those with lower priority level are all in mskPIMR[isr_PSe] */    *ICTL_PIMR |= mskPIMR[isr_PSe];    /* those with same priority level are all in lvlPIMR[isr_PSe]       mask only those bits on the right hand side and including isr_PSe */    *ICTL_PIMR |= (lvlPIMR[isr_PSe] & ( ( 1 << (32-isr_PSe) ) - 1));#else    *ICTL_CPMIMR |= ICTL_CPMIMR_MASK_ALL; /* mask all for now -> no nesting */#endif    /* unlock the interrupt */#if 0    /* TBD: remove to enable nesting */    intUnlock (_PPC_MSR_EE);#endif    /* call the Interrupt Handler */    intrVecTable[IVEC_TO_INUM(vector)].vec (intrVecTable[IVEC_TO_INUM(vector)].arg);    /* restore the interrupt mask */    *ICTL_CPMIMR = intMask;    return;    }void m5200IntAck(int intNum){    int type;    switch (intNum) {    case INUM_IRQ0:	type = *ICTL_EEETR & ICTL_EEETR_ETYPE0_MASK;	if ((type == ICTL_EEETR_ETYPE0_RISING_EDGE)		|| (type == ICTL_EEETR_ETYPE0_FALLING_EDGE))            *ICTL_EEETR  |= ICTL_EEETR_ECLR0_MASK; /* serviced */	break;    case INUM_IRQ1:	type = *ICTL_EEETR & ICTL_EEETR_ETYPE1_MASK;	if ((type == ICTL_EEETR_ETYPE1_RISING_EDGE)		|| (type == ICTL_EEETR_ETYPE1_FALLING_EDGE))            *ICTL_EEETR  |= ICTL_EEETR_ECLR1_MASK; /* serviced */	break;    case INUM_IRQ2:	type = *ICTL_EEETR & ICTL_EEETR_ETYPE2_MASK;	if ((type == ICTL_EEETR_ETYPE2_RISING_EDGE)		|| (type == ICTL_EEETR_ETYPE2_FALLING_EDGE))            *ICTL_EEETR  |= ICTL_EEETR_ECLR2_MASK; /* serviced */	break;    case INUM_IRQ3:	type = *ICTL_EEETR & ICTL_EEETR_ETYPE3_MASK;	if ((type == ICTL_EEETR_ETYPE3_RISING_EDGE)		|| (type == ICTL_EEETR_ETYPE3_FALLING_EDGE))            *ICTL_EEETR  |= ICTL_EEETR_ECLR3_MASK; /* serviced */	break;    default:    }#if 0/* TBD: remove if 0 to enable nesting */    if ((intNum >= INUM_CRITICAL_FIRST) && (intNum <= INUM_CRITICAL_LAST))#if !USE_CRITICAL_INTERRUPT        intUnlock (_PPC_MSR_EE);#else        intUnlock (_PPC_MSR_CE);#endif#endif}/********************************************************************************* m5200IntEnable - enable one of the Level or IRQ interrupts into the SIU** RETURNS: OK, or ERROR if not applicable to intNum*/LOCAL int m5200IntEnable    (    int intNum		/* interrupt level to enable (0 - 31) */    )    {    if ((intNum >= INUM_PERIPHERAL_FIRST) && (intNum <= INUM_PERIPHERAL_LAST))    	{	*ICTL_PIMR &= ~(1 << (31 - intNum + INUM_PERIPHERAL_FIRST));	}    else if (_func_sdmaIntEnableRtn && (intNum >= INUM_SDMA_FIRST) && (intNum <= INUM_SDMA_LAST))	{	return (_func_sdmaIntEnableRtn)(intNum);	}    else 	{	switch (intNum) {	case INUM_IRQ0:	    *ICTL_EEETR  |= ICTL_EEETR_EENA0_MASK;	    break;	case INUM_SLT1:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK0; break;	case INUM_IRQ1:	    *ICTL_EEETR  |= ICTL_EEETR_EENA1_MASK;	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK1; break;	case INUM_IRQ2:	    *ICTL_EEETR  |= ICTL_EEETR_EENA2_MASK;	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK2; break;	case INUM_IRQ3:	    *ICTL_EEETR  |= ICTL_EEETR_EENA3_MASK;	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK3; break;    	case INUM_RTC_pint:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK5; break;    	case INUM_RTC_sint:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK6; break;    	case INUM_GPIO_std:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK7; break;    	case INUM_GPIO_wkup:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK8; break;	case INUM_TMR0:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK9; break;	case INUM_TMR1:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK10; break;	case INUM_TMR2:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK11; break;	case INUM_TMR3:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK12; break;	case INUM_TMR4:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK13; break;	case INUM_TMR5:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK14; break;	case INUM_TMR6:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK15; break;	case INUM_TMR7:	    *ICTL_CPMIMR &= ~ICTL_CPMIMR_MAIN_MASK16; break;	default:	    return ERROR;        }	}        return OK;    }/********************************************************************************* m5200IntDisable - disable one of the Level or IRQ interrupts into the SIU** RETURNS: OK, or ERROR if not applicable to intNum*/LOCAL int m5200IntDisable    (    int intNum		/* interrupt level to disable (0 - 31) */    )    {    if ((intNum >= INUM_PERIPHERAL_FIRST) && (intNum <= INUM_PERIPHERAL_LAST))	{	*ICTL_PIMR |= (1 << (31 - intNum + INUM_PERIPHERAL_FIRST));	}    else if (_func_sdmaIntDisableRtn && (intNum >= INUM_SDMA_FIRST) && (intNum <= INUM_SDMA_LAST))	{	return (_func_sdmaIntDisableRtn)(intNum);	}    else     	{	switch (intNum) {	case INUM_IRQ0:	    *ICTL_EEETR &= ~ICTL_EEETR_EENA0_MASK;	    break;	case INUM_SLT1:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK0; break;	case INUM_IRQ1:	    *ICTL_EEETR  &= ~ICTL_EEETR_EENA1_MASK;	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK1; break;	case INUM_IRQ2:	    *ICTL_EEETR  &= ~ICTL_EEETR_EENA2_MASK;	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK2; break;	case INUM_IRQ3:	    *ICTL_EEETR  &= ~ICTL_EEETR_EENA3_MASK;	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK3; break;    	case INUM_RTC_pint:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK5; break;    	case INUM_RTC_sint:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK6; break;    	case INUM_GPIO_std:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK7; break;    	case INUM_GPIO_wkup:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK8; break;	case INUM_TMR0:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK9; break;	case INUM_TMR1:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK10; break;	case INUM_TMR2:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK11; break;	case INUM_TMR3:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK12; break;	case INUM_TMR4:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK13; break;	case INUM_TMR5:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK14; break;	case INUM_TMR6:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK15; break;	case INUM_TMR7:	    *ICTL_CPMIMR |= ICTL_CPMIMR_MAIN_MASK16; break;	default:	    return ERROR;        }        }       return OK;    }int m5200IntrSetLevel(int intNum, int level)	{	int result;	if ((intNum >= INUM_PERIPHERAL_FIRST) && (intNum <= INUM_PERIPHERAL_LAST))		{		/* valid range 0 .. 15 */		if (level >= 0  && level <= 15)			{			int                 pNum      = intNum - INUM_PERIPHERAL_FIRST;			int                 regOffset = pNum / 4;			volatile UINT32 *   pPPR      = &ICTL_PPR[regOffset];			int                 regShift  = (7 - pNum % 4) * 4;			UINT32              pprBit    = 1<<pNum;			int                 old_level;			old_level = intLock();			result = (*pPPR >> regShift) & 15;			if (result  != level)				{				int l;				ICTL_PPR[regOffset] &= ~(15 << regShift);				ICTL_PPR[regOffset] |= level << regShift;				lvlPIMR[result] &= ~pprBit;				lvlPIMR[level] |= pprBit;				if (result < level)	/* level increased */					for (l=result; l < level; l++)						mskPIMR[l] |= pprBit;				else					for (l=level; l < result; l++)						mskPIMR[l] &= ~pprBit;				}			intUnlock(old_level);			}		else			return ERROR;		}	else if (_func_sdmaIntSetLevelRtn && (intNum >= INUM_SDMA_FIRST) && (intNum <= INUM_SDMA_LAST))		return(_func_sdmaIntSetLevelRtn)(intNum,level);	else		return ERROR; /* TBD */	return OK;	}void m5200MachCheckHandler    (    ESFPPC *	pEsf			/* pointer to exception stack frame */    )    {    EXC_INFO	excInfo;    int		vecNum = pEsf->vecOffset;	/* exception vector number */    REG_SET *	pRegs = &pEsf->regSet;		/* pointer to register on esf */    extern FUNCPTR _func_excTrapRtn;#ifdef  WV_INSTRUMENTATION    /* windview - level 3 event logging */    EVT_CTX_1(EVENT_EXCEPTION, vecNum);#endif    if ((pEsf->regSet.msr & _EXC_PROG_SRR1_TRAP) && (_func_excTrapRtn != NULL)	&& ((*(INSTR *) pEsf->regSet.pc) == DBG_BREAK_INST))	{	pEsf->regSet.msr &= ~_EXC_PROG_SRR1_TRAP;	(* _func_excTrapRtn) (pEsf, pRegs, NULL, FALSE);	}    else	{        excInfo.vecOff = vecNum;        excInfo.cia = pEsf->regSet.pc;		/* copy cia/nia */        excInfo.msr = pEsf->regSet.msr;		/* copy msr */        excInfo.cr = pEsf->regSet.cr;		/* copy cr */	excInfo.valid = (_EXC_INFO_DEFAULT | _EXC_INFO_NIA) & ~_EXC_INFO_CIA;	if (*XLB_ACR != 0)		{	    /* XLB is source */	    excInfo.valid = excInfo.valid | _EXC_INFO_XLB;	    excInfo.dar = *XLB_ACR;		/* use dar & dsisr for now */	    excInfo.dsisr = *XLB_SR | *XLB_BSCR<<16; 	    *XLB_SR = XLB_SR_CLEAR_ALL;		/* clear to free ACR/BSCR */	}	if ((_func_excBaseHook != NULL) &&		/* user hook around? */	    ((* _func_excBaseHook) (vecNum, pEsf, pRegs, &excInfo)))	    return;					/* user hook fixed it */	if (INT_CONTEXT ())	    {	    if (_func_excPanicHook != NULL)		/* panic hook? */		(*_func_excPanicHook) (vecNum, pEsf, pRegs, &excInfo);	    reboot (BOOT_WARM_AUTOBOOT);	    return;					/* reboot returns?! */	    }	/* task caused exception */	taskIdCurrent->pExcRegSet = pRegs;		/* for taskRegs[GS]et */	taskIdDefault ((int)taskIdCurrent);		/* update default tid */	bcopy ((char *) &excInfo, (char *) &(taskIdCurrent->excInfo),	       sizeof (EXC_INFO));			/* copy in exc info */	if (_func_sigExcKill != NULL)	    _func_sigExcKill((int) vecNum, vecNum, pRegs);	if (_func_excInfoShow != NULL)			/* default show rtn? */	    (*_func_excInfoShow) (&excInfo, TRUE);	if (excExcepHook != NULL)	    (* excExcepHook) (taskIdCurrent, vecNum, pEsf);	taskSuspend (0);				/* whoa partner... */	taskIdCurrent->pExcRegSet = (REG_SET *) NULL;	/* invalid after rts */	}    }/********************************************************************************* m5200ExcInfoShow - print exception info** NOMANUAL*/LOCAL void m5200ExcInfoShow     (    EXC_INFO *	pExcInfo,    BOOL	doBell    )    {    FAST int vecOff = pExcInfo->vecOff;    FAST int valid  = pExcInfo->valid;    	    if ((!(valid & _EXC_INFO_VEC)) || (vecOff != _EXC_OFF_MACH))    {        (*org_func_excInfoShow)(pExcInfo,doBell);	return;    }    printExc ("\nmachine check\n", 0, 0, 0, 0, 0);	    if (valid & _EXC_INFO_CIA)	printExc ("Exception current instruction address: 0x%08x\n", 		  (int) pExcInfo->cia, 0, 0, 0, 0);    if (valid & _EXC_INFO_NIA)	printExc ("Exception next instruction address: 0x%08x\n", 		  (int) pExcInfo->cia, 0, 0, 0, 0);    if (valid & _EXC_INFO_MSR)	printExc ("Machine Status Register: 0x%08x\n", 		  (int) pExcInfo->msr, 0, 0, 0, 0);    if (valid & _EXC_INFO_XLB)        printExc ("Exception access address: 0x%08x XLB status 0x%03x XLB signals 0x%03x\n", 		  (int) pExcInfo->dar, (int) (pExcInfo->dsisr&0xffff), 		  (int) (pExcInfo->dsisr>>16), 0, 0);    if (valid & _EXC_INFO_XER)        printExc ("Fixed Point Register: 0x%08x\n", 		  (int) pExcInfo->xer, 0, 0, 0, 0);    if (valid & _EXC_INFO_CR)        printExc ("Condition Register: 0x%08x\n", 		  (int) pExcInfo->cr, 0, 0, 0, 0);#ifdef	_EXC_INFO_FPCSR    if (valid & _EXC_INFO_FPCSR)        printExc ("Fp Control and Status Register: 0x%08x\n", 		  (int) pExcInfo->fpcsr, 0, 0, 0, 0);#endif	/* _EXC_INFO_FPCSR */    if (doBell)	printExc ("Task: %#x \"%s\"\007\n", (int)taskIdCurrent, 		  (int)taskName ((int)taskIdCurrent), 0, 0, 0);    }void m5200ExcShowInit(){    org_func_excInfoShow = (VOIDFUNCPTR) _func_excInfoShow;    _func_excInfoShow = (FUNCPTR) m5200ExcInfoShow;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人动漫av在线| 中文字幕欧美区| 亚洲一区二区三区四区的| 色狠狠一区二区| 亚洲444eee在线观看| 欧美日韩一级二级三级| 日韩综合在线视频| 欧美成人三级电影在线| 国产一区二区中文字幕| 国产日韩一级二级三级| jlzzjlzz欧美大全| 亚洲国产欧美一区二区三区丁香婷| 欧洲亚洲精品在线| 麻豆精品在线播放| 国产日本欧洲亚洲| 欧美性一级生活| 青娱乐精品视频| 久久精品亚洲国产奇米99| 99久久久精品免费观看国产蜜| 一区二区三区欧美日韩| 7777女厕盗摄久久久| 国产一区二区三区日韩| 亚洲天堂av一区| 6080国产精品一区二区| 国产91综合一区在线观看| 一区二区在线观看视频在线观看| 欧美精品久久久久久久多人混战 | 国产精品乱码一区二区三区软件| 91丨国产丨九色丨pron| 日韩精品视频网| 国产人成亚洲第一网站在线播放 | 欧美三级视频在线观看| 精品中文字幕一区二区小辣椒| 欧美国产日韩a欧美在线观看| 欧美中文字幕一二三区视频| 国产一区二区在线电影| 亚洲激情第一区| 精品91自产拍在线观看一区| 色诱视频网站一区| 韩国在线一区二区| 亚洲一区日韩精品中文字幕| 国产日韩精品一区二区浪潮av | 91精品欧美久久久久久动漫| 成人动漫一区二区三区| 久久99日本精品| 夜夜精品视频一区二区| 欧美韩国日本一区| 欧美日本韩国一区| 成人h动漫精品一区二区| 久久激五月天综合精品| 亚洲成人先锋电影| 最好看的中文字幕久久| 精品成人佐山爱一区二区| 欧美无砖砖区免费| av亚洲精华国产精华精| 国产精品亚洲第一区在线暖暖韩国| 午夜影视日本亚洲欧洲精品| 亚洲欧美色图小说| 欧美国产日产图区| 国产人成亚洲第一网站在线播放| 欧美一区二区三区喷汁尤物| 欧美视频自拍偷拍| 色婷婷精品久久二区二区蜜臀av| 国产成人av资源| 精久久久久久久久久久| 青草国产精品久久久久久| 亚洲综合小说图片| 亚洲免费电影在线| 最新日韩av在线| 中文字幕制服丝袜一区二区三区 | 欧美一区二区视频在线观看2020| 色婷婷av一区二区三区gif| av成人动漫在线观看| 高清不卡一区二区| 成人午夜av电影| www.欧美色图| 91在线视频播放| 91香蕉视频mp4| 色综合久久久久| 色婷婷亚洲一区二区三区| 日本道精品一区二区三区| 色综合欧美在线视频区| 色久优优欧美色久优优| 欧美三片在线视频观看| 欧美日韩视频第一区| 欧美国产国产综合| 欧美精品一区二区三区久久久| 日韩欧美在线影院| 欧美mv和日韩mv的网站| 欧美草草影院在线视频| 久久综合久色欧美综合狠狠| 久久精品亚洲国产奇米99| 国产欧美综合色| 亚洲欧洲在线观看av| 一区二区三区在线观看动漫| 性久久久久久久久| 蜜乳av一区二区三区| 国产一区不卡视频| 成人午夜激情影院| 欧美午夜影院一区| 精品久久人人做人人爱| 欧美激情一区二区| 亚洲男女一区二区三区| 天天色综合天天| 国产精品一区二区91| 91女人视频在线观看| 欧美视频一区二区在线观看| 日韩欧美成人激情| 国产精品免费视频一区| 亚洲午夜日本在线观看| 久久99国产精品成人| 成人黄色片在线观看| 欧美三级中文字| 久久久久久99久久久精品网站| 最近中文字幕一区二区三区| 日本va欧美va欧美va精品| 国产一区二区三区综合| 精品国产免费人成电影在线观看四季| 精品成人佐山爱一区二区| 亚洲天堂免费看| 久久国产乱子精品免费女| 懂色av噜噜一区二区三区av| 欧美性猛片aaaaaaa做受| 久久日韩精品一区二区五区| 亚洲精品福利视频网站| 韩国v欧美v亚洲v日本v| 欧美性大战xxxxx久久久| 国产欧美日韩激情| 婷婷综合另类小说色区| www.激情成人| 久久午夜老司机| 偷拍亚洲欧洲综合| 成人av在线资源| 欧美成人乱码一区二区三区| 亚洲人成在线播放网站岛国| 激情图片小说一区| 欧美精品国产精品| 亚洲欧美日韩国产中文在线| 韩国av一区二区| 9191久久久久久久久久久| 自拍偷拍亚洲激情| 国产福利91精品| 欧美一区二区三区免费| 亚洲激情在线激情| 国产成人精品免费网站| 精品国产露脸精彩对白| 亚洲成a人v欧美综合天堂下载| 成人高清视频在线| 久久久久久久久久看片| 日韩精品成人一区二区三区| 色综合天天做天天爱| 欧美激情艳妇裸体舞| 国产一区二区三区综合 | 日韩一区二区视频| 亚洲一卡二卡三卡四卡| 91香蕉视频mp4| 国产精品每日更新| 成人亚洲一区二区一| 亚洲国产岛国毛片在线| 国产99一区视频免费| 久久你懂得1024| 韩国精品一区二区| 精品国产91乱码一区二区三区 | 精品国精品国产尤物美女| 日本一不卡视频| 91精品国产91久久久久久最新毛片 | 国产精品99久久久久| xfplay精品久久| 麻豆91小视频| 精品奇米国产一区二区三区| 奇米色一区二区| 欧美一级生活片| 麻豆成人91精品二区三区| 欧美一区二区三区男人的天堂| 蜜臀久久久99精品久久久久久| 日韩一区二区电影| 久久精品国产第一区二区三区| 777a∨成人精品桃花网| 欧洲视频一区二区| 香蕉成人伊视频在线观看| 4438成人网| 精品一区二区日韩| 久久蜜桃av一区精品变态类天堂| 国产精品一区二区三区乱码 | 99国产精品久久久久久久久久久| 中文字幕不卡三区| 99精品久久只有精品| 亚洲精品免费在线观看| 欧美日韩一区二区三区四区| 日韩电影在线一区二区三区| 日韩欧美一区在线| 国产一区啦啦啦在线观看| 国产精品毛片大码女人| 色婷婷av久久久久久久| 日韩av中文字幕一区二区 | 久久久久久久久97黄色工厂| 91香蕉视频黄| 麻豆精品一区二区三区| 国产精品素人一区二区| 欧美丝袜第三区|