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

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

?? sysata.c

?? pl2200 zfc 開(kāi)發(fā)全部文檔,源碼,
?? C
字號(hào):
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機(jī)發(fā)展有限公司
**                                     研    究    所
**                                        產(chǎn)品一部 
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: IDE.c
**創(chuàng)   建   人: 周立山
**最后修改日期: 
**描        述: 與ZLG/CF驅(qū)動(dòng)的接口函數(shù)。
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創(chuàng)建人: 周立山
** 版  本: v1.0 
** 日 期: 
** 描 述: 完整版
**
**--------------當(dāng)前版本修訂------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"

/*********************************************************************************************************
** 函數(shù)名稱(chēng): SYS_BusIni
** 功能描述: ATA總線初始化
** 輸   入: 無(wú)
** 輸   出: 無(wú)
** 全局變量: 無(wú) 
** 調(diào)用模塊: 無(wú)
********************************************************************************************************/
void SYS_BusIni(void)
{

	PINSEL1 &= 0xffffc003;												/*使用到的P0口GPIO引腳設(shè)置*/
   	PINSEL2 = (PINSEL2 & 0x0f8cf9c0) | 0x00000014;						/*使用到的P1及P2口GPIO引腳設(shè)置*/
	
	IO0DIR &= (~(IDE_DMAREQ + IDE_INTRQ));								/*P0相關(guān)輸入引腳初始化*/
	IO0DIR |= (IDE_RST + IDE_WR + IDE_RD);								/*P0相關(guān)輸出引腳初始化*/
	IO1DIR &= (~(IDE_DMACK + IDE_IOCS16 + IDE_PDIAG));					/*P1相關(guān)輸入引腳初始化*/
	IO1DIR |= (IDE_A0 + IDE_A1 +IDE_A2 + IDE_CS0 + IDE_CS1 + IDE_CSEL);	/*P1相關(guān)輸出引腳初始化*/
	IO2DIR &= (~ATA_DATA);												/*數(shù)據(jù)總線初始化為輸入*/ 


	IO0SET = IDE_RST + IDE_WR + IDE_RD;									/*CF卡復(fù)位引腳及讀寫(xiě)信號(hào)引腳初始輸出高電平*/ 
	IO1SET = IDE_CS0 + IDE_CS1;											/*CF卡片選初始化輸入高電平*/
	IO1CLR = IDE_A0 + IDE_A1 +IDE_A2 + IDE_CSEL;						/*地址初始化,并設(shè)置當(dāng)前CF卡為主盤(pán)*/

}
/*********************************************************************************************************
** 函數(shù)名稱(chēng): SYS_WaitInUS
** 功能描述: 延時(shí)等級(jí)約1微秒函數(shù),該函數(shù)根據(jù)系統(tǒng)時(shí)間不同與不同,但不應(yīng)少到1微秒。
** 輸   入: times,延時(shí)時(shí)間等級(jí)
** 輸   出: 無(wú)
** 全局變量: 無(wú)
** 調(diào)用模塊: 無(wú)
********************************************************************************************************/
void SYS_WaitInUS(uint32 times)
{	uint32 c;
	for(;0<times;times--)
		for(c=0;c<4;c++);
}

/*********************************************************************************************************
** 函數(shù)名稱(chēng): ATA_HaveCard
** 功能描述: 判斷CF卡是否連接到,CF卡的CD1、CD2引腳與GND直接相接,可以通過(guò)該引腳判斷CF卡是否存在
**			 (對(duì)于IDE硬盤(pán)也有也多共地的引腳,也可以像CF卡那樣檢測(cè)但是這點(diǎn)ATA規(guī)范中并沒(méi)有說(shuō)明)。
**			 如果硬件上沒(méi)有相關(guān)的檢測(cè),則應(yīng)一直返回TRUE。
** 輸   入: 無(wú)
** 輸   出: TRUE,如果有設(shè)備存在,不管設(shè)備是主或是從,或可以返回TRUE(1);
**			 FALSE,如果設(shè)備不存在,即返回FALSE(0)
** 全局變量: 無(wú)
** 調(diào)用模塊: 無(wú)
********************************************************************************************************/
uint8 SYS_HaveCard(void)
{

#define	DEVICE_IS_ATTACHED 	0		/*硬件設(shè)備(EasyARM2200開(kāi)發(fā)板)沒(méi)有檢測(cè),設(shè)備是否存在*/
/*假設(shè)使用LPC2210的P1.23(有10K的電上電阻)引腳的GPIO輸入方式檢測(cè)設(shè)備是否存在,可以如下操作*/
//#define	DEVICE_IS_ATTACHED  (IO1PIN & (1<<23))

	if(DEVICE_IS_ATTACHED)			/*如果DEVICE_IS_ATTACHED為0卻有設(shè)備存在,為1即沒(méi)有*/
		return FALSE;				/*DEVICE_IS_ATTACHED不為0,沒(méi)有設(shè)備存在,返回FALSE*/
	else
		return TRUE;				/*DEVICE_IS_ATTACHED為0,有設(shè)備存在,返回TRUE*/
}



#ifndef UCOSII
#define     NoInt           0x80
/* 關(guān)中斷 */
    __inline OS_ENTER_CRITICAL(void)
{
    __asm
    {
        MRS     R0, CPSR
        ORR     R0, R0, #NoInt
        MSR     CPSR_c, R0
    }
}
/* 開(kāi)中斷 */
    __inline OS_EXIT_CRITICAL(void)
{
 	__asm
	{
		MRS     R0, CPSR
	 	BIC     R0, R0, #NoInt
	   	MSR     CPSR_c, R0
	}	    
}
#endif

/*********************************************************************************************************
** 函數(shù)名稱(chēng): SYS_PortIn
** 功能描述: 從ATA設(shè)備指定的寄存器中讀出一個(gè)字的數(shù)據(jù),有些寄存器只有一個(gè)字節(jié)數(shù)有效。
** 輸   入: reg 寄存器名稱(chēng)
** 輸   出: 讀出的數(shù)據(jù)
** 全局變量: 無(wú)
** 調(diào)用模塊: OS_ENTER_CRITICAL(),關(guān)中斷
**			 OS_EXIT_CRITICAL(),清中斷
********************************************************************************************************/
#ifdef ATA_BUS_AT_8bit
uint16 SYS_PortIn(uint32 reg)
{
	uint16 res ;
    OS_ENTER_CRITICAL();  						/*關(guān)中斷*/  
    IO2DIR = IO2DIR & MASK_DATA;				/*定義輸出口其它為輸入(ATA_DATA為輸入)*/
    IO1CLR = Addr_CS_at_P1;						/*地址與片選信號(hào)都為低電平*/ 
    IO1SET = reg;								/*地址高電平位輸出,完成地址的設(shè)置*/
    /*讀低字節(jié)*/
    IO0CLR = IDE_RD;							/*讀信號(hào)腳置低*/
    res = (uint8)((IO2PIN&ATA_DATA) >>16);		/*讀取數(shù)據(jù)*/
	IO0SET = IDE_RD;							/*使讀信號(hào)為高*/
    /*讀高字節(jié)*/
    if(reg==ATA_REG_DATA)						/*如果讀數(shù)據(jù)寄存器,讀高字節(jié)*/
    {	
    	IO0CLR = IDE_RD;						/*讀信號(hào)腳置低*/
    	res += (uint16)((IO2PIN&ATA_DATA)>>8);	/*讀取數(shù)據(jù)*/
		IO0SET = IDE_RD;						/*使讀信號(hào)為高*/
    }
    
    IO1SET = Addr_CS_at_P1;						/*輸出控制信號(hào)置高*/  
	OS_EXIT_CRITICAL();							/*開(kāi)中斷*/
    return res;									/*返回?cái)?shù)值*/
}
#else
uint16 SYS_PortIn(uint32 reg)
{
	uint16 res ;

   	OS_ENTER_CRITICAL();  						/*關(guān)中斷*/
    IO2DIR = IO2DIR & MASK_DATA;					/*定義輸出口其它為輸入(ATA_DATA為輸入)*/
    IO1CLR = Addr_CS_at_P1;						/*控所硬盤(pán)引腳信號(hào)輸出(輸出高電平)*/
    IO1SET = reg;								/*控所硬盤(pán)引腳信號(hào)輸出(輸出低電平)*/
    
    IO0CLR = IDE_RD;							/*讀信號(hào)腳置低*/
    res = (uint16)(IO2PIN >>16);				/*讀取數(shù)據(jù)*/
	IO0SET = IDE_RD;
    
    IO1SET = Addr_CS_at_P1;						/*輸出控制信號(hào)置高*/  
	OS_EXIT_CRITICAL();							/*開(kāi)中斷*/
    return res;
}
#endif

/*********************************************************************************************************
** 函數(shù)名稱(chēng): SYS_PortIn
** 功能描述: 向ATA設(shè)備指定的寄存器中寫(xiě)入一個(gè)字的數(shù)據(jù),有些寄存器只有一個(gè)字節(jié)數(shù)有效。
** 輸   入: reg 寄存器名稱(chēng)
** 輸   出: 無(wú)
** 全局變量: 無(wú)
** 調(diào)用模塊: OS_ENTER_CRITICAL(),關(guān)中斷
**			 OS_EXIT_CRITICAL(),清中斷
********************************************************************************************************/
#ifdef ATA_BUS_AT_8bit
void SYS_PortOut(uint32 reg, uint16 data)
{	 
	OS_ENTER_CRITICAL();					/*關(guān)中斷*/
	IO2DIR = IO2DIR | ATA_DATA;				/*設(shè)置數(shù)據(jù)總線為輸出*/
    IO1CLR = Addr_CS_at_P1;					/*地址與片選信號(hào)都為低電平*/ 
    IO1SET = reg;							/*地址高電平位輸出,完成地址的設(shè)置*/
    /*寫(xiě)低字節(jié)*/
   	IO2CLR = ATA_DATA;						/*數(shù)據(jù)總線上輸出全為低電平*/
   	IO2SET = data<<16;						/*輸出數(shù)據(jù)高位*/
   	IO0CLR = IDE_WR;						/*寫(xiě)信號(hào)為低電平,保持大于165nS*/ 
    IO0SET = IDE_WR;						/*寫(xiě)信號(hào)腳置高[與低>162ns]*/
	
	if(reg==ATA_REG_DATA)					/*如果訪問(wèn)的寄存器為16位的數(shù)據(jù)寄存器*/
	{	/*寫(xiě)高字節(jié)*/
   		IO2CLR = ATA_DATA;					/*數(shù)據(jù)線輸出全為低電平*/
    	IO2SET = data<<8;					/*輸出高電平的數(shù)據(jù)位*/
   	 	IO0CLR = IDE_WR;					/*寫(xiě)信號(hào)為低電平,保持大于165nS*/ 
    	IO0SET = IDE_WR;					/*寫(xiě)信號(hào)腳置高[與低>162ns]*/
   	}
   	 
    IO1SET = Addr_CS_at_P1;					/*輸出控制信號(hào)置高*/
    IO2DIR &= MASK_DATA;						/*使數(shù)據(jù)線為輸入,降低功耗*/  
	OS_EXIT_CRITICAL();						/*開(kāi)中斷*/
}
#else
void SYS_PortOut(uint32 reg, uint16 data)
{	
	OS_ENTER_CRITICAL();					/*關(guān)中斷*/
	IO2DIR = IO2DIR | ATA_DATA;				/*設(shè)置數(shù)據(jù)總線為輸出*/
    IO1CLR = Addr_CS_at_P1;					/*地址與片選信號(hào)都為低電平*/ 
    IO1SET = reg;							/*地址高電平位輸出,完成地址的設(shè)置*/
    
    IO2CLR = ATA_DATA;						/*數(shù)據(jù)總線上輸出全為低電平*/
    IO2SET = data<<16;						/*輸出數(shù)據(jù)高位*/
   	
   	IO0CLR = IDE_WR;						/*寫(xiě)信號(hào)為低電平,保持大于165nS*/ 
    IO0SET = IDE_WR;						/*寫(xiě)信號(hào)腳置高[與低>162ns]*/
    
    IO1SET = Addr_CS_at_P1;					/*輸出控制信號(hào)置高*/
    IO2DIR &= MASK_DATA;						/*使數(shù)據(jù)線為輸入,降低功耗*/  
	OS_EXIT_CRITICAL();						/*開(kāi)中斷*/
}
#endif


/*********************************************************************************************************
** 函數(shù)名稱(chēng): SYS_IdeHardReset
** 功能描述: ATA設(shè)備硬件復(fù)位
** 輸   入: 無(wú)
** 輸   出: 無(wú)
** 全局變量: 無(wú)
** 調(diào)用模塊: SYS_WaitInUS(),等待微秒函數(shù)。
********************************************************************************************************/
void SYS_IdeHardReset(void)
{
    IOCLR = IDE_RST; 					/*復(fù)位引腳置低    */
    SYS_WaitInUS(30); 					/*延時(shí)大于25微秒  */
  	IOSET = IDE_RST; 					/*復(fù)位引腳置高    */
   	
   	SYS_WaitInUS(5000);  				/*延時(shí)大于2毫秒,設(shè)備通常在480ms內(nèi)完成硬件初始化和自診斷*/
										
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产精品久久久| 国产亚洲精品超碰| 在线观看三级视频欧美| 99精品欧美一区| 成人激情免费视频| 成人黄色av电影| av电影天堂一区二区在线| 成人免费视频播放| 91网站最新地址| 色综合久久中文综合久久牛| 97精品超碰一区二区三区| 色国产综合视频| 欧美日韩国产影片| 欧美一级淫片007| 精品国产91乱码一区二区三区 | 亚洲欧美经典视频| 成人欧美一区二区三区视频网页| ㊣最新国产の精品bt伙计久久| 国产精品另类一区| 亚洲欧美一区二区三区国产精品| 亚洲午夜久久久久久久久电影院 | 天堂成人免费av电影一区| 日韩国产精品久久久久久亚洲| 美国十次综合导航| 国产91高潮流白浆在线麻豆| av色综合久久天堂av综合| 在线观看精品一区| 欧美一区二区三区小说| 国产午夜精品理论片a级大结局| 欧美国产日韩精品免费观看| 一区二区三区波多野结衣在线观看 | 18涩涩午夜精品.www| 亚洲美女免费在线| 手机精品视频在线观看| 国产精品中文字幕日韩精品 | 在线看日本不卡| 欧美成人精品1314www| 中文字幕乱码日本亚洲一区二区| 亚洲图片欧美激情| 男男成人高潮片免费网站| 国产成人av自拍| 欧美精品一级二级三级| 国产亚洲美州欧州综合国| 一区二区成人在线| 美女久久久精品| av电影天堂一区二区在线观看| 欧美裸体bbwbbwbbw| 中日韩免费视频中文字幕| 亚洲一级不卡视频| 国产精品一区二区黑丝| 欧美在线不卡一区| 久久久久久亚洲综合| 亚洲综合免费观看高清完整版| 久久国产精品99精品国产| 91麻豆国产精品久久| 精品国产人成亚洲区| 亚洲精品你懂的| 久久成人18免费观看| 色综合久久88色综合天天6| 精品福利av导航| 亚洲不卡一区二区三区| 成人激情开心网| 日韩美女主播在线视频一区二区三区| 亚洲三级在线免费| 国产精品资源网| 日韩亚洲电影在线| 亚洲高清视频在线| av爱爱亚洲一区| 精品久久一区二区| 午夜视频在线观看一区二区| 成人av午夜电影| 精品99一区二区| 免费观看成人av| 欧美日韩午夜精品| 艳妇臀荡乳欲伦亚洲一区| 国产成人免费9x9x人网站视频| 欧美一区二区网站| 午夜视频久久久久久| 在线视频国内自拍亚洲视频| 中文成人综合网| 国产美女精品人人做人人爽| 日韩午夜中文字幕| 日本中文字幕不卡| 欧美精品三级在线观看| 一二三四区精品视频| 色综合久久综合网| 亚洲欧美一区二区三区孕妇| 成人免费精品视频| 国产欧美一区二区精品婷婷 | 91在线精品一区二区三区| 日韩在线一二三区| 欧美三级午夜理伦三级中视频| 国产精品国产三级国产普通话三级| 国产裸体歌舞团一区二区| 精品伦理精品一区| 老司机精品视频线观看86| 91精品国产色综合久久不卡电影 | 成人激情综合网站| 国产精品丝袜91| 成人午夜短视频| 国产精品丝袜久久久久久app| 高清av一区二区| 国产精品久久久久久久久免费桃花 | 欧美电影免费观看高清完整版在| 日韩专区在线视频| 日韩欧美一区在线观看| 蜜桃一区二区三区四区| 日韩精品一区二区三区在线 | 蜜臀av性久久久久蜜臀aⅴ流畅| 制服丝袜中文字幕一区| 亚洲二区在线视频| 91 com成人网| 免费观看在线综合| 久久久久久久av麻豆果冻| 国产黄色91视频| 中文字幕一区日韩精品欧美| 色天天综合久久久久综合片| 亚洲电影你懂得| 日韩精品一区二区三区四区| 国产精品一区在线观看乱码| 欧美高清在线精品一区| 97久久精品人人做人人爽| 亚洲一级片在线观看| 亚洲三级免费观看| 91久久人澡人人添人人爽欧美| 五月天丁香久久| 欧美xxxxx牲另类人与| 国产成人免费高清| 亚洲欧美激情一区二区| 欧美日韩中字一区| 蜜桃视频免费观看一区| 久久精品亚洲国产奇米99| av在线综合网| 午夜久久久影院| 精品国产乱码久久久久久1区2区 | 日韩午夜在线观看视频| 国产传媒欧美日韩成人| 亚洲天堂免费在线观看视频| 欧美情侣在线播放| 国产经典欧美精品| 一区二区三区日韩欧美| 538prom精品视频线放| 国产精品一区二区免费不卡 | 久久久综合激的五月天| 91色porny在线视频| 亚洲一区免费观看| 精品国偷自产国产一区| 99精品久久只有精品| 日韩**一区毛片| 日韩一区在线看| 日韩一区二区在线免费观看| www.成人网.com| 免费在线观看一区二区三区| 国产精品美女久久福利网站| 欧美日韩国产免费一区二区| 国产高清亚洲一区| 午夜精品福利一区二区三区蜜桃| 国产亚洲福利社区一区| 欧美日韩一区二区三区视频| 国产成人精品免费一区二区| 视频一区在线播放| 亚洲特黄一级片| 精品国产乱码久久久久久久久| 欧美性xxxxxx少妇| 成人综合日日夜夜| 紧缚奴在线一区二区三区| 亚洲一卡二卡三卡四卡无卡久久 | 青娱乐精品在线视频| 成人免费在线观看入口| 欧美成人r级一区二区三区| 在线观看日产精品| 日韩欧美另类在线| 在线一区二区三区四区| 国产不卡免费视频| 久久av资源站| 日本中文字幕一区二区有限公司| 亚洲同性同志一二三专区| 久久久久国产一区二区三区四区| 欧美人动与zoxxxx乱| 91黄色免费观看| 成人av网址在线| 国产呦萝稀缺另类资源| 欧美日韩一级大片网址| 欧美一区永久视频免费观看| 99久久精品免费看| 亚洲成人手机在线| 国产精品久久久久久久久免费樱桃| 日韩精品一区二区三区视频播放| 91福利在线播放| 91麻豆福利精品推荐| 99亚偷拍自图区亚洲| 国产成人啪免费观看软件| 精品亚洲成a人| 蜜桃av一区二区三区| 午夜久久久影院| 天天综合天天做天天综合| 亚洲第一久久影院| 亚洲成人在线观看视频| 亚洲第一福利一区| 午夜精品一区二区三区三上悠亚|