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

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

?? main.c

?? 在JXARM9-2410教學實驗箱進行IDE硬盤驅動的實驗。
?? C
字號:
/****************************************************************************/
/*                                                                          */
/* FILE NAME                                      VERSION                   */
/*                                                                          */
/* IDE.C                                            1.0                     */
/*                                                                          */
/* DESCRIPTION                                                              */
/*                                                                          */
/*     JXARM9-2410(S3C2410X)IDE驅動實驗                                     */
/*                                                                          */
/*                                                                          */
/* DATA STRUCTURES                                                          */
/*                                                                          */
/* FUNCTIONS :                                                              */
/*     在JXARM9-2410教學實驗箱進行IDE硬盤驅動的實驗                         */
/*                                                                          */
/* DEPENDENCIES                                                             */
/*     JXARM9-2410-1                                                        */
/*     JXARM9-2410-2                                                        */
/*     JXARM9-2410-3                                                        */
/*                                                                          */
/*                                                                          */
/* NAME:                                                                    */
/* REMARKS:                                                                 */
/*                                                                          */
/*								Copyright (C) 2003 Wuhan CVTECH CO.,LTD     */
/****************************************************************************/

/****************************************************************************/
/* 學習JXARM9-2410中IDE驅動函數的編寫方法:                                 */
/* 注意:                                                                   */
/*     1. 程序運行前請正確接入IDE硬盤,并通電,具體連接請閱讀用戶手冊       */
/*     2. 請不要帶電拔插IDE硬盤接口                                         */
/*     3. 寫硬盤操作將破壞硬盤中的數據,請小心實驗,并備份您的硬盤數據      */
/****************************************************************************/


/**************************************************************************
7.2  I/O Register Descriptions 

Communication to or from the drive is through an I/O Register that routes the 
input or output data to or from registers (selected) by a code on signals from 
the host (CS1FX-, CS3FX-, DA2, DA1, DA0, DIOR- and DIOW-). 

The Command Block Registers are used for sending commands to the drive or 
posting status from the drive. 

The Control Block Registers are used for drive control and to post alternate 
status. 

Table 7-1 lists these registers and the addresses that select them. 

Logic conventions are:   A = signal asserted
                         N = signal negated
                         x = does not matter which it is

            TABLE 7-1:  I/O PORT FUNCTIONS/SELECTION ADDRESSES 
 +-------------------------------+-----------------------------------------+
 |         Addresses             |                 Functions               |
 |CS1FX-|CS3FX-| DA2 | DA1 | DA0 |    READ (DIOR-)     |   WRITE (DIOW-)   |
 +------+------+-----+-----+-----+---------------------+-------------------+
 |                                        Control Block Registers          |
 +------+------+-----+-----+-----+---------------------+-------------------+
 |  N   |  N   |  x  |  x  |  x  | Data Bus High Imped | Not used          |
 |  N   |  A   |  0  |  x  |  X  | Data Bus High Imped | Not used          |
 |  N   |  A   |  1  |  0  |  x  | Data Bus High Imped | Not used          |
 |  N   |  A   |  1  |  1  |  0  | Alternate Status    | Device Control    | 
 |  N   |  A   |  1  |  1  |  1  | Drive Address       | Not used          |
 +------+------+-----+-----+-----+---------------------+-------------------+
 |                                        Command Block Registers          |
 +------+------+-----+-----+-----+---------------------+-------------------+
 |  A   |  N   |  0  |  0  |  0  | Data                | Data              |
 |  A   |  N   |  0  |  0  |  1  | Error Register      | Features          |
 |  A   |  N   |  0  |  1  |  0  | Sector Count        | Sector Count      |
 |  A   |  N   |  0  |  1  |  1  | Sector Number       | Sector Number     | 
 |  A   |  N   |  0  |  1  |  1  | * LBA Bits  0- 7    | * LBA Bits  0- 7  |
 |  A   |  N   |  1  |  0  |  0  | Cylinder Low        | Cylinder Low      |
 |  A   |  N   |  1  |  0  |  0  | * LBA Bits  8-15    | * LBA Bits  8-15  |
 |  A   |  N   |  1  |  0  |  1  | Cylinder High       | Cylinder High     | 
 |  A   |  N   |  1  |  0  |  1  | * LBA Bits 16-23    | * LBA Bits 16-23  |
 |  A   |  N   |  1  |  1  |  0  | Drive/Head          | Drive/Head        |
 |  A   |  N   |  1  |  1  |  0  | * LBA Bits 24-27    | * LBA Bits 24-27  |
 |  A   |  N   |  1  |  1  |  1  | Status              | Command           |
 |  A   |  A   |  x  |  x  |  x  | Invalid Address     | Invalid Address   |
 +------+------+-----+-----+-----+---------------------+-------------------+
                      * Mapping of registers in LBA Mode
**************************************************************************/

#include "def.h"
#include "2410lib.h"
#include "option.h"
#include "2410addr.h"
#include "interrupt.h"

void Main(void)
{
	unsigned short 	dd [256];   /* DiskData */
	unsigned short 	dd_off;     /* DiskData offset */
	unsigned long  	wait_loop;  /* Timeout loop */
	unsigned int 	base;       /* Base address of drive controller */
	unsigned char 	in_val;
    unsigned int 	i;	
	
	/* 配置系統時鐘 */
    ChangeClockDivider(1,1);          // 1:2:4    
    ChangeMPllValue(0xa1,0x3,0x1);    // FCLK=202.8MHz  
    
    /* 初始化端口 */
    Port_Init();
    
    /* 初始化串口 */
    Uart_Init(0,115200);
    Uart_Select(0);
    
    /* 打印提示信息 */
	PRINTF("\n---IDE測試程序---\n請先將IDE硬盤插入IDE插座\n");

	// base address
    base = IDE_COMMAND_BASE;
    
    // set iois
    ide_iois_ctrl(0x0);
    Delay(10);
    
	// switch to command block registers
	ide_cs_ctrl(2);
	Delay(10);
	
	// reset
	ide_rst_ctrl(1);
	Delay(30);
	ide_rst_ctrl(0);
	Delay(50);
	ide_rst_ctrl(1);
	Delay(30);
	
	rBWSCON &= (~(0xf<<8));
	rBWSCON |= (0x01<<8);

	rBANKCON2 = 0x7ffc;	
	Delay(300);


	/* Wait for controller not busy */
	while (1)
	{
		in_val = inp (base + 14);
		Uart_Printf("in_val = 0x%x\n", in_val);
	
		if ((in_val & 0x80) != 0x80)
			break;
	}
			
	Delay(10);
	outp (base + 12, 0xA0);		
	Delay(10);
	outp (base + 14, 0xEC);          /* Get drive info data */
	Delay(50);	

	for (dd_off = 0; dd_off != 512; dd_off+=2) /* Read "sector" */
	{
		if(dd_off % 0x10 == 0)
			Uart_Printf("\n");
		dd[dd_off/2] = inw (base);
		Uart_Printf("%c %c ", dd[dd_off/2], dd[dd_off/2 + 1]);
	}

	Uart_Printf ("Model Number______________________: %s\n", getascii (dd, 27, 46));
	Uart_Printf ("Serial Number_____________________: %s\n", getascii (dd, 10, 19));
	Uart_Printf ("Controller Revision Number________: %s\n\n", getascii (dd, 23, 26));
		
	Uart_Printf ("Able to do Double Word Transfer___: %s\n", (dd [48] == 0 ? "No" : "Yes"));
	Uart_Printf ("Controller buffer size (bytes)____: %u\n", dd [21] * 512);
	Uart_Printf ("Transfer Speed____________________: ");
	if (dd [0] & 0x0400)
		Uart_Printf ("> 10 Mbit/sec\n");
	if (dd [0] & 0x0200)
		Uart_Printf ("5-10 Mbit/sec\n");
	if (dd [0] & 0x0100)
		Uart_Printf ("< 5 Mbit/sec\n");
	Uart_Printf ("\nDrive Type________________________: ");
	if (dd [0] & 0x0080)
		Uart_Printf ("Removable\n");
	if (dd [0] & 0x0040)
		Uart_Printf ("Fixed\n");
	Uart_Printf ("IORDY Supported___________________: %s\n", ((dd [49] & 0x0800) ? "Yes" : "No"));
	Uart_Printf ("Can IORDY be disabled by device___: %s\n", ((dd [49] & 0x0400) ? "Yes" : "No"));
	Uart_Printf ("LBA Mode supported________________: %s\n", ((dd [49] & 0x0200) ? "Yes" : "No"));
	Uart_Printf ("DMA Supported_____________________: %s\n", ((dd [49] & 0x0100) ? "Yes" : "No"));
	Uart_Printf ("Number of ECC bytes transferred___: %u\n", dd [22]);
	Uart_Printf ("Number of sectors per interrupt___: %u\n\n", dd [47] % 256);
	Uart_Printf ("Number of Cylinders_______________: %u\n", dd [1]);
	Uart_Printf ("Number of Heads___________________: %u\n", dd [3]);
	Uart_Printf ("Number of Sectors per Track_______: %u\n\n", dd [6]);
	 
 	Delay(100);
	
	Uart_Printf ("\nRead head %d clyn %d sec_num %d...\n", 0,0,2);
	ide_read_sector(1, 2, 0, 0, (unsigned char*)dd);
	dump_data((unsigned char*)dd, 512);

	Uart_Printf ("\nRead head %d clyn %d sec_num %d...\n", 0,0,1);
	ide_read_sector(1, 1, 0, 0, (unsigned char*)dd);
	dump_data((unsigned char*)dd, 512);
	
	for (dd_off = 0; dd_off != 256; dd_off+=1) /* Read "sector" */
	{
		dd[dd_off] = dd_off;
	}
			
	while(1);
    
	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍亚洲综合| 国产福利不卡视频| 国产精品一级在线| 欧美视频你懂的| 国产日本欧美一区二区| 亚洲五月六月丁香激情| 高清国产一区二区| 日韩精品一区二区三区swag| 亚洲日穴在线视频| 成人一区二区三区视频| 日韩精品一区二区三区视频在线观看| 亚洲欧美日韩在线播放| 国产风韵犹存在线视精品| 日韩一区二区三区免费看| 日韩高清中文字幕一区| 成人黄色免费短视频| 亚洲精品在线三区| 免费看日韩精品| 欧美精品色综合| 亚洲精品高清视频在线观看| 99久久婷婷国产| 国产精品青草综合久久久久99| 六月丁香综合在线视频| 欧美久久久久中文字幕| 亚洲午夜精品在线| 欧美在线观看一区| 一区二区在线看| 91在线一区二区| 欧美激情一区在线| 成人丝袜视频网| 国产精品理伦片| 色哟哟日韩精品| 亚洲动漫第一页| 69堂亚洲精品首页| 日韩精品视频网站| 欧美一区二区人人喊爽| 蜜臀久久久久久久| 日韩三级视频在线看| 美女精品一区二区| 久久久久久免费| 成人av在线影院| 国产真实乱偷精品视频免| 日韩免费高清av| 国产精品99久久久久久久vr | 日本不卡123| 日韩一区二区三区免费看 | gogo大胆日本视频一区| 中文字幕字幕中文在线中不卡视频| 99久久精品费精品国产一区二区| 国产精品久久久久久久久快鸭 | 国产一区二区看久久| www久久久久| 成人免费毛片嘿嘿连载视频| 国产精品免费久久久久| 91久久国产最好的精华液| 亚洲一区二区三区中文字幕在线| 欧美写真视频网站| 天天综合色天天| 国产日韩欧美精品电影三级在线| aaa欧美大片| 亚洲一区二区三区在线| 欧美videossexotv100| www.欧美日韩| 五月天亚洲精品| 国产欧美一区二区精品秋霞影院| 色香蕉久久蜜桃| 免费观看91视频大全| 国产精品久久久久久久久久久免费看 | 久久精品国产网站| 中文在线一区二区| 精品视频一区 二区 三区| 毛片基地黄久久久久久天堂| 亚洲欧洲日韩女同| 欧美一区二区网站| 播五月开心婷婷综合| 日本少妇一区二区| √…a在线天堂一区| 日韩视频免费观看高清在线视频| 成人免费观看视频| 日本成人在线视频网站| 亚洲欧美二区三区| 久久久久久久久久久久久久久99| 欧美性生交片4| 国产激情一区二区三区| 琪琪久久久久日韩精品| 亚洲精品成a人| 久久久久久毛片| 日韩一区二区在线看| 欧美亚洲动漫制服丝袜| k8久久久一区二区三区 | 亚洲一区免费视频| 中日韩免费视频中文字幕| 91麻豆精品国产91| 91原创在线视频| 国精产品一区一区三区mba视频| 亚洲一二三四区| 国产欧美一区二区精品秋霞影院 | 蜜臀久久久99精品久久久久久| 一区二区免费在线| 国产精品二区一区二区aⅴ污介绍| 日韩欧美亚洲一区二区| 欧美日韩免费一区二区三区视频| 色婷婷久久综合| 99国产精品视频免费观看| 国产大陆a不卡| 国产成人av影院| 国产伦精品一区二区三区视频青涩| 青青草国产成人av片免费| 亚洲一区二区欧美日韩| 亚洲精品五月天| 亚洲丝袜另类动漫二区| 日韩毛片视频在线看| 亚洲天天做日日做天天谢日日欢| 欧美极品美女视频| 国产亚洲综合性久久久影院| 精品国产乱码久久久久久1区2区| 日韩午夜av一区| 精品国产免费一区二区三区香蕉| 日韩女优视频免费观看| 日韩欧美一级特黄在线播放| 制服丝袜亚洲精品中文字幕| 欧美日韩精品一区二区在线播放| 欧美日韩黄色一区二区| 91麻豆精品国产91久久久久| 日韩视频一区在线观看| 国产亚洲va综合人人澡精品 | 一区二区欧美在线观看| 亚洲午夜三级在线| 婷婷中文字幕综合| 美女视频免费一区| 国内精品视频666| 成人av在线网站| 欧美性色黄大片手机版| 欧美精品乱码久久久久久| 日韩精品一区二区三区在线| 久久久久久久网| 亚洲精品国产视频| 日韩高清一级片| 国产成人一区在线| 色婷婷激情综合| 欧美一个色资源| 久久久久久久久久美女| 亚洲柠檬福利资源导航| 日韩在线卡一卡二| 国产盗摄精品一区二区三区在线 | 国产.精品.日韩.另类.中文.在线.播放| 国产69精品一区二区亚洲孕妇| 色综合天天综合在线视频| 欧美日韩精品免费观看视频| 久久精品免视看| 亚洲国产综合人成综合网站| 国产一区二区三区免费在线观看| 风间由美一区二区三区在线观看 | 精品精品国产高清a毛片牛牛| 久久久久国产免费免费| 一区二区三区精品视频在线| 免费观看久久久4p| 色综合天天综合狠狠| 精品卡一卡二卡三卡四在线| 亚洲黄色av一区| 国产精品1区2区3区在线观看| 欧美伊人久久大香线蕉综合69| 久久无码av三级| 婷婷成人综合网| 91视频国产观看| 久久久久久久一区| bt欧美亚洲午夜电影天堂| 欧美日韩一区二区在线视频| 国产三级精品视频| 美女mm1313爽爽久久久蜜臀| 欧美三级日韩三级| 亚洲天堂中文字幕| 国产一区二区调教| 91精品国产91综合久久蜜臀| 综合久久久久久| 国产成人鲁色资源国产91色综| 91精品国产品国语在线不卡| 成人欧美一区二区三区| 国产一区美女在线| 日韩亚洲欧美在线观看| 亚洲成人免费在线| 91激情五月电影| 日韩码欧中文字| 成人动漫在线一区| 久久久久久久久久久久电影 | 亚洲风情在线资源站| 成人性视频网站| 久久综合av免费| 蜜臀av一级做a爰片久久| 欧美性色综合网| 亚洲综合另类小说| 色综合久久久网| 亚洲视频免费观看| av在线播放不卡| 国产偷国产偷精品高清尤物| 国产精品自拍一区| 国产夜色精品一区二区av| 国产激情一区二区三区桃花岛亚洲| 26uuu久久天堂性欧美| 国产一区二区三区免费播放|