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

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

?? sysata.c

?? ZLG_CF與ZLG_FS例子,在uCos-II編程通過(guò)
?? 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總線(xiàn)初始化
** 輸   入: 無(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ù)總線(xiàn)初始化為輸入*/ 


	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ù)總線(xiàn)為輸出*/
    IO1CLR = Addr_CS_at_P1;					/*地址與片選信號(hào)都為低電平*/ 
    IO1SET = reg;							/*地址高電平位輸出,完成地址的設(shè)置*/
    /*寫(xiě)低字節(jié)*/
   	IO2CLR = ATA_DATA;						/*數(shù)據(jù)總線(xiàn)上輸出全為低電平*/
   	IO2SET = data<<16;						/*輸出數(shù)據(jù)高位*/
   	IO0CLR = IDE_WR;						/*寫(xiě)信號(hào)為低電平,保持大于165nS*/ 
    IO0SET = IDE_WR;						/*寫(xiě)信號(hào)腳置高[與低>162ns]*/
	
	if(reg==ATA_REG_DATA)					/*如果訪(fǎng)問(wèn)的寄存器為16位的數(shù)據(jù)寄存器*/
	{	/*寫(xiě)高字節(jié)*/
   		IO2CLR = ATA_DATA;					/*數(shù)據(jù)線(xiàn)輸出全為低電平*/
    	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ù)線(xiàn)為輸入,降低功耗*/  
	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ù)總線(xiàn)為輸出*/
    IO1CLR = Addr_CS_at_P1;					/*地址與片選信號(hào)都為低電平*/ 
    IO1SET = reg;							/*地址高電平位輸出,完成地址的設(shè)置*/
    
    IO2CLR = ATA_DATA;						/*數(shù)據(jù)總線(xiàn)上輸出全為低電平*/
    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ù)線(xiàn)為輸入,降低功耗*/  
	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一区二区三区免费野_久草精品视频
亚洲人成7777| 亚洲丶国产丶欧美一区二区三区| 91丨porny丨中文| 日本不卡一区二区| 国产精品美女久久久久久2018 | 亚洲gay无套男同| 欧美国产日本视频| 精品精品欲导航| 色爱区综合激月婷婷| 国产白丝精品91爽爽久久| 日韩不卡一区二区三区| 亚洲激情自拍偷拍| 国产精品国产三级国产aⅴ原创 | 久久精品人人做人人综合| 欧美三级日韩三级国产三级| 成人黄色国产精品网站大全在线免费观看| 日韩在线a电影| 亚洲gay无套男同| 亚洲免费成人av| 亚洲视频在线一区观看| 国产亚洲精品bt天堂精选| 欧美va日韩va| 欧美大度的电影原声| 欧美一级欧美一级在线播放| 在线观看日韩国产| 91免费在线视频观看| 97se亚洲国产综合自在线观| 成熟亚洲日本毛茸茸凸凹| 国产中文一区二区三区| 国产在线播放一区三区四| 九色综合狠狠综合久久| 日本欧美一区二区| 麻豆91精品91久久久的内涵| 日韩成人一区二区| 美女爽到高潮91| 狠狠色伊人亚洲综合成人| 精品无码三级在线观看视频| 九九国产精品视频| 国产精品99久久久| 国产精品小仙女| 国产精品99久久久久久似苏梦涵| 国产精品99久久久久久久女警| 国产乱人伦精品一区二区在线观看 | 亚洲欧美视频在线观看| 自拍偷拍亚洲激情| 亚洲老司机在线| 亚洲国产日韩在线一区模特| 亚洲国产精品久久久男人的天堂| 午夜激情一区二区三区| 亚洲va在线va天堂| 久久国产尿小便嘘嘘| 国产精品亚洲专一区二区三区| 高清不卡一二三区| 91亚洲精品一区二区乱码| 欧洲视频一区二区| 91精品国产全国免费观看| 欧美成人免费网站| 国产亚洲一二三区| 亚洲日本一区二区三区| 午夜久久久久久电影| 美国三级日本三级久久99| 国产成人欧美日韩在线电影| 91猫先生在线| 欧美一区二区啪啪| 中文字幕精品综合| 一区二区三区产品免费精品久久75| 亚洲成a人片综合在线| 久久疯狂做爰流白浆xx| 成人va在线观看| 欧美色图免费看| 精品毛片乱码1区2区3区 | 精品一区免费av| 不卡影院免费观看| 欧美日韩国产综合视频在线观看| 91麻豆精品91久久久久久清纯| 久久网这里都是精品| 亚洲欧美另类久久久精品| 日韩精品三区四区| 成人福利视频网站| 欧美久久久久久久久| 国产欧美一区二区在线观看| 亚洲国产成人av网| 国产精品亚洲а∨天堂免在线| 欧美视频中文字幕| 国产亚洲午夜高清国产拍精品| 亚洲精品日日夜夜| 国产精品白丝jk白祙喷水网站| 欧美综合一区二区三区| 国产亚洲综合色| 香蕉久久夜色精品国产使用方法| 盗摄精品av一区二区三区| 欧美一区二区精品| 一区二区高清免费观看影视大全| 久久er精品视频| 色一情一乱一乱一91av| 久久久久国产精品麻豆| 日日摸夜夜添夜夜添国产精品| av电影天堂一区二区在线观看| 日韩久久精品一区| 婷婷综合在线观看| 97久久精品人人爽人人爽蜜臀| 精品久久国产字幕高潮| 天天综合天天综合色| 91国模大尺度私拍在线视频| 国产农村妇女精品| 国产在线乱码一区二区三区| 欧美日韩一卡二卡| 一区二区三区在线视频观看| 国产91精品一区二区| 久久综合一区二区| 蜜桃视频一区二区三区在线观看| 欧美视频一区二区三区四区| 亚洲日本青草视频在线怡红院| 成人综合在线网站| 国产亚洲综合av| 国产精品香蕉一区二区三区| 精品国产露脸精彩对白| 日韩av在线免费观看不卡| 精品视频资源站| 亚洲午夜羞羞片| 日本韩国一区二区三区| 亚洲美女免费在线| 91片黄在线观看| 亚洲色图都市小说| 一本色道久久综合狠狠躁的推荐| 国产精品初高中害羞小美女文| 成人午夜激情影院| 中文字幕国产一区| 成人av小说网| 国产精品久久久久久久久免费丝袜| 风流少妇一区二区| 中文字幕欧美日韩一区| 成人一区二区三区视频在线观看| 久久久久久久综合日本| 国产成人免费在线视频| 国产欧美日韩不卡| 成人黄色777网| 亚洲精品成人在线| 欧美天堂亚洲电影院在线播放| 亚洲一二三四区| 欧美精品色一区二区三区| 午夜欧美在线一二页| 在线不卡a资源高清| 日韩—二三区免费观看av| 日韩欧美激情四射| 国产成人午夜视频| 国产精品日日摸夜夜摸av| 99国产欧美另类久久久精品| 亚洲日本成人在线观看| 欧美亚日韩国产aⅴ精品中极品| 五月天精品一区二区三区| 欧美成人猛片aaaaaaa| 成人晚上爱看视频| 亚洲精品乱码久久久久久久久| 精品视频在线免费观看| 免费在线成人网| 国产精品三级电影| 日本高清无吗v一区| 日韩av一区二| 国产欧美日韩另类一区| 99re这里都是精品| 日韩国产成人精品| 国产午夜精品在线观看| 色婷婷久久一区二区三区麻豆| 天天综合日日夜夜精品| 国产三区在线成人av| 一本到高清视频免费精品| 婷婷综合另类小说色区| 久久久国产综合精品女国产盗摄| 99精品一区二区三区| 日本一不卡视频| 中文字幕欧美激情一区| 欧美乱熟臀69xxxxxx| 国产成人精品一区二区三区网站观看| 日韩美女视频19| 日韩欧美国产精品| 99久久er热在这里只有精品15 | 午夜精品在线看| www久久精品| 欧美亚洲综合久久| 国产精品 日产精品 欧美精品| 亚洲最大色网站| 久久精品夜色噜噜亚洲a∨| 欧美性三三影院| 成人黄色777网| 日韩激情视频在线观看| 亚洲丝袜自拍清纯另类| 精品免费日韩av| 欧美丝袜丝交足nylons图片| 国产福利一区在线| 日韩电影在线免费看| ...xxx性欧美| 精品国产精品网麻豆系列| 欧美中文字幕不卡| 国产老女人精品毛片久久| 亚洲高清免费视频| 国产精品第四页| 久久久亚洲国产美女国产盗摄 | 色香蕉成人二区免费| 国产在线播放一区二区三区|