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

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

?? interrupt.c

?? 可以在ARM 架構下運行的的 DOS (和MS-DOS兼容),非常難得的一個源碼
?? C
字號:
/*************************************Seekfor Embedded DOS v1.0***************************************************
 ******                   ***          *****                                    ******     ****     ****** v1.0
**   **                    **         **  **                                     **  **   **  **   **   ** 
**   **                    **         **                                         **   ** **    **  **   ** 
**                         **         **                                         **   ** **    **  **      
 **       *****    *****   ** ****  *******   *****  ********            *****   **   ** **    **   **     
  ***    **   **  **   **  ** **      **     **   **   *** **           **   **  **   ** **    **    ***   
    **   *******  *******  ****       **     **   **   **               *******  **   ** **    **      **  
     **  **       **       *****      **     **   **   **               **       **   ** **    **       ** 
**   **  **       **       ** **      **     **   **   **               **       **   ** **    **  **   ** 
**   **  **   **  **   **  **  **     **     **   **   **               **   **  **  **   **  **   **   ** 
******    *****    *****  ********  ******    *****  ******              *****  ******     ****    ******  
<1)基本描述
	Seekfor Embedded DOS v1.0是嵌入式的一個類DOS操作系統,支持FAT16/FAT32.
<2)文件描述
	文件名:interrupt.c
	功能:中斷處理
<3>如需更新版本軟件,請聯系:
	QQ:82054357
	Mail:Seek_for@163.com
	MSN:sfrad32@hotmail.com
**************************************************************************************************************/
#ifndef __INTERRUPT_C__
#define __INTERRUPT_C__
#include "dos.h"
typedef void(*INTERRUPT)(int code);

static INTERRUPT interrups[32];

static void __irq handle_EINT0()
{
	rSRCPND|=1u<<0;
	rINTPND|=1u<<0;
	if(interrups[0])
	{
		interrups[0](0);
	}
}

static void __irq handle_EINT1()
{
	rSRCPND|=1u<<1;
	rINTPND|=1u<<1;
	if(interrups[1])
		interrups[1](1);
}
static void __irq handle_EINT2()
{
	rSRCPND|=1u<<2;
	rINTPND|=1u<<2;
	if(interrups[2])
		interrups[2](2);
}
static void __irq handle_EINT3()
{
	rSRCPND|=1u<<3;
	rINTPND|=1u<<3;
	if(interrups[3])
		interrups[3](3);
}
static void __irq handle_EINT4_7()
{
	int i=rEINTPEND&0xff;
	rEINTPEND|=0xff;
	rSRCPND|=1u<<4;
	rINTPND|=1u<<4;
	if(interrups[4])
		interrups[4](i);
}
static void __irq handle_EINT8_23()
{
	int i=rEINTPEND;
	int j,k;
	extern int SD_inserted;
	extern int SD_install();
#if(SUPPORT_SD==1)
	if(i&(1u<<18))
	{
		rGPGCON&=~(3u<<20);/*輸入狀態*/
		for(j=0;j<0x100;j++);
		k=(rGPGDAT>>10)&0x01;
		for(j=0;j<0x100;j++);
		j=(rGPGDAT>>10)&0x01;
		if(j==k)
		{
			SD_inserted=!SD_inserted;
			rEXTINT2&=~(0x0f<<8);
			if(!SD_inserted) /*拔出*/
			{
				rEXTINT2|=0x0a<<8;
				printf("SD Ejected!\n");
			}
			else
			{
				rEXTINT2|=0x0c<<8;
			//	if(SD_install())
				//	printf("install SD OK!\n");
				printf("SD inserted!\n");
			}
		}
	}
	rGPGCON|=2u<<20;
	for(j=0;j<0x100;j++);
#endif
	if(interrups[5])
	{
		interrups[5](i);
	}
	rEINTPEND|=0xffffff00;
	rSRCPND|=1u<<5;
	rINTPND|=1u<<5;
}

static void __irq handle_UNUSED6()
{
	rSRCPND|=1u<<6;
	rINTPND|=1u<<6;
	if(interrups[6])
	{
		interrups[6](0);
	}
}
static void __irq handle_BATFAULT()
{
	rSRCPND|=1u<<7;
	rINTPND|=1u<<7;
	if(interrups[7])
	{
		interrups[7](0);
	}
}
static void __irq handle_TICK()
{
	rSRCPND|=1u<<8;
	rINTPND|=1u<<8;
	if(interrups[8])
	{
		interrups[8](0);
	}
}
static void __irq handle_WDT()
{
	rSRCPND|=1u<<9;
	rINTPND|=1u<<9;
	if(interrups[9])
	{
		interrups[9](0);
	}
}
static void __irq handle_TIMER0()
{
	rSRCPND|=1u<<10;
	rINTPND|=1u<<10;
	if(interrups[10])
	{
		interrups[10](0);
	}
}
static void __irq handle_TIMER1()
{
	rSRCPND|=1u<<11;
	rINTPND|=1u<<11;
	if(interrups[11])
	{
		interrups[11](1);
	}
}
static void __irq handle_TIMER2()
{
	rSRCPND|=1u<<12;
	rINTPND|=1u<<12;
	if(interrups[12])
	{
		interrups[12](2);
	}
}
static void __irq handle_TIMER3()
{
	rSRCPND|=1u<<13;
	rINTPND|=1u<<13;
	if(interrups[13])
	{
		interrups[13](3);
	}
}
static void __irq handle_TIMER4()
{
	rSRCPND|=1u<<14;
	rINTPND|=1u<<14;
	if(interrups[14])
	{
		interrups[14](4);
	}
}
static void __irq handle_UART2()
{
	rSUBSRCPND|=(1u<<8)|(1u<<7)|(1u<<6);
	rSRCPND|=1u<<15;
	rINTPND|=1u<<15;
	if(interrups[15])
	{
		interrups[15](2);
	}
}
static void __irq handle_LCD()
{
	rSRCPND|=1u<<16;
	rINTPND|=1u<<16;
	if(interrups[16])
	{
		interrups[16](0);
	}
}
static void __irq handle_DMA0()
{
	rSRCPND|=1u<<17;
	rINTPND|=1u<<17;
	if(interrups[17])
	{
		interrups[17](0);
	}
}
static void __irq handle_DMA1()
{
	rSRCPND|=1u<<18;
	rINTPND|=1u<<18;
	if(interrups[18])
	{
		interrups[18](1);
	}
}
static void __irq handle_DMA2()
{
	rSRCPND|=1u<<19;
	rINTPND|=1u<<19;
	if(interrups[19])
	{
		interrups[19](2);
	}
}
static void __irq handle_DMA3()
{
	rSRCPND|=1u<<20;
	rINTPND|=1u<<20;
	if(interrups[20])
	{
		interrups[20](3);
	}
}
static void __irq handle_SDI()
{
	rSRCPND|=1u<<21;
	rINTPND|=1u<<21;
	rSDIDSTA|=1u<<9;
	if(interrups[21])
	{
		interrups[21](0);
	}
}
static void __irq handle_SPI0()
{
	rSRCPND|=1u<<22;
	rINTPND|=1u<<22;
	if(interrups[22])
	{
		interrups[22](0);
	}
}
static void __irq handle_UART1()
{
	rSUBSRCPND|=(1u<<5)|(1u<<4)|(1u<<3);
	rSRCPND|=1u<<23;
	rINTPND|=1u<<23;
	if(interrups[23])
	{
		interrups[23](1);
	}
}
static void __irq handle_UNUSED24()
{
	rSRCPND|=1u<<24;
	rINTPND|=1u<<24;
	if(interrups[24])
	{
		interrups[24](0);
	}
}
static void __irq handle_USBD()
{
	rSRCPND|=1u<<25;
	rINTPND|=1u<<25;
	rUSB_INT_REG|=0x07;
	rEP_INT_REG|=0xff;
	if(interrups[25])
	{
		interrups[25](0);
	}
}
static void __irq handle_USBH()
{
	rSRCPND|=1u<<26;
	rINTPND|=1u<<26;
	rUSB_INT_REG|=0x07;
	rEP_INT_REG|=0xff;
	if(interrups[26])
	{
		interrups[26](1);
	}
}
static void __irq handle_IIC()
{
	rSRCPND|=1u<<27;
	rINTPND|=1u<<27;
	if(interrups[27])
	{
		interrups[27](0);
	}
}
static void __irq handle_UART0()
{
	rSUBSRCPND|=(1u<<2)|(1u<<1)|(1u<<0);
	rSRCPND|=1u<<28;
	rINTPND|=1u<<28;
	if(interrups[28])
	{
		interrups[28](0);
	}
}
static void __irq handle_SPI1()
{
	rSRCPND|=1u<<29;
	rINTPND|=1u<<29;
	if(interrups[29])
	{
		interrups[29](1);
	}
}

static void __irq handle_RTC()
{
	rSRCPND|=1u<<30;
	rINTPND|=1u<<30;
	if(interrups[30])
	{
		interrups[30](0);
	}
}
static void __irq handle_ADC()
{
	rSUBSRCPND|=(1u<<10);
	rSRCPND|=1u<<31;
	rINTPND|=1u<<31;
	if(interrups[31])
	{
		interrups[31](0);
	}
}

void _enable()
{
	rINTSUBMSK=(1u<<9);
	rINTMSK=(1u<<6|1u<<24);/*允許除UNUSED6和UNUSED24外所有中斷*/
}

void _disable()
{
	rINTSUBMSK=0xffffffff;
	rINTMSK=0xffffffff;
}

void*_getvect(int irq)
{
	if(irq>31) return (void*)0;
	return (void*)interrups[irq];
}

void*_setvect(int irq,void*irq_proc)
{
	void*ret;
	if(irq>31) return (void*)0;
	ret=getvect(irq);
	interrups[irq]=(INTERRUPT)irq_proc;
	return ret;
}

void INTERRUPT_init()
{
	int i;
	rINTMOD=0x00000000;/*全部都是IRQ模式*/
	pISR_EINT0=(unsigned int)handle_EINT0;
	pISR_EINT1=(unsigned int)handle_EINT1;
	pISR_EINT2=(unsigned int)handle_EINT2;
	pISR_EINT3=(unsigned int)handle_EINT3;
	pISR_EINT4_7=(unsigned int)handle_EINT4_7;
	pISR_EINT8_23=(unsigned int)handle_EINT8_23;
	pISR_NOTUSED6=(unsigned int)handle_UNUSED6;
	pISR_BAT_FLT=(unsigned int)handle_BATFAULT;
	pISR_TICK=(unsigned int)handle_TICK;
	pISR_WDT=(unsigned int)handle_WDT;
	pISR_TIMER0=(unsigned int)handle_TIMER0;
	pISR_TIMER1=(unsigned int)handle_TIMER1;
	pISR_TIMER2=(unsigned int)handle_TIMER2;
	pISR_TIMER3=(unsigned int)handle_TIMER3;
	pISR_TIMER4=(unsigned int)handle_TIMER4;
	pISR_UART2=(unsigned int)handle_UART2;
	pISR_LCD=(unsigned int)handle_LCD;
	pISR_DMA0=(unsigned int)handle_DMA0;
	pISR_DMA1=(unsigned int)handle_DMA1;
	pISR_DMA2=(unsigned int)handle_DMA2;
	pISR_DMA3=(unsigned int)handle_DMA3;
	pISR_SDI=(unsigned int)handle_SDI;
	pISR_SPI0=(unsigned int)handle_SPI0;
	pISR_UART1=(unsigned int)handle_UART1;
	pISR_NOTUSED24=(unsigned int)handle_UNUSED24;
	pISR_USBD=(unsigned int)handle_USBD;
	pISR_USBH=(unsigned int)handle_USBH;
	pISR_IIC=(unsigned int)handle_IIC;
	pISR_UART0=(unsigned int)handle_UART0;
	pISR_SPI1=(unsigned int)handle_SPI1;
	pISR_RTC=(unsigned int)handle_RTC;
	pISR_ADC=(unsigned int)handle_ADC;
	
	
	for(i=0;i<32;i++)
		interrups[i]=(INTERRUPT)0;
	enable();
}	


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲18女电影在线观看| 亚洲美女免费视频| 欧美一区二区二区| 欧美三级视频在线观看| 欧美在线一区二区三区| 91九色最新地址| 色综合激情五月| 色综合久久久久综合99| 色综合天天做天天爱| www.久久久久久久久| 色综合天天做天天爱| 91美女片黄在线观看| 在线观看欧美黄色| 欧美日韩一级视频| 日韩欧美国产系列| 久久久久久99久久久精品网站| 日韩欧美一二三四区| 久久香蕉国产线看观看99| 久久久久青草大香线综合精品| 久久精品综合网| 国产精品久久久久四虎| 亚洲一区二区在线视频| 日韩av中文字幕一区二区三区| 久久99久久久久| 国产一区在线精品| 一本色道久久综合亚洲aⅴ蜜桃| 欧美性大战久久久久久久蜜臀| 在线播放91灌醉迷j高跟美女 | 日本一区二区成人| 亚洲美女电影在线| 美日韩黄色大片| 国产成人av影院| 欧洲另类一二三四区| 日韩美一区二区三区| 国产精品视频一区二区三区不卡| 亚洲精品综合在线| 美日韩一区二区| 97国产一区二区| 欧美岛国在线观看| 椎名由奈av一区二区三区| 日韩精品一区第一页| 国产成人在线影院| 欧美日韩一区二区在线观看视频| 久久综合久色欧美综合狠狠| 亚洲精品日韩综合观看成人91| 日产国产欧美视频一区精品| 成人精品视频.| 欧美一区二区三区四区久久| 亚洲视频 欧洲视频| 久久精品免费观看| 91美女在线视频| 久久品道一品道久久精品| 亚洲福利视频三区| 成人中文字幕在线| 日韩精品一区二区三区中文精品 | 自拍偷拍欧美激情| 蜜臀va亚洲va欧美va天堂| 91蝌蚪国产九色| 久久人人爽人人爽| 久久国产精品99久久久久久老狼 | 日本视频一区二区| 欧美亚洲综合一区| 亚洲男人天堂一区| 久久精品国产999大香线蕉| 久久免费国产精品| 国产婷婷色一区二区三区四区 | 亚洲精品视频在线| 成人性生交大片免费看中文| 欧美成人福利视频| 天天综合天天综合色| 欧洲日韩一区二区三区| 中文字幕一区二区三区不卡在线 | 国产精品天干天干在线综合| 91免费视频大全| 国产婷婷精品av在线| 亚洲成人一二三| 欧洲激情一区二区| 一区二区三区四区av| 欧美午夜免费电影| 日韩经典中文字幕一区| 欧美日韩精品一区二区在线播放| 国产精品美女www爽爽爽| 99久久久无码国产精品| 国产精品国产三级国产普通话蜜臀 | 一区二区三区精品视频| 色哟哟在线观看一区二区三区| 亚洲精品高清视频在线观看| 欧美日韩亚洲丝袜制服| 日韩avvvv在线播放| 久久综合九色综合欧美就去吻 | 亚洲一区二区三区免费视频| 欧美性大战久久| 免费视频最近日韩| 久久久久久免费| 91蜜桃视频在线| 午夜精品在线视频一区| www激情久久| 色综合久久中文综合久久97| 日韩电影在线免费看| 久久亚洲影视婷婷| 在线观看一区日韩| 精品综合久久久久久8888| 国产精品素人一区二区| 欧美午夜寂寞影院| 精品一区二区三区免费观看 | 91豆麻精品91久久久久久| 亚洲不卡av一区二区三区| 亚洲精品一区二区三区在线观看| 成人国产亚洲欧美成人综合网 | 成人亚洲精品久久久久软件| 亚洲综合一二区| 久久久欧美精品sm网站| 欧美日韩一区二区在线视频| 岛国av在线一区| 奇米在线7777在线精品| 亚洲精品午夜久久久| xvideos.蜜桃一区二区| 欧美日韩一区二区三区在线看 | 1区2区3区国产精品| 91精品国产全国免费观看| 99精品视频在线观看免费| 日韩极品在线观看| 亚洲日本在线a| 久久久国产综合精品女国产盗摄| 欧美日韩三级一区二区| 成人av午夜影院| 国产精品乡下勾搭老头1| 视频一区视频二区中文| 中文字幕佐山爱一区二区免费| 欧美zozo另类异族| 在线播放亚洲一区| 欧美日韩免费观看一区三区| 99在线热播精品免费| 国模大尺度一区二区三区| 免费成人结看片| 亚洲va欧美va国产va天堂影院| 最新国产精品久久精品| 国产欧美日韩精品a在线观看| 日韩精品中文字幕一区二区三区| 欧美喷潮久久久xxxxx| 色综合色狠狠天天综合色| 波多野结衣亚洲一区| 国产麻豆一精品一av一免费 | 亚洲午夜在线电影| 亚洲欧洲综合另类在线| 亚洲欧美日韩中文播放 | 国产亚洲欧美在线| 久久久久久久综合日本| 久久久91精品国产一区二区精品| 欧美xxxxxxxx| 久久综合久久综合九色| 国产亚洲精品aa| 国产婷婷色一区二区三区 | 欧美日韩视频一区二区| 欧美三级视频在线观看 | 九一九一国产精品| 毛片av一区二区| 韩国女主播成人在线观看| 久久99久久久久| 国产精品99久久久久久久女警| 国产精品一区免费在线观看| 国产精品中文字幕日韩精品| 国产精品自拍在线| 99精品国产视频| 在线免费观看日韩欧美| 欧美日精品一区视频| 欧美一区二区三区系列电影| 日韩免费视频一区| 国产女主播视频一区二区| 日韩一区在线播放| 亚洲成人av一区| 国内精品久久久久影院一蜜桃| 高清不卡一区二区| 在线精品国精品国产尤物884a| 欧美久久久影院| 国产精品日韩精品欧美在线| 亚洲精品ww久久久久久p站| 午夜欧美2019年伦理| 国产乱理伦片在线观看夜一区| 91亚洲午夜精品久久久久久| 欧美丰满一区二区免费视频 | 亚洲三级免费观看| 丝袜美腿高跟呻吟高潮一区| 国产精品99久| 在线观看91视频| 国产日韩三级在线| 亚洲成av人在线观看| 国产麻豆精品theporn| 色综合天天视频在线观看| 日韩欧美国产一区在线观看| 亚洲色欲色欲www在线观看| 免费成人在线观看| 色综合久久久久综合体桃花网| 精品盗摄一区二区三区| 一区二区日韩av| 成人黄色免费短视频| 日韩视频一区二区在线观看| 亚洲欧洲日本在线| 国产一区二区三区精品欧美日韩一区二区三区 | 成人午夜激情影院|