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

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

?? armint.c

?? smdk2440的bsp
?? C
?? 第 1 頁 / 共 2 頁
字號:
				s2440INT->rINTPND  = BIT_EINT8_23;
		
			return SYSINTR_SDMMC_CARD_DETECT;
		}
#endif



		//else if (submask & (1 << 8))	// 0x100 EINT8 : PCMCIA_LEVEL
		else if (dwSubMask & (1 << 8))	// 0x100 EINT8 : PCMCIA_LEVEL
		{
			s2440IOP->rEINTMASK |= 0x100;
			s2440IOP->rEINTPEND = 0x100;

			s2440INT->rSRCPND = BIT_EINT8_23;        
			if (s2440INT->rINTPND & BIT_EINT8_23) s2440INT->rINTPND = BIT_EINT8_23;

			//RETAILMSG(1, (TEXT("INT:SYSINTR_PCMCIA_LEVEL INT\r\n")));
			return SYSINTR_PCMCIA_LEVEL;
		}
		else
		{
			s2440INT->rSRCPND = BIT_EINT8_23;        
			if (s2440INT->rINTPND & BIT_EINT8_23) s2440INT->rINTPND = BIT_EINT8_23;

			//RETAILMSG(0, (TEXT("INT:???\r\n")));
			//return SYSINTR_NOP;
		}					
	}

	else if (IntPendVal == INTSRC_ADC) // INTSRC_ADC
	{
        // Touch Panel Int
       	SubIntPendVal = s2440INT->rSUBSRCPND;
       	
       	if(SubIntPendVal & INTSUB_TC) 
		{
       		s2440INT->rINTSUBMSK |= INTSUB_TC;
       		s2440INT->rSUBSRCPND  = INTSUB_TC;
       	
            s2440INT->rINTMSK |= BIT_ADC;
   	        s2440INT->rSRCPND  = BIT_ADC;        
       	    if (s2440INT->rINTPND & BIT_ADC) s2440INT->rINTPND = BIT_ADC;
           
			if( (s2440ADC->rADCDAT0 & 0x8000) || (s2440ADC->rADCDAT1 & 0x8000) )
			{
				s2440INT->rINTMSK |= BIT_TIMER1;     // Mask timer1 interrupt.
		   		s2440INT->rSRCPND = BIT_TIMER1;     // Clear pending bit
   				if (s2440INT->rINTPND & BIT_TIMER1) s2440INT->rINTPND = BIT_TIMER1;
				//RETAILMSG(0,(TEXT("INT Touch pen up \r\n")));

      	        odo_tsb->status = TOUCH_PEN_UP;
      		}
			else
			{
				//RETAILMSG(0,(TEXT("INT Touch pen down \r\n")));
   	            odo_tsb->status = TOUCH_PEN_DOWN;
			}
       
	        return SYSINTR_TOUCH_CHANGED;
		}
       	else if(SubIntPendVal & INTSUB_ADC)
		{
       		s2440INT->rINTSUBMSK |= INTSUB_ADC;
       		s2440INT->rSUBSRCPND = INTSUB_ADC;

	        s2440INT->rINTMSK |= BIT_ADC;
   		    s2440INT->rSRCPND = BIT_ADC;        
       		if (s2440INT->rINTPND & BIT_ADC) s2440INT->rINTPND = BIT_ADC;
            	
        	s2440INT->rINTMSK &= ~BIT_ADC;

           	return SYSINTR_NOP;
       	}
       	else
       		return SYSINTR_NOP;
	}

	else if (IntPendVal == INTSRC_TIMER1) // INTSRC_TIMER1
	{
       // Timer 1 interrupt to get touch point
      	s2440INT->rINTMSK |= BIT_TIMER1;
       	s2440INT->rSRCPND = BIT_TIMER1;
  	    if (s2440INT->rINTPND & BIT_TIMER1) s2440INT->rINTPND = BIT_TIMER1;

		// charlie, 020620
		if( (s2440ADC->rADCDAT0 & 0x8000) || (s2440ADC->rADCDAT1 & 0x8000) )
		{
			//RETAILMSG(0,(TEXT("INT Touch SYSINTR_TOUCH_CHANGED 1\r\n")));
			odo_tsb->status = TOUCH_PEN_UP;
			return SYSINTR_TOUCH_CHANGED;
		}

        if(odo_tsb->status == TOUCH_PEN_UP) 
		{
			//RETAILMSG(0,(TEXT("INT Touch SYSINTR_TOUCH_CHANGED 2 \r\n")));
			odo_tsb->status = TOUCH_PEN_UP;
			return SYSINTR_TOUCH_CHANGED;
		}
        else 
		{
			unsigned int TmpTCON;

        	odo_tsb->status = TOUCH_PEN_SAMPLE;
			TmpTCON = s2440PWM->rTCON;	// get TCON value to temp TCON register
			TmpTCON &= ~0xf00;     		// clear fields of Timer 1 
			TmpTCON |= 0x200;     		// interval mode(auto reload), update TCVNTB4, stop 
			s2440PWM->rTCON = TmpTCON;	// put the value to TCON register

			TmpTCON = s2440PWM->rTCON;	// get TCON value to temp TCON register
			TmpTCON &= ~0xf00;     		// clear fields of Timer 1 
			TmpTCON |= 0x100;     		// interval mode, no operation, start for Timer 4 
			s2440PWM->rTCON = TmpTCON;	// put the value to TCON register

			//RETAILMSG(0,(TEXT("INT Touch SYSINTR_TOUCH\r\n")));
	
        	return SYSINTR_TOUCH;
		}
	}

	else if (IntPendVal == INTSRC_EINT0)		// POWER BUTTON
	{ 
		s2440INT->rINTMSK |= BIT_EINT0;
		s2440INT->rSRCPND  = BIT_EINT0;			// Interrupt Clear
		if (s2440INT->rINTPND & BIT_EINT0) s2440INT->rINTPND  = BIT_EINT0;

		return(SYSINTR_POWER);	
	}

	else if(IntPendVal == INTSRC_DMA1) // AUDIO DMA input.
	{  
		s2440INT->rINTMSK |= BIT_DMA1;
		s2440INT->rSRCPND  = BIT_DMA1;
		if (s2440INT->rINTPND & BIT_DMA1) s2440INT->rINTPND  = BIT_DMA1;

		return(SYSINTR_AUDIO);
	}
	else if(IntPendVal == INTSRC_DMA2) // AUDIO DMA output.
	{  
		s2440INT->rINTMSK |= BIT_DMA2;
		s2440INT->rSRCPND  = BIT_DMA2;
		if (s2440INT->rINTPND & BIT_DMA2) s2440INT->rINTPND  = BIT_DMA2;

		return(SYSINTR_AUDIO);
	}

	else if(IntPendVal == INTSRC_USBH) 	// USB.
	{
		s2440INT->rINTMSK |= BIT_USBH;
		s2440INT->rSRCPND  = BIT_USBH;        
		if (s2440INT->rINTPND & BIT_USBH) s2440INT->rINTPND  = BIT_USBH;
		//RETAILMSG(1, (TEXT("INT:SYSINTR_USB INT\r\n")));
		return(SYSINTR_USB);     
	} 

	else if (IntPendVal == INTSRC_DMA3)
	{
		s2440INT->rINTMSK |= BIT_USBD; // USBD interrupt should be masked
		//s2440INT->rINTMSK |= BIT_DMA3;
		s2440INT->rSRCPND = BIT_DMA3;
		if (s2440INT->rINTPND & BIT_DMA3) s2440INT->rINTPND = BIT_DMA3;
		usbdShMem->usbdDma3Int=1;
		return SYSINTR_USBD;  
		//Correct. DMA3 interrupt will be connected to USBD interrupt.
		//break;
	}

	else if(IntPendVal == INTSRC_USBD) 
	{
		s2440INT->rINTMSK |= BIT_USBD;
		UsbdClearEir();	 //:-)
		s2440INT->rSRCPND = BIT_USBD;
		if (s2440INT->rINTPND & BIT_USBD) s2440INT->rINTPND = BIT_USBD;
		RETAILMSG(0,(TEXT("INT_USBD\r\n")));
		return SYSINTR_USBD;
    }

	else if(IntPendVal == INTSRC_UART0)	// SERIAL (UART0) (physical COM1: P1 connector).
	{  
		SubIntPendVal = s2440INT->rSUBSRCPND;

		// Note that we only mask the sub source interrupt - the serial driver will clear the
		// sub source pending register.
		//
		if(SubIntPendVal & INTSUB_ERR0) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_ERR0;
		}
		else if(SubIntPendVal & INTSUB_RXD0) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_RXD0;
			#if USE_AFC
			// by 0212.
				s2440IOP->rGPHDAT |= (0x2);  // Deassert nRTS				
			#endif
		}
		else if(SubIntPendVal & INTSUB_TXD0) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_TXD0;
		}
		else
		{
			return(SYSINTR_NOP);
		}
	
		// NOTE: Don't clear INTSRC:UART0 here - serial driver does that.
		//
		s2440INT->rINTMSK |= BIT_UART0;
		if (s2440INT->rINTPND & BIT_UART0) s2440INT->rINTPND  = BIT_UART0;

		return(SYSINTR_SERIAL);
	}
	
	else if(IntPendVal == INTSRC_UART1)  // SERIAL (UART1) (physical COM2: P2 connector)   
	{   
	  	SubIntPendVal = s2440INT->rSUBSRCPND; 
	  	// Note that we only mask the sub source interrupt - the serial driver will clear the 
	  	// sub source pending register. 
	  	// 
	  	if(SubIntPendVal & INTSUB_ERR1)  
	  	{ 
	    		s2440INT->rINTSUBMSK |= INTSUB_ERR1; 
	  	} 
	  	else if(SubIntPendVal & INTSUB_RXD1)  
	  	{ 
	    		s2440INT->rINTSUBMSK |= INTSUB_RXD1; 
	  	} 
	  	else if(SubIntPendVal & INTSUB_TXD1)  
	  	{ 
	    		s2440INT->rINTSUBMSK |= INTSUB_TXD1; 
	 	} 
	  	else 
  		{ 
      			return(SYSINTR_NOP); 
    		} 
  
    		// NOTE: Don't clear INTSRC:UART0 here - serial driver does that. 
    		// 
    		s2440INT->rINTMSK |= BIT_UART1; 
    		if (s2440INT->rINTPND & BIT_UART1) s2440INT->rINTPND  = BIT_UART1; 
 
    		return(SYSINTR_SERIAL2); 
  	}      

  	else if(IntPendVal == INTSRC_UART2)	// SERIAL (UART2) (physical COM3: P2 connector)   
	{
		SubIntPendVal = s2440INT->rSUBSRCPND;

		if(SubIntPendVal & INTSUB_ERR2) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_ERR2;
		}       
		else if(SubIntPendVal & INTSUB_RXD2) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_RXD2;
		}       
		else if(SubIntPendVal & INTSUB_TXD2) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_TXD2;
		}       
		else
		{
			return(SYSINTR_NOP);
		}

		// NOTE: Don't clear INTSRC:UART2 here - serial driver does that.
		//
		s2440INT->rINTMSK |= BIT_UART2;
		if (s2440INT->rINTPND & BIT_UART2) s2440INT->rINTPND  = BIT_UART2;
		
		return(SYSINTR_SERIAL3);
	}

	else if (IntPendVal == INTSRC_RTC)	// for alarm. 030818
	{ 
		s2440INT->rSRCPND  = BIT_RTC;   // Interrupt Clear
		s2440INT->rINTPND  = BIT_RTC;
		s2440INT->rINTMSK |= BIT_RTC;   // Alarm Interrupt Disable
		return SYSINTR_RTC_ALARM;
	}
	else if(IntPendVal == INTSRC_CAM) 
	{
//		RETAILMSG(1,(TEXT("INT:SYSINTR_CAM INT:0x%x,0x%x\r\n"),s2440INT->rSRCPND,s2440INT->rSUBSRCPND));
		
		if( s2440INT->rSUBSRCPND & (0x1<<11) )
		{
			s2440INT->rINTSUBMSK |= (0x1<<11);
			s2440INT->rINTMSK |= BIT_CAM;
			s2440INT->rSUBSRCPND = (0x1<<11);
			s2440INT->rSRCPND = BIT_CAM;
			
			if (s2440INT->rINTPND & BIT_CAM) s2440INT->rINTPND = BIT_CAM;
			return SYSINTR_CAM;
		}
		else if (s2440INT->rSUBSRCPND & BIT_SUB_CAM_P)
		{
			s2440INT->rINTSUBMSK |= (0x2<<11);
			s2440INT->rINTMSK |= BIT_CAM;
			s2440INT->rSUBSRCPND = (0x2<<11);
			s2440INT->rSRCPND = BIT_CAM;
		
			if (s2440INT->rINTPND & BIT_CAM) s2440INT->rINTPND = BIT_CAM;

			return SYSINTR_CAM;
		}
		
		s2440INT->rINTSUBMSK |= (BIT_SUB_CAM_C | BIT_SUB_CAM_P);
		s2440INT->rINTMSK |= BIT_CAM;
		s2440INT->rSUBSRCPND = (BIT_SUB_CAM_C | BIT_SUB_CAM_P);
		s2440INT->rSRCPND = BIT_CAM;

		if (s2440INT->rINTPND & BIT_CAM)
		{
			s2440INT->rINTPND = BIT_CAM;
		}

		return SYSINTR_NOP;
	}
	else if(IntPendVal == INTSRC_IIC) 
	{
		s2440INT->rINTMSK |= BIT_IIC;
		s2440INT->rSRCPND = BIT_IIC;
		if (s2440INT->rINTPND & BIT_IIC) s2440INT->rINTPND = BIT_IIC;
//		RETAILMSG(1,(TEXT("IIC Interrupt\r\n")));
		return SYSINTR_IIC;
	}
	
	return(SYSINTR_NOP);
}

void UsbdClearEir(void)
{
	static volatile struct udcreg *s2440USBD = (volatile struct udcreg *)(0xB1200140);
	
	usbdShMem->usbdEir|=*(volatile BYTE *)&s2440USBD->EIR;
	usbdShMem->usbdUir|=*(volatile BYTE *)&s2440USBD->UIR;
	*(volatile BYTE *)&s2440USBD->EIR=usbdShMem->usbdEir;
	*(volatile BYTE *)&s2440USBD->UIR=usbdShMem->usbdUir;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级免费一区| 肉丝袜脚交视频一区二区| 亚洲成人精品一区| 国产盗摄精品一区二区三区在线 | 亚洲va欧美va国产va天堂影院| 石原莉奈在线亚洲三区| 粉嫩av一区二区三区粉嫩| 91麻豆精品国产自产在线| 中文字幕中文字幕中文字幕亚洲无线| 亚洲制服欧美中文字幕中文字幕| 国产精品69久久久久水密桃| 欧美精品视频www在线观看| 国产精品热久久久久夜色精品三区 | 中文字幕国产一区| 麻豆精品视频在线观看| 在线观看区一区二| 亚洲日本一区二区三区| 国产成人av网站| 精品久久久网站| 日本一区中文字幕| 精品视频一区二区不卡| ㊣最新国产の精品bt伙计久久| 久久精品国内一区二区三区| 欧美手机在线视频| 亚洲精品中文在线影院| 91免费精品国自产拍在线不卡| 久久综合网色—综合色88| 日韩精品久久久久久| 在线观看欧美精品| 一区二区三区在线观看国产| 99综合影院在线| 国产精品美女久久久久久久网站| 久久99精品久久久久久| 日韩女同互慰一区二区| 蜜乳av一区二区三区| 欧美一区二区视频在线观看| 日韩高清在线观看| 欧美一区日韩一区| 久久超碰97人人做人人爱| 欧美大胆一级视频| 国产电影一区二区三区| 国产精品免费网站在线观看| 成人美女视频在线观看18| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲一二三四久久| 欧美日韩成人一区| 免费观看久久久4p| 久久久99免费| 99在线精品视频| 一级中文字幕一区二区| 欧美日韩视频一区二区| 看电视剧不卡顿的网站| 精品国产一区二区三区久久久蜜月 | 国产精品久久网站| 91麻豆精品在线观看| 亚洲成人av资源| 91精品国产综合久久精品app | 国产激情一区二区三区| 中文字幕制服丝袜成人av| 色综合视频在线观看| 亚洲一区二区精品视频| 日韩精品资源二区在线| 成人小视频在线观看| 亚洲一区二区中文在线| 日韩欧美久久久| 成人avav影音| 亚洲一卡二卡三卡四卡无卡久久| 欧美一区日韩一区| 99在线视频精品| 日韩国产在线一| 国产精品久久毛片a| 欧美日韩二区三区| 国产美女娇喘av呻吟久久| 国产精品久久久久9999吃药| 欧美亚洲高清一区二区三区不卡| 美女精品一区二区| 樱花草国产18久久久久| 日韩免费在线观看| 91久久精品国产91性色tv| 国产一区二区主播在线| 洋洋av久久久久久久一区| 日韩一区二区中文字幕| 91啪在线观看| 国产一区二区美女诱惑| 日韩精品欧美精品| 国产精品夫妻自拍| 欧美α欧美αv大片| 欧美三级三级三级爽爽爽| 国产成人精品www牛牛影视| 亚洲一区在线观看视频| 国产日产亚洲精品系列| 777色狠狠一区二区三区| 色哟哟一区二区三区| 国产激情一区二区三区四区| 日韩国产欧美在线观看| 亚洲美女一区二区三区| 欧美国产精品中文字幕| 欧美xxxxx裸体时装秀| 欧美人狂配大交3d怪物一区| av一区二区三区黑人| 韩国av一区二区三区四区| 日韩国产一二三区| 日韩精品1区2区3区| 亚洲一区在线观看免费观看电影高清| 国产精品久久久一区麻豆最新章节| 久久综合九色综合97婷婷女人| 3751色影院一区二区三区| 日本高清不卡视频| 色琪琪一区二区三区亚洲区| 成人免费高清视频| 成人一二三区视频| 成人sese在线| 成人深夜福利app| 国产福利91精品一区| 国产精品1区2区| 成人亚洲一区二区一| 99久久综合精品| av激情成人网| 99国产精品99久久久久久| 99免费精品在线| 99精品视频一区二区| 91色综合久久久久婷婷| 91亚洲国产成人精品一区二三| 91丝袜美腿高跟国产极品老师| 99国产精品久久久久久久久久| 91色视频在线| 欧美视频在线观看一区二区| 欧美区在线观看| 日韩西西人体444www| 欧美videos中文字幕| 国产三级精品在线| 国产精品久久国产精麻豆99网站| 中文字幕一区免费在线观看| 亚洲精品国产a| 五月天中文字幕一区二区| 青娱乐精品在线视频| 国产精品亚洲专一区二区三区 | 亚洲成人av电影在线| 奇米亚洲午夜久久精品| 九色综合国产一区二区三区| 粉嫩aⅴ一区二区三区四区五区 | 欧美主播一区二区三区| 91精品久久久久久久91蜜桃| 精品1区2区在线观看| 亚洲欧美影音先锋| 亚洲中国最大av网站| 极品少妇xxxx精品少妇偷拍 | 国产精品免费免费| 亚洲午夜影视影院在线观看| 蜜臀91精品一区二区三区| 成人看片黄a免费看在线| 欧美亚州韩日在线看免费版国语版| 欧美一区二区大片| 国产精品成人免费精品自在线观看 | 欧美电影免费观看高清完整版在| 久久久精品免费网站| 亚洲色图欧洲色图婷婷| 日本亚洲欧美天堂免费| 99免费精品视频| 日韩精品一区二区三区蜜臀 | 亚洲综合免费观看高清完整版在线 | 日本美女一区二区| 成人激情综合网站| 欧美一区二区三区免费观看视频| 日本一区二区成人在线| 日日夜夜精品免费视频| 99国产精品久久| 久久久久久久久久久黄色| 亚洲一区二区美女| 北条麻妃国产九九精品视频| 日韩欧美亚洲另类制服综合在线| 亚洲欧洲制服丝袜| 国内精品在线播放| 制服丝袜av成人在线看| 《视频一区视频二区| 国产在线播放一区二区三区| 欧美日本免费一区二区三区| 亚洲视频资源在线| 国产成人免费视| 日韩一区二区免费电影| 亚洲成人av福利| 91精彩视频在线观看| 1000部国产精品成人观看| 国模无码大尺度一区二区三区| 欧美日韩一卡二卡三卡| 夜夜嗨av一区二区三区| 91年精品国产| 亚洲欧洲美洲综合色网| 成人丝袜高跟foot| 亚洲国产高清aⅴ视频| 国产一区二区三区电影在线观看| 日韩欧美在线观看一区二区三区| 亚洲午夜av在线| 欧美在线免费观看亚洲| 一区二区免费看| 色成人在线视频| 亚洲国产精品久久人人爱| 欧美色电影在线| 亚洲线精品一区二区三区| 欧美日韩久久久|