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

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

?? sysata.c

?? arm lpc2000 應(yīng)用歷程 arm lpc2000 應(yīng)用歷程
?? 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ù)名稱: 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ù)名稱: 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ù)名稱: 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ù)名稱: SYS_PortIn
** 功能描述: 從ATA設(shè)備指定的寄存器中讀出一個(gè)字的數(shù)據(jù),有些寄存器只有一個(gè)字節(jié)數(shù)有效。
** 輸   入: reg 寄存器名稱
** 輸   出: 讀出的數(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ù)名稱: SYS_PortIn
** 功能描述: 向ATA設(shè)備指定的寄存器中寫(xiě)入一個(gè)字的數(shù)據(jù),有些寄存器只有一個(gè)字節(jié)數(shù)有效。
** 輸   入: reg 寄存器名稱
** 輸   出: 無(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ù)名稱: 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一区二区三区免费野_久草精品视频
午夜精品成人在线视频| 亚洲午夜久久久久| 精品视频1区2区| 国产精选一区二区三区| 亚洲自拍偷拍网站| 精品国产一区a| 欧美日精品一区视频| 国产精品综合二区| 婷婷成人综合网| 亚洲女性喷水在线观看一区| 奇米色777欧美一区二区| 色94色欧美sute亚洲线路一久| 亚洲免费在线看| 欧美图区在线视频| 亚洲黄网站在线观看| 在线免费观看日本一区| 一区二区三区在线视频免费| 91蜜桃婷婷狠狠久久综合9色| 日本一区二区免费在线| 成人性生交大片免费看中文网站| 日韩伦理av电影| 99精品1区2区| 国产精品综合久久| 欧美a一区二区| 亚欧色一区w666天堂| 亚洲欧美综合色| 日本一区二区综合亚洲| 久久这里只有精品6| 日韩亚洲欧美成人一区| 欧美系列日韩一区| 色综合一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 丁香婷婷综合网| 床上的激情91.| 不卡视频一二三四| 成人国产在线观看| 国产99一区视频免费| 国产乱理伦片在线观看夜一区| 九色综合狠狠综合久久| 久久99久久99精品免视看婷婷 | 中文字幕亚洲在| 久久在线观看免费| 国产亚洲成aⅴ人片在线观看| 欧美成va人片在线观看| 精品国产三级a在线观看| 欧美电视剧在线看免费| 精品国产91洋老外米糕| 欧美精品一区二区三区四区| 精品国产在天天线2019| 日韩亚洲欧美综合| www激情久久| 日本一区二区视频在线观看| 中文字幕亚洲区| 亚洲激情男女视频| 日韩黄色一级片| 美腿丝袜亚洲色图| 国内精品视频666| 岛国一区二区三区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲欧美日韩国产成人精品影院| 亚洲视频在线一区| 亚洲一区二区在线观看视频| 肉丝袜脚交视频一区二区| 蜜臀av性久久久久蜜臀aⅴ| 久久99国产精品成人| 精品国产免费人成电影在线观看四季 | 激情五月婷婷综合| 亚洲成av人在线观看| 中文字幕中文在线不卡住| 中文字幕成人网| 亚洲色大成网站www久久九九| 亚洲bt欧美bt精品| 亚洲国产精品一区二区久久 | 国产女主播视频一区二区| 欧美国产亚洲另类动漫| 亚洲黄色在线视频| 美女脱光内衣内裤视频久久网站 | 欧美精品第1页| 久久美女艺术照精彩视频福利播放| 国产蜜臀97一区二区三区| 一区二区三区在线视频观看58| 视频精品一区二区| 成人小视频在线观看| 欧美性生活久久| 久久久久久久精| 亚洲成av人**亚洲成av**| 国产盗摄精品一区二区三区在线| 91免费看片在线观看| 欧美成人猛片aaaaaaa| 亚洲女爱视频在线| 久久国产精品区| 日本伦理一区二区| 欧美精品一区二| 亚洲国产日韩a在线播放| 国产一区二区不卡老阿姨| 欧美伊人精品成人久久综合97 | 亚洲综合久久久| 高清不卡一二三区| 91精品国产综合久久久久久漫画| 亚洲天天做日日做天天谢日日欢| 久久超碰97中文字幕| 色婷婷综合久久| 国产日产欧美一区| 美女免费视频一区| 日本道色综合久久| 国产欧美日韩久久| 激情综合色播五月| 欧美精品色一区二区三区| 自拍视频在线观看一区二区| 久久99精品久久久久久| 欧美日韩国产高清一区| 日韩伦理av电影| 成人永久看片免费视频天堂| 日韩视频永久免费| 午夜精品久久久久久久久久 | 中文字幕av资源一区| 精品一区二区免费看| 欧美精品亚洲一区二区在线播放| 亚洲欧美日韩精品久久久久| 成人开心网精品视频| 久久久久久久久久久黄色| 男女男精品视频网| 欧美一区二区三区人| 午夜电影一区二区| 欧美在线你懂得| 夜夜揉揉日日人人青青一国产精品| av一区二区三区在线| 亚洲国产高清在线| 国产成人av资源| 国产免费久久精品| 国产福利不卡视频| 中文字幕第一页久久| 国产麻豆9l精品三级站| 久久网这里都是精品| 国产一区二区三区在线观看精品 | 日韩免费一区二区| 人妖欧美一区二区| 51久久夜色精品国产麻豆| 五月激情六月综合| 欧美高清视频不卡网| 日韩成人av影视| 欧美第一区第二区| 久久婷婷色综合| 欧美成人三级在线| 91首页免费视频| 国产精品国产三级国产aⅴ原创 | 中文字幕日韩欧美一区二区三区| 成人免费观看av| 亚洲视频一区在线| 91在线观看美女| 一区二区三区欧美日韩| 欧美日韩国产美女| 久久 天天综合| 国产视频一区在线播放| 成人福利视频在线| 亚洲图片欧美综合| 7878成人国产在线观看| 激情五月播播久久久精品| 亚洲国产精华液网站w| 色老综合老女人久久久| 亚洲成人免费在线观看| 精品日产卡一卡二卡麻豆| 国产精品911| 亚洲黄色av一区| 在线综合亚洲欧美在线视频| 国产综合色在线| 亚洲女人****多毛耸耸8| 5月丁香婷婷综合| 国产精品自拍一区| 亚洲一线二线三线久久久| 91精品国产高清一区二区三区| 国产美女在线精品| 亚洲乱码国产乱码精品精可以看| 337p亚洲精品色噜噜噜| 国产成人av在线影院| 一区二区久久久久| 欧美va在线播放| 91麻豆蜜桃一区二区三区| 麻豆精品一区二区三区| 中文字幕在线不卡| 91精品午夜视频| 成人黄色在线视频| 美女视频一区二区三区| 亚洲欧洲国产日韩| 精品理论电影在线观看| 在线免费观看不卡av| 狠狠色丁香久久婷婷综合丁香| 亚洲婷婷综合久久一本伊一区| 日韩欧美国产电影| 色乱码一区二区三区88| 久久99九九99精品| 亚洲动漫第一页| 欧美国产一区二区在线观看| 欧美日韩成人激情| 国v精品久久久网| 蓝色福利精品导航| 亚洲一区二区欧美| 中文字幕亚洲在| 久久久久久久久久久黄色| 91精选在线观看|