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

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

?? cflib.c

?? 一個用samsung s3c44b0x arm7讀取cf卡接口的例子
?? C
字號:
#include "44b.h"
#include "44blib.h"
#include "rtc.h"

#define CF_CONTROL_ADDR       0x0a080000

#define CF_CONTROL_MASK_POWER  (1<<2)
#define CF_CONTROL_MASK_RESET  (1<<3)
#define CF_CONTROL_MASK_IOIS   (1<<4)
 
#define CF_MEMORY_ATTR_BASE   0x02080000
#define CF_MEMORY_COMMON_BASE 0x02080800
#define CF_IO_BASE            0x020c0000

int cf_ctrl_value = 0x2;

/********************************************************************
// Function name	: cf_pwr_ctrl
// Description	    : CF卡電源控制
// Return type		: void
// Argument         : int bpwron : 1打開電源,0關閉電源
*********************************************************************/
void cf_pwr_ctrl(int bpwron)
{
	if(bpwron)
	{
		cf_ctrl_value |= CF_CONTROL_MASK_POWER;
	}else
	{
		cf_ctrl_value &= ~CF_CONTROL_MASK_POWER;
	}
	*(unsigned char *)CF_CONTROL_ADDR = cf_ctrl_value;
}

/********************************************************************
// Function name	: cf_rst_ctrl
// Description	    : CF卡復位操作
// Return type		: void
// Argument         : int brst
*********************************************************************/
void cf_rst_ctrl(int brst)
{
	if(brst)
	{
		cf_ctrl_value |= CF_CONTROL_MASK_RESET;
	}else
	{
		cf_ctrl_value &= ~CF_CONTROL_MASK_RESET;
	}
	*(unsigned char *)CF_CONTROL_ADDR = cf_ctrl_value;
}

/********************************************************************
// Function name	: cf_iois_ctrl
// Description	    : CF卡IOIS信號控制
// Return type		: void
// Argument         : int bmemorywrite
*********************************************************************/
void cf_iois_ctrl(int bmemorywrite)
{
	if(bmemorywrite)
	{
		cf_ctrl_value |= CF_CONTROL_MASK_IOIS;
	}else
	{
		cf_ctrl_value &= ~CF_CONTROL_MASK_IOIS;
	}
	*(unsigned char *)CF_CONTROL_ADDR = cf_ctrl_value;
}

void cf_init()
{
	/* CF卡片選信號總線寬度設置 */
	rBWSCON &= (~(0xf<<16));
	rBWSCON |= (0x00<<16);

	rBANKCON5 = 0x7ffc;	
	Delay(10);
		
	/* 打開CF卡電源 */
	cf_pwr_ctrl(0);
	Delay(500);
		
	/* CF卡復位 */
	cf_rst_ctrl(0);
	Delay(3);
	cf_rst_ctrl(1);
	Delay(3);
	cf_rst_ctrl(0);
		
	Delay(500);
}

/********************************************************************
// Function name	: cf_read_cis
// Description	    : 讀取CF卡卡信息
// Return type		: void
// Argument         : unsigned char *cisstring
*********************************************************************/
void cf_read_cis(unsigned char *cisstring)
{
	unsigned char CISdata[180];
	unsigned char data;
	int i;
	for (i=0;i<180;i++)
	{ 
		if(i % 0x8 == 0)
			Uart_Printf("\n0x%08x    : ", i*2);
		//copy CIS to CISdata[]
		data =*(unsigned char *) (CF_MEMORY_ATTR_BASE+i*2);// CIS can be access in even address only
		CISdata[i] = (data & 0xff);
		
//		Uart_Printf("0x%02x(%c) ", CISdata[i], CISdata[i]);
		Uart_Printf("0x%02x ", CISdata[i]);
	}
	cisstring[0] = 0;
	for (i=25; i<45 ; i++) 
	{
		if (CISdata[i]!='\0')
			sprintf(cisstring, "%s%c", cisstring, CISdata[i]);
		else 
			sprintf(cisstring, "%s%c", cisstring, '\n');
	}
}

/********************************************************************
// Function name	: cf_memory_write_block
// Description	    : 寫數據到CF卡,每個BLOCK 512字節
// Return type		: void
// Argument         : unsigned char *data:待寫入數據
// Argument         :  int sectnum:BLOCK號
*********************************************************************/
void cf_memory_write_block(unsigned char *data, int sectnum)
{
	unsigned char tempU8;
	unsigned short i;
	//***Set sector count***
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000002) = 0x1;//sector count =1
	//***Set the LBA address of memory block to be written***
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000003) = sectnum + 32; //LBA [7:0] =1
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000004) = 0x0; //LBA [15:8:] =0
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000005) = 0x0; //LBA [23:16:] =0
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000006) = 0xE0; //LBA [27:24]=0 (lower 4 bit of register)
	//Issue write command
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007) = 0x30;//issue 30H command for sector write
	//Poll for busy bit
	tempU8 = *(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007);
	while ( tempU8&0x80) 
	{
		//poll for busy bit (bit 7 of register), quit loop when busy bit =0
		tempU8 = *(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007);
	}
	//Write data to data buffer until DRQ is clear
	for (i=0;(tempU8&0x08)==0x08;i++) 
	{
		*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000008)=data[i];// write 2 byte of data to data buffer
		tempU8=*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007);// poll for DRQ (bit 3 of register)
	}
	Uart_Printf("Finish Writing\n");	
}

/********************************************************************
// Function name	: cf_memory_read_block
// Description	    : 從CF卡中讀取數據
// Return type		: void
// Argument         : unsigned char *data:保存數據的緩沖區
// Argument         :  int sectnum:BLOCK號
*********************************************************************/
void cf_memory_read_block(unsigned char *data, int sectnum)
{
	unsigned char tempU8;
	int i;
	//Set sector count
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000002) = 0x1;//sector count =1
	//Set the LBA address of memory block to be read
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000003) = sectnum + 32; //LBA [7:0] =1
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000004) = 0x0; //LBA [15:8] =0
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000005) = 0x0; //LBA [23:16] =0
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000006) = 0xE0; //LBA [27:24] =0 (lower 4 bit of register)
	//Issue read command
	*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007) = 0x20;//issue 20H command for sector read
	//Poll for busy bit
	tempU8 = *(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007);
	while ( tempU8&0x80) 
	{
		//poll for busy bit (bit 7 of register), quit loop when busy bit =0
		tempU8 = *(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007);
	}
	//Read data from buffer into U16data[] until DRQ is clear
	for (i=0;(tempU8&0x08)==0x08;i++) 
	{
		data[i]=*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000008);// read 2 byte of data from buffer
		tempU8=*(unsigned char *) (CF_MEMORY_COMMON_BASE+0x000007);// poll for DRQ (bit 3 of register)
	}
	Uart_Printf("Finish Reading\n");	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费电影一区| 亚洲国产人成综合网站| 26uuu成人网一区二区三区| 欧美日韩久久久| 欧美亚洲国产bt| 色综合一区二区| 91色九色蝌蚪| 成人av先锋影音| av在线不卡免费看| 91视频免费看| 91国产成人在线| 欧美午夜免费电影| 欧美性xxxxxxxx| 91精品国产一区二区人妖| 欧美一区二区视频网站| 欧美一区中文字幕| 日韩精品一区二区三区在线播放 | 精品国产91洋老外米糕| 精品粉嫩aⅴ一区二区三区四区| 日韩美女视频在线| 久久这里只有精品视频网| 精品国产a毛片| 国产精品毛片大码女人| 亚洲天堂免费在线观看视频| 一二三区精品视频| 日韩**一区毛片| 国内精品视频666| 国产精品18久久久久久久久| 岛国精品在线观看| 色狠狠桃花综合| 91精品国产黑色紧身裤美女| 精品福利一二区| 最新国产成人在线观看| 亚洲一区二区三区在线播放| 美女网站色91| 成人综合在线视频| 欧美日韩一区二区在线视频| 日韩精品一区二区三区蜜臀| 国产精品免费视频观看| 亚洲一区二区欧美激情| 美日韩一区二区| 成人综合在线视频| 欧美片在线播放| 久久精品综合网| 一区二区三区成人在线视频| 蜜桃av一区二区三区电影| 成人在线视频首页| 欧美日韩激情一区二区| 国产亚洲福利社区一区| 亚洲资源在线观看| 韩国精品在线观看| 在线日韩国产精品| 久久丝袜美腿综合| 亚洲国产视频一区二区| 成人在线视频一区二区| 欧美精品 日韩| 国产精品无遮挡| 人人爽香蕉精品| 色综合一区二区三区| 久久久午夜电影| 性感美女久久精品| 成人国产精品免费观看| 欧美一区二区三区视频| 中文字幕亚洲成人| 老鸭窝一区二区久久精品| 色综合中文字幕国产 | 久久精品夜色噜噜亚洲a∨| 亚洲精品国产精品乱码不99| 黄色小说综合网站| 欧美三级韩国三级日本三斤| 久久久国产午夜精品 | 欧美在线观看视频一区二区| 久久嫩草精品久久久久| 天天色综合天天| 99r国产精品| wwwwxxxxx欧美| 舔着乳尖日韩一区| 色偷偷久久一区二区三区| 国产欧美一区二区精品性| 免费成人深夜小野草| 欧美性猛交一区二区三区精品| 国产亚洲精品7777| 国产一区二区按摩在线观看| 宅男噜噜噜66一区二区66| 亚洲女厕所小便bbb| 成人免费av在线| 国产亚洲美州欧州综合国| 久久99热99| 日韩一区二区视频| 亚洲不卡av一区二区三区| 色94色欧美sute亚洲13| 中文字幕在线视频一区| 国产精品一区二区在线看| 精品欧美一区二区在线观看| 天天色图综合网| 欧美高清精品3d| 亚洲韩国精品一区| 色婷婷久久综合| 亚洲欧美精品午睡沙发| 91麻豆swag| 亚洲视频免费观看| 色视频欧美一区二区三区| 中文字幕亚洲成人| 色综合欧美在线视频区| 自拍偷在线精品自拍偷无码专区| 成人性视频免费网站| 国产精品不卡视频| 日本福利一区二区| 亚洲图片欧美色图| 91精品国产色综合久久| 青娱乐精品在线视频| 欧美电视剧在线观看完整版| 久久综合综合久久综合| 日韩免费电影网站| 国产在线精品一区二区| 国产日本欧美一区二区| 成人午夜又粗又硬又大| 最新久久zyz资源站| 一本久久a久久精品亚洲| 亚洲欧美日韩国产综合| 欧美丝袜丝交足nylons| 天堂一区二区在线| 日韩精品一区二区在线| 国产盗摄一区二区| 中文字幕亚洲在| 欧美在线高清视频| 美女视频黄频大全不卡视频在线播放| 日韩视频一区二区在线观看| 国内欧美视频一区二区| 国产嫩草影院久久久久| 色域天天综合网| 日韩精品免费视频人成| 欧美大尺度电影在线| 国产成人高清视频| 一区二区国产盗摄色噜噜| 欧美老肥妇做.爰bbww视频| 国内外成人在线| 日韩久久一区二区| 欧美丰满嫩嫩电影| 韩国成人精品a∨在线观看| 中文无字幕一区二区三区| 色婷婷久久一区二区三区麻豆| 日韩va亚洲va欧美va久久| 久久免费视频色| 日本道色综合久久| 精品影视av免费| 成人欧美一区二区三区在线播放| 欧美午夜影院一区| 国产一区二区三区香蕉| 亚洲欧美日韩小说| 日韩精品一区二区三区老鸭窝| 99久久综合色| 蜜臀久久久99精品久久久久久| 欧美国产精品v| 69成人精品免费视频| 粉嫩高潮美女一区二区三区| 亚洲第一综合色| 久久久综合网站| 欧美羞羞免费网站| 国产麻豆精品一区二区| 亚洲一区免费视频| 久久久久国产一区二区三区四区| 在线精品亚洲一区二区不卡| 麻豆国产欧美日韩综合精品二区| 亚洲欧洲日韩av| 日韩欧美成人激情| 欧美日韩在线综合| 成人性视频免费网站| 美国十次综合导航| 亚洲精品免费播放| 国产亚洲一区字幕| 91精品久久久久久蜜臀| 91免费版在线| 国产成人亚洲综合a∨婷婷| 日韩在线a电影| 亚洲欧洲av色图| 久久蜜桃一区二区| 91精品国产91久久久久久一区二区 | 欧美日韩国产影片| aaa欧美大片| 国产suv一区二区三区88区| 日本女优在线视频一区二区| 亚洲精品国产一区二区三区四区在线| 国产亚洲精品久| 亚洲精品一区二区三区在线观看| 欧美艳星brazzers| 91亚洲精品一区二区乱码| 国产成人精品1024| 国产一区激情在线| 美腿丝袜亚洲一区| 视频一区二区三区入口| 亚洲国产精品久久久男人的天堂| 国产精品久久久久一区| 国产亚洲一本大道中文在线| 日韩精品一区二区三区在线播放 | 日韩欧美国产午夜精品| 欧美日韩精品一区二区三区四区| 97aⅴ精品视频一二三区| 成人sese在线| 成人激情综合网站|