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

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

?? usb.c

?? 基于armjx44bo下的USB接口的程序.對應的實驗平臺是jx44b0x
?? C
字號:
/****************************************************************************/
/*                                                                          */
/* FILE NAME                                      VERSION                   */
/*                                                                          */
/* USB.C                                            1.0                     */
/*                                                                          */
/* DESCRIPTION                                                              */
/*                                                                          */
/*     JX44B0(S3C44B0X)USB驅動實驗                                          */
/*                                                                          */
/*                                                                          */
/* DATA STRUCTURES                                                          */
/*                                                                          */
/* FUNCTIONS :                                                              */
/*     在JX44B0教學實驗箱進行USB實驗                                        */
/*                                                                          */
/* DEPENDENCIES                                                             */
/*     JX44B0-1                                                             */
/*     JX44B0-2                                                             */
/*     JX44B0-3                                                             */
/*                                                                          */
/*                                                                          */
/* NAME:                                                                    */
/* REMARKS:                                                                 */
/*                                                                          */
/*								Copyright (C) 2003 Wuhan CVTECH CO.,LTD     */
/****************************************************************************/

/****************************************************************************/
/* 學習JX44B0中USB驅動的編程方法:                                          */
/* 注意:                                                                   */
/*     1. 程序運行之前請將JX44B0 USB正確地與PC端進行連接,具體連接方法請    */
/*     閱讀用戶手冊                                                         */
/*     2. 程序運行之前請先正確安裝PC端驅動程序,具體連接方法請閱讀用戶手冊  */
/*     USB PC端通訊使用JX44B0光盤tools目錄下的usb_loop.exe程序,該程序在    */
/*     JX44B0 的USB端口和PC的USB口之間進行通訊,實現回環測試                */
/****************************************************************************/

/* 包含文件 */
#include "44b.h"
#include "44blib.h"

#include "usb.h"
#include "usb_inc.h"
#include "usb_d12_ci.h"
#include "usb_d12_chap9.h"
#include "usb_d12_isr.h"
#include "usb_dbg.h"

void usb_init(void);
void usb_loop_test(void);

extern EPPFLAGS bEPPflags;
extern unsigned char 	*GenEpBuf;

/********************************************************************
// Function name	: Main
// Description	    : USB回環測試主程序
// Return type		: void
// Argument         : void
*********************************************************************/
void Main(void)
{
	char TestItemSel ;

	do 
	{
		Uart_Printf("\n#####################################\r") ;
		Uart_Printf("\n#        USB TEST ROUTINE           #\r") ;
		Uart_Printf("\n#####################################\r") ;
		Uart_Printf("\n# USB INITIAL                 - [I] #\r") ;
		Uart_Printf("\n# USB EP1/EP2 LOOP TEST       - [L] #\r") ;
		Uart_Printf("\n# Quit USB Test               - [Q] #\r") ;
		Uart_Printf("\n#####################################\r") ;
	
		Uart_Printf("\n\rSelect Test Item : ") ; TestItemSel = Uart_Getch() ;
		
		switch(TestItemSel)
		{
			case 'i' :	
			case 'I' : usb_init() 				; break ;
			case 'l' :
			case 'L' : usb_loop_test() 			; break ;
			case 'q' :
			case 'Q' : break ;
			default :  Uart_Printf("\n\nInvalid Test Item Selected") ; 
					   break ;
		}

	} while  ( (TestItemSel != 'Q') && (TestItemSel != 'q') ) ;
}

/********************************************************************
// Function name	: usb_init
// Description	    : USB初始化函數
// Return type		: void
// Argument         : void
*********************************************************************/
void usb_init(void)
{
    rNCACHBE0=0x80002000;//設置非CACHE的開始地址0x2000000,結束地址0x8000000
	 
	Uart_Printf("USB chip id : %04x\n",			D12_ReadChipID() ) ;
	Uart_Printf("USB interrupt reg : %04x\n",	D12_ReadInterruptRegister() ) ;
	Uart_Printf("USB current frame : %04x\n",	D12_ReadCurrentFrameNumber() ) ;
	Uart_Printf("USB Read end point status frame : %02x,%02x\n", 
		D12_ReadEndpointStatus(4), D12_ReadEndpointStatus(5)) ;
	Uart_Printf("USB Read last transtaction status : %02x,%02x,%02x,%02x\n", 
		D12_ReadLastTransactionStatus(0),D12_ReadLastTransactionStatus(1),
		D12_ReadLastTransactionStatus(2),D12_ReadLastTransactionStatus(3));
	Uart_Printf("USB Read Interrupt register : %04x\n",D12_ReadInterruptRegister());
}

/********************************************************************
// Function name	: usb_loop_test
// Description	    : USB回環測試
// Return type		: void
// Argument         : void
*********************************************************************/
void usb_loop_test(void)
{
	unsigned short i_st;

    rNCACHBE0=0x80002000;//設置非CACHE的開始地址0x2000000,結束地址0x8000000
	 
	Uart_Printf("loop test......\n");
	
	reconnect_USB();
	
	while(Uart_GetKey()==0x0)
	{
		i_st = D12_ReadInterruptRegister();
		
		if(i_st != 0) 
		{
			if(i_st & D12_INT_BUSRESET) 
			{
				bus_reset();
				bEPPflags.bits.bus_reset = 1;
				
				i_st &= ~D12_INT_BUSRESET;
			}
			else 
			{
				if(i_st & D12_INT_EOT)
				{
					dma_eot();
					i_st &= ~D12_INT_EOT;
				}

				if(i_st & D12_INT_SUSPENDCHANGE)
				{
					bEPPflags.bits.suspend = 1;
					i_st &= ~D12_INT_SUSPENDCHANGE;
				}

				if(i_st & D12_INT_ENDP0IN)
				{
					ep0_txdone();
					i_st &= ~D12_INT_ENDP0IN;
				}
				if(i_st & D12_INT_ENDP0OUT)
				{
					ep0_rxdone();
					i_st = ~D12_INT_ENDP0OUT;
				}
				if(i_st & D12_INT_ENDP1IN)
				{
					ep1_txdone();
					i_st &= ~D12_INT_ENDP1IN;
				}
				if(i_st & D12_INT_ENDP1OUT)
				{
					ep1_rxdone();
					i_st &= ~D12_INT_ENDP1OUT;
				}
				if(i_st & D12_INT_ENDP2IN)
				{
					main_txdone();
					i_st &= ~D12_INT_ENDP2IN;
				}
				if(i_st & D12_INT_ENDP2OUT)
				{
					main_rxdone();
					i_st &= ~D12_INT_ENDP2OUT;
				}
				
				if(bEPPflags.bits.ep1_rxdone)
				{
					
				}
				
				if (bEPPflags.bits.bus_reset) {
					DISABLE;
					bEPPflags.bits.bus_reset = 0;
					ENABLE;
				} // if bus reset
		
				if (bEPPflags.bits.suspend) {
					DISABLE;
					bEPPflags.bits.suspend= 0;
					ENABLE;
					suspend_change();
				} // if suspend change
		
				if (bEPPflags.bits.setup_packet){
					DISABLE;
					bEPPflags.bits.setup_packet = 0;
					ENABLE;
					control_handler();
				} // if setup_packet
		
				if(bEPPflags.bits.setup_dma) {
					DISABLE;
					bEPPflags.bits.setup_dma = 0;
					ENABLE;
					//setup_dma();
				} // if setup_dma
			}
		}
	}
}
void Usb_Get_Data(unsigned int addr)
{
	unsigned short i_st;
	unsigned char *paddr = (unsigned char *)(addr - 4);
	int            length = 0x100000;
	int            bGetlen = 0;
	
	rNCACHBE0=0x80002000;//設置非CACHE的開始地址0x2000000,結束地址0x8000000

	Uart_Printf("Download file from usb......\n");
	reconnect_USB();
	
	while(1)
	{
		i_st = D12_ReadInterruptRegister();
		
		if(i_st != 0) 
		{
			if(i_st & D12_INT_BUSRESET) 
			{
				bus_reset();
				bEPPflags.bits.bus_reset = 1;
				
				i_st &= ~D12_INT_BUSRESET;
			}
			else 
			{
				if(i_st & D12_INT_EOT)
				{
					dma_eot();
					i_st &= ~D12_INT_EOT;
				}
	
				if(i_st & D12_INT_SUSPENDCHANGE)
				{
					bEPPflags.bits.suspend = 1;
					i_st &= ~D12_INT_SUSPENDCHANGE;
				}
	
				if(i_st & D12_INT_ENDP0IN)
				{
					ep0_txdone();
					i_st &= ~D12_INT_ENDP0IN;
				}
				if(i_st & D12_INT_ENDP0OUT)
				{
					ep0_rxdone();
					i_st = ~D12_INT_ENDP0OUT;
				}
				if(i_st & D12_INT_ENDP1IN)
				{
					ep1_txdone();
					i_st &= ~D12_INT_ENDP1IN;
				}
				if(i_st & D12_INT_ENDP1OUT)
				{
					{
						unsigned char i;
						unsigned char len;
						
						D12_ReadLastTransactionStatus(2);		/* Clear interrupt flag */
						
						len = D12_ReadEndpoint(2, GenEpBuf, sizeof(GenEpBuf));
						if(len != 0)
						{
							memcpy(paddr, GenEpBuf, len);
							paddr += len;
							if(bGetlen == 0 && (int)paddr >= (int)addr)
							{
								length = *((unsigned int *)(addr-4));
								Uart_Printf("\r\nDownloading, size = %d(0x%x)... \r\n", length, length);
								bGetlen = 1;
							}
							if((int)paddr >= (int)addr + length)
							{
								Uart_Printf("Download complete\r\n");
								return;
							}
							Uart_Printf("\rpaddr = 0x%08x, addr = 0x%08x", paddr, addr);
							bEPPflags.bits.ep1_rxdone = 1;
						}
					}
					i_st &= ~D12_INT_ENDP1OUT;
				}
				if(i_st & D12_INT_ENDP2IN)
				{
					main_txdone();
					i_st &= ~D12_INT_ENDP2IN;
				}
				if(i_st & D12_INT_ENDP2OUT)
				{
					main_rxdone();
					i_st &= ~D12_INT_ENDP2OUT;
				}
				
				if(bEPPflags.bits.ep1_rxdone)
				{
					
				}
				
				if (bEPPflags.bits.bus_reset) {
					DISABLE;
					bEPPflags.bits.bus_reset = 0;
					ENABLE;
				} // if bus reset
		
				if (bEPPflags.bits.suspend) {
					DISABLE;
					bEPPflags.bits.suspend= 0;
					ENABLE;
					suspend_change();
				} // if suspend change
		
				if (bEPPflags.bits.setup_packet){
					DISABLE;
					bEPPflags.bits.setup_packet = 0;
					ENABLE;
					control_handler();
				} // if setup_packet
		
				if(bEPPflags.bits.setup_dma) {
					DISABLE;
					bEPPflags.bits.setup_dma = 0;
					ENABLE;
					//setup_dma();
				} // if setup_dma
			}
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女一区二区| 蜜桃视频免费观看一区| 午夜欧美一区二区三区在线播放| 久久99热这里只有精品| 91九色最新地址| 亚洲精品一区二区三区四区高清| 17c精品麻豆一区二区免费| 奇米777欧美一区二区| 色婷婷久久99综合精品jk白丝| 久久综合资源网| 性欧美疯狂xxxxbbbb| 色综合久久久久久久| 国产视频911| 精品一区二区三区免费播放| 在线观看一区日韩| 国产精品久久久久久一区二区三区 | 亚洲欧美激情在线| 久久99精品一区二区三区| 欧美午夜影院一区| 亚洲欧美视频在线观看视频| 成人精品免费看| 久久婷婷成人综合色| 免费人成在线不卡| 欧美喷水一区二区| 亚洲综合精品久久| 色婷婷综合久久久中文字幕| 国产精品热久久久久夜色精品三区 | 亚洲啪啪综合av一区二区三区| 韩国三级在线一区| 精品国产在天天线2019| 日本免费新一区视频| 欧美日韩另类一区| 五月天激情综合| 欧美日韩精品免费| 日韩高清欧美激情| 欧美一级日韩免费不卡| 日韩电影在线观看一区| 欧美一区二区久久| 久国产精品韩国三级视频| 日韩精品一区二区三区老鸭窝| 秋霞国产午夜精品免费视频| 欧美精品久久天天躁| 五月天精品一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 日韩精品电影在线| 日韩一二在线观看| 国产麻豆精品在线| 国产精品美女www爽爽爽| thepron国产精品| 一区二区三区精品在线| 欧美伊人久久大香线蕉综合69| 亚洲一级不卡视频| 日韩亚洲国产中文字幕欧美| 久久狠狠亚洲综合| 欧美国产欧美综合| 91在线免费看| 午夜精品免费在线| 久久久久久久一区| 一道本成人在线| 青青草97国产精品免费观看无弹窗版 | 欧美精品一区二区三| 国产成人免费视频精品含羞草妖精| 国产精品免费av| 欧美影院一区二区三区| 美女视频黄a大片欧美| 国产精品热久久久久夜色精品三区| 欧美三级视频在线播放| 日韩av在线发布| 国产欧美一区二区精品久导航| 91啪九色porn原创视频在线观看| 亚洲福利一二三区| 日本一区二区三区高清不卡| 欧美日韩一级片网站| 黄网站免费久久| 亚洲精品伦理在线| 精品国产一区a| 欧美体内she精视频| 国产乱码精品1区2区3区| 伊人性伊人情综合网| 欧美精品一区视频| 欧美吞精做爰啪啪高潮| 国产v日产∨综合v精品视频| 午夜影视日本亚洲欧洲精品| 中文字幕亚洲欧美在线不卡| 欧美电影免费观看完整版| 在线视频你懂得一区| 东方aⅴ免费观看久久av| 日日夜夜精品视频天天综合网| 国产欧美日韩精品在线| 日韩欧美你懂的| 欧美日韩高清一区二区| 99re66热这里只有精品3直播 | 国产不卡在线视频| 日本aⅴ精品一区二区三区| 国产精品国产自产拍高清av王其| 日韩三级在线观看| 色综合欧美在线| 成人v精品蜜桃久久一区| 久久99精品国产.久久久久久 | 成人欧美一区二区三区| 久久九九久精品国产免费直播| 欧美日韩国产综合一区二区| 色综合久久99| 91在线观看视频| 大陆成人av片| 粉嫩aⅴ一区二区三区四区五区| 韩日精品视频一区| 另类小说图片综合网| 日日夜夜免费精品| 日韩国产一区二| 天堂一区二区在线| 天天综合色天天| 亚洲国产日韩av| 亚洲永久免费视频| 亚洲乱码国产乱码精品精98午夜| 日韩一区有码在线| 亚洲啪啪综合av一区二区三区| 亚洲天堂网中文字| 亚洲精品综合在线| 亚洲成人在线免费| 日本欧美一区二区三区| 日本色综合中文字幕| 久久99精品一区二区三区| 韩国三级中文字幕hd久久精品| 国产乱人伦精品一区二区在线观看| 国内成人免费视频| 国产大片一区二区| 91在线高清观看| 91高清视频免费看| 欧美精选午夜久久久乱码6080| 欧美一区二区福利在线| 久久蜜桃香蕉精品一区二区三区| 国产欧美日韩久久| 亚洲一区二区欧美激情| 奇米综合一区二区三区精品视频| 国产在线不卡一卡二卡三卡四卡| 国模无码大尺度一区二区三区| 国产精品一二二区| 久久亚洲综合色| 国内精品久久久久影院色| 亚洲电影你懂得| 亚洲一区日韩精品中文字幕| 亚洲成人动漫在线观看| 欧洲一区二区三区在线| 国产老女人精品毛片久久| 久久久91精品国产一区二区精品| 国产欧美一区二区三区沐欲| 亚洲男人的天堂一区二区| 亚洲成人av电影在线| 国产一区二区影院| 色狠狠桃花综合| 精品国产一二三区| 一区二区三区精品在线观看| 捆绑变态av一区二区三区| 99久久99久久综合| 日韩亚洲国产中文字幕欧美| 自拍偷拍亚洲激情| 麻豆一区二区99久久久久| aa级大片欧美| 欧美大片日本大片免费观看| 亚洲乱码中文字幕| 韩国av一区二区三区四区| 在线亚洲精品福利网址导航| 久久久一区二区三区捆绑**| 亚洲国产一二三| 成人性生交大片免费| 91精品国产综合久久久久久| 中文字幕国产一区| 久久99精品国产.久久久久久| 欧美在线看片a免费观看| 中文字幕精品在线不卡| 日本美女视频一区二区| 在线观看亚洲a| 18成人在线观看| 国产精品原创巨作av| 91精品国产欧美一区二区成人 | 日韩一级片在线观看| 亚洲老妇xxxxxx| 丁香婷婷综合色啪| 欧美草草影院在线视频| 亚洲国产精品久久久久秋霞影院| 成人一区二区三区中文字幕| 日韩精品一区二区三区swag| 天天色综合成人网| 欧美中文字幕亚洲一区二区va在线| 欧美激情一区二区三区| 韩国欧美一区二区| 精品美女一区二区| 免费在线一区观看| 91精品婷婷国产综合久久性色| 亚洲欧美日韩中文播放 | 欧美日韩亚洲高清一区二区| 亚洲日本青草视频在线怡红院| 成人久久久精品乱码一区二区三区 | 中文字幕一区二区三区在线播放 | 欧洲色大大久久| 亚洲图片另类小说| jlzzjlzz欧美大全| 亚洲人成网站色在线观看| 波多野结衣欧美|