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

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

?? sddriver.c

?? atmel de booloader 內(nèi)有源代碼 用blb編譯
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
 		ret = SD_JudgeResult(tmp);					/* 響應(yīng)指示寫(xiě)失敗 response indicate write fail */ 		if (ret != SD_NO_ERR) 			return ret;			     						 	}	ret = SD_ReadCard_Status(sds->RCA, 4, tmp);		if (ret != SD_NO_ERR)		return ret;  	ret = SD_DeSelectCard();						/* CMD7, 退出傳輸狀態(tài) */  	return ret;										/* 返回寫(xiě)入結(jié)果 return the result of writing */									}/********************************************************************************************************************* 函數(shù)名稱(chēng): INT8U SD_GetCardInfo()				Name:	  INT8U SD_GetCardInfo()** 功能描述: 獲得SD卡的信息						Function: get the information of SD card** 輸   入: sd_struct *sds: SD卡信息結(jié)構(gòu)體 	Input:    sd_struct *sds: the information structure of SD Card** 輸   出: 0:   成功   > 0:   錯(cuò)誤碼			Output:	  0:  sucessfully	> 0:  error code*******************************************************************************************************************/INT8U SD_GetCardInfo(sd_struct *sds){	INT32U tmp;	INT8U time_u,time_v,fator;	INT8U recbuf[16],ret;		ret = SD_ReadCSD(sds->RCA, 16, recbuf);	 				    	    /* 讀CSD寄存器    read CSD register */	if (ret != SD_NO_ERR)			return ret;		/* 計(jì)算塊的最大長(zhǎng)度 calculate the size of a sector */	sds->block_len = 1 << (recbuf[READ_BL_LEN_POS] & READ_BL_LEN_MSK);  /* (2 ^ READ_BL_LEN) */		/* 計(jì)算卡中塊的個(gè)數(shù) calculate the sector numbers of the SD Card */	sds->block_num = ((recbuf[C_SIZE_POS1] & C_SIZE_MSK1) << 10) +	      			  (recbuf[C_SIZE_POS2] << 2) +	 	 			 ((recbuf[C_SIZE_POS3] & C_SIZE_MSK3) >> 6) + 1;	/* 計(jì)算(C_SIZE + 1)*/		 	  																tmp = ((recbuf[C_SIZE_MULT_POS1] & C_SIZE_MULT_MSK1) << 1) +   	      ((recbuf[C_SIZE_MULT_POS2] & C_SIZE_MULT_MSK2) >> 7) + 2;		/* 計(jì)算(C_SIZE_MULT + 2) */     																sds->block_num = sds->block_num * (1 << tmp);						/* 獲得卡中塊的數(shù)量: (C_SIZE + 1) * 2 ^ (C_SIZE_MULT + 2) */																		/* get the block numbers in card: (C_SIZE + 1) * 2 ^ (C_SIZE_MULT + 2) */	/* 計(jì)算扇區(qū)大小 calculate the size of sector */	tmp = ((recbuf[SECTOR_SIZE_POS1] & SECTOR_SIZE_MSK1) << 1) +  				      ((recbuf[SECTOR_SIZE_POS2] & SECTOR_SIZE_MSK2) >> 7) + 1;		/* 計(jì)算(SECTOR_SIZE + 1)*/		 			sds->sector_size = tmp;												/* 保存在sds中 save into sds */		    				return SD_NO_ERR;													/* 返回執(zhí)行成功 return perform sucessfully */}/*********************************************************************************************************** Function name: Card_Indentify** Descriptions:  identify card type: SD or MMC card**                判別卡的型號(hào):SD或MMC卡			** Input: 		  sd_struct *sds  : SD/MMC卡信息結(jié)構(gòu)體 	     sd_struct *sds  : the information structure of SD/MMC ** Output: 		  CARDTYPE_SD -- SD card     CARDTYPE_MMC -- MMC card   ** Created by:    MingYuan Zheng 鄭明遠(yuǎn) ** Created Date:  2006-01-09 **-------------------------------------------------------------------------------------------------------** Modified by:** Modified Date: **------------------------------------------------------------------------------------------------------********************************************************************************************************/INT8U Card_Indentify(void){	INT32U param = 0;	INT8U response[6],ret;	ret = SD_SendCommand(CMD55, param, CMD55_R, response);    if (ret == SD_NO_ERR)		return CARDTYPE_SD;	else		return CARDTYPE_MMC;}	/*********************************************************************************************************** Function name: SD_ActiveCard** Descriptions:  active card**                激活卡			** Input: 		  NULL** Output: 		  0:   成功    > 0:  錯(cuò)誤碼					0:  sucessfully	 > 0:  error code ** Created by:    MingYuan Zheng 鄭明遠(yuǎn) ** Created Date:  2006-01-09 **-------------------------------------------------------------------------------------------------------** Modified by:** Modified Date: **------------------------------------------------------------------------------------------------------********************************************************************************************************/INT8U SD_ActiveCard(sd_struct *sds){	INT8U ret,resp[4];	INT32U count = 0; 	do     {	    	if (sds->card_type == CARDTYPE_SD)			/* 讀OCR寄存器      read OCR register */        	ret = SD_ReadOCR(4, resp);        else        	ret = MMC_ReadOCR(4, resp);                if (ret != SD_NO_ERR)       		return ret;        if (count >= SD_IDLE_WAIT_MAX)            return SD_ERR_TIMEOUT_WAITIDLE;			/* 超時(shí),返回錯(cuò)誤碼  timeout,return error code */     	      	count ++;            }while ((resp[3] & MSK_READY) == 0x00);	    if ((resp[2] & MSK_OCR_33) != MSK_OCR_33)        return SD_ERR_VOL_NOTSUSP;					/* 卡不支3.3V電壓   card don't support 3.3V voltage */					return SD_NO_ERR;}/*********************************************************************************************************** Function name: sdmmc_interrupt** Descriptions:  SD/MMC card interrupt handler **                SD/MMC 卡中斷處理程序			** Input: 		  input parameter of linux interrupt handler** Output: 		  NULL ** Created by:    MingYuan Zheng 鄭明遠(yuǎn) ** Created Date:  2006-01-09 **-------------------------------------------------------------------------------------------------------** Modified by:** Modified Date: **------------------------------------------------------------------------------------------------------********************************************************************************************************/#if SD_INTERRUPT_ENvoid sdmmc_interrupt(int irq, void *dev_id, struct pt_regs *regs){	INT32U stat;	INT32U cnt;	INT32U tmp;	if (reading == 1)	{		stat = SDIFSTA;                            		  	  /* 讀FIFO狀態(tài)寄存器 */				/* FIFO 中的數(shù)據(jù)不足64個(gè)字節(jié) */		if (stat & SDIFSTA_RX_LAST)		{ 									                  /* 最后數(shù)據(jù)就緒 */                    			cnt = (stat & SDIFSTA_CNT) / sizeof(INT32U);      /* 取得FIFO中的“字”數(shù) */			while (cnt) 			{				tmp = SDIDAT;								  /* 從FIFO中讀出數(shù)據(jù) */				buffer[bufcnt] = (INT8U)(tmp); 				buffer[bufcnt + 1] = (INT8U)(tmp >> 8); 				buffer[bufcnt + 2] = (INT8U)(tmp >> 16); 				buffer[bufcnt + 3] = (INT8U)(tmp >> 24); 				bufcnt += sizeof(INT32U);				cnt--;			}					/* Rx FIFO為滿,那么讀64個(gè)字節(jié) */			}		else if (stat & SDIFSTA_RX_FULL)		{			cnt = SDI_MAX_RX_FIFO / sizeof(INT32U);			while (cnt && bufcnt < datalen) 			{				tmp = SDIDAT;								  /* 從FIFO中讀出數(shù)據(jù) */				buffer[bufcnt] = (INT8U)(tmp); 				buffer[bufcnt + 1] = (INT8U)(tmp >> 8); 				buffer[bufcnt + 2] = (INT8U)(tmp >> 16); 				buffer[bufcnt + 3] = (INT8U)(tmp >> 24); 				bufcnt += sizeof(INT32U);				cnt--;			}		}				stat = SDIDSTA;		if (stat & SDIDSTA_DFIN)		{             									 	   /* 數(shù)據(jù)傳輸完成 */			SDIDSTA = stat;			error = SD_NO_ERR;			wake_up_interruptible(&wq);		} 		else if (stat & SDIDSTA_TOUT) 		{       											   /* 數(shù)據(jù)/忙接收超時(shí) */    			SDIDSTA = stat;			error = SD_ERR_TIMEOUT_READ;			wake_up_interruptible(&wq);		}			}		/* 下面為寫(xiě)狀態(tài) */	else	{		stat = SDIFSTA;		if (stat & SDIFSTA_TX_EMP)		{               							    		/* TX FIFO 為空  */			cnt = SDI_MAX_TX_FIFO / sizeof(INT32U);			while (cnt && bufcnt < datalen) 			{ 	 												/* 往FIFO里寫(xiě)入數(shù)據(jù) */				SDIDAT = (buffer[bufcnt + 3] << 24) + (buffer[bufcnt + 2] << 16) +  						 (buffer[bufcnt + 1] << 8) + buffer[bufcnt];  				bufcnt += sizeof(INT32U);				cnt--;			}		}		stat = SDIDSTA;		if (stat & SDIDSTA_DFIN) 		{											     		/* 數(shù)據(jù)傳輸完成,使能等待任務(wù) */			SDIDSTA = stat;			error = SD_NO_ERR;			wake_up_interruptible(&wq);		} 		else if (stat & SDIDSTA_TOUT) 		{ 											     		/* 數(shù)據(jù)傳輸超時(shí) */			SDIDSTA = stat;			error = SD_ERR_TIMEOUT_WRITE;			wake_up_interruptible(&wq);		}		}		/* clear the interrupt of mcu */ 	SRCPND = 1 << 21;											/* 清除相關(guān)中斷標(biāo)志 */			INTPND = 1 << 21; 	}#endif/*********************************************************************************************************** Function name: card_detect_interrupt** Descriptions:  the interrupt handler of card insert detect**                卡插入檢測(cè)中斷處理函數(shù)			** Input: 		  input parameter of linux interrupt handler** Output: 		  NULL ** Created by:    MingYuan Zheng 鄭明遠(yuǎn) ** Created Date:  2006-01-09 **-------------------------------------------------------------------------------------------------------** Modified by:** Modified Date: **------------------------------------------------------------------------------------------------------********************************************************************************************************/void card_detect_interrupt(int irq, void *dev_id, struct pt_regs *regs){	int bempty;#ifdef SD_CD_LEVEL_LOW                          	/* 如果是低電平表示插入 */	bempty = read_gpio_bit(SD_GPIO_CD);#else	bempty = !read_gpio_bit(SD_GPIO_CD);#endif	if ((!card_insert) && (!bempty)) 	{		/* card inserted 卡插入 */		card_insert = 1;		card_change = 1;		printk("SD/MMC card insert!\n");	} 	else if (card_insert && bempty)	{	/* card ejected 卡拔出 */		card_insert = 0;		card_change = 1;#if SD_INTERRUPT_EN		error = SD_ERR_NO_CARD;						/* no card error code */		wake_up_interruptible(&wq);#endif		printk("SD/MMC card ejected!\n");	}	}/***********************************************************************************************************                            End Of File**********************************************************************************************************/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国模少妇一区二区三区| 99精品国产热久久91蜜凸| 五月开心婷婷久久| 亚洲欧美激情小说另类| 国产精品天干天干在线综合| 亚洲电影一级黄| 久久亚洲一区二区三区四区| 国产一区二区91| 亚洲精品免费在线| 亚洲人精品午夜| 有码一区二区三区| 亚洲综合免费观看高清在线观看| 自拍偷拍欧美激情| 亚洲女同ⅹxx女同tv| 亚洲欧美日韩精品久久久久| 艳妇臀荡乳欲伦亚洲一区| 一区二区三区电影在线播| 亚洲一区自拍偷拍| 五月天激情小说综合| 男人的j进女人的j一区| 久久99精品国产91久久来源| 国内成人精品2018免费看| 国产一区二区导航在线播放| 国产资源在线一区| 国内精品久久久久影院色| 男男gaygay亚洲| 久久精品国产亚洲高清剧情介绍| 麻豆91在线观看| 国产一二三精品| 成人手机电影网| 成人av在线资源网站| 99精品黄色片免费大全| 日本韩国一区二区| 欧美日韩一区二区电影| 91精品免费在线观看| 日韩女优电影在线观看| 精品理论电影在线观看 | 亚洲一区二区三区在线| 亚洲伦理在线精品| 亚洲一区二区三区激情| 日韩国产精品久久| 精品亚洲国产成人av制服丝袜| 国内一区二区视频| 成人久久视频在线观看| 色就色 综合激情| 欧美日韩成人综合| 日韩欧美在线观看一区二区三区| 亚洲精品在线电影| 国产精品少妇自拍| 一区二区三区电影在线播| 日韩高清一区在线| 国产精品自拍在线| 色婷婷久久久久swag精品| 欧美久久久久免费| 久久久久久夜精品精品免费| 国产精品国产三级国产三级人妇 | 日韩激情一区二区| 美腿丝袜亚洲色图| 国产91丝袜在线播放九色| 99久久综合色| 国产女主播视频一区二区| 亚洲另类一区二区| 免费观看在线综合色| 国产成人免费视频精品含羞草妖精| 99久久99久久免费精品蜜臀| 欧美一区二区三区在线| 国产目拍亚洲精品99久久精品| 夜夜精品视频一区二区| 国模无码大尺度一区二区三区| 色婷婷综合久色| 91精品国产色综合久久| 亚洲免费在线视频| 激情综合一区二区三区| 91欧美激情一区二区三区成人| 欧美一区二区在线播放| 国产精品久久久久影视| 日本不卡在线视频| 91片在线免费观看| 久久久九九九九| 石原莉奈在线亚洲二区| 99精品久久只有精品| 欧美精品色综合| 亚洲综合清纯丝袜自拍| 成人综合婷婷国产精品久久蜜臀 | 亚洲日本一区二区| 亚洲一二三四区| 粉嫩绯色av一区二区在线观看| 欧美性猛交xxxxxxxx| 久久久久久久一区| 日韩不卡一区二区| 在线观看视频91| 欧美激情中文不卡| 久久成人免费网站| 欧美精品aⅴ在线视频| 亚洲人午夜精品天堂一二香蕉| 国产曰批免费观看久久久| 欧美日韩国产一级二级| 亚洲九九爱视频| 成人动漫视频在线| 久久人人爽爽爽人久久久| 亚洲图片一区二区| 色88888久久久久久影院野外| 久久久精品国产99久久精品芒果 | 亚洲成a人v欧美综合天堂| 成人午夜伦理影院| 精品精品国产高清一毛片一天堂| 天堂va蜜桃一区二区三区漫画版| 91丨porny丨户外露出| 欧美国产日韩一二三区| 精品亚洲成av人在线观看| 欧美一级在线观看| 亚洲成人av福利| 欧美系列亚洲系列| 亚洲欧洲一区二区在线播放| 国产成+人+日韩+欧美+亚洲| 日韩精品在线看片z| 日本在线播放一区二区三区| 欧美日本精品一区二区三区| 亚洲一区二区高清| 欧美亚洲综合另类| 午夜精品久久久久久久99水蜜桃| 在线看日本不卡| 一区二区三区四区在线免费观看| 91香蕉视频mp4| 一区视频在线播放| 91免费观看国产| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品国产不卡一区二区三区| 久久精品久久久精品美女| 欧美丰满少妇xxxxx高潮对白 | 激情五月婷婷综合| 久久尤物电影视频在线观看| 国产在线乱码一区二区三区| 精品乱码亚洲一区二区不卡| 精品在线亚洲视频| 久久精品男人天堂av| 国产91高潮流白浆在线麻豆| 国产精品福利一区| 91成人国产精品| 天堂久久一区二区三区| 日韩色在线观看| 精品一区二区三区日韩| 久久久99久久| av亚洲精华国产精华| 亚洲欧美一区二区三区孕妇| 91福利视频久久久久| 亚洲成人一区二区在线观看| 91精品国产色综合久久ai换脸 | 国产成人精品综合在线观看| 国产精品久久久久永久免费观看 | 国产欧美精品一区| 不卡大黄网站免费看| 一区二区三区中文字幕| 在线电影院国产精品| 国产一区二三区好的| 最好看的中文字幕久久| 欧美影视一区在线| 久久99精品国产.久久久久久| 人人爽香蕉精品| 欧美精品一区二区三区在线| 成人动漫一区二区| 午夜日韩在线观看| 久久品道一品道久久精品| 97se亚洲国产综合自在线| 亚洲自拍偷拍欧美| 日韩欧美国产精品| heyzo一本久久综合| 丝袜亚洲另类欧美综合| 国产亚洲一二三区| 成人免费视频免费观看| 日本系列欧美系列| 国产精品美日韩| 欧美精品aⅴ在线视频| 成人一区二区三区| 蜜臀av一区二区在线观看| 国产精品久久久久久久蜜臀| 51久久夜色精品国产麻豆| 狠狠色丁香久久婷婷综| 亚洲一二三四区| 欧美经典一区二区三区| 欧美日本一道本在线视频| 成人久久18免费网站麻豆| 日韩vs国产vs欧美| 亚洲婷婷在线视频| 久久久一区二区三区| 欧美日韩你懂得| 99在线热播精品免费| 麻豆成人综合网| 亚洲国产美女搞黄色| 欧美va亚洲va香蕉在线| 制服丝袜亚洲播放| 91麻豆swag| 国产福利不卡视频| 奇米影视一区二区三区| 亚洲一区在线视频观看| 日本一区二区三区久久久久久久久不 | 午夜精品一区在线观看| 国产精品久久久久aaaa樱花 | 国产日韩欧美精品一区| 欧美高清视频一二三区|