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

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

?? main_custom.c

?? Free Usb Stack for NXP LPC2xxx microcontrollers.
?? C
字號:
/*	LPCUSB, an USB device driver for LPC microcontrollers		Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)	Redistribution and use in source and binary forms, with or without	modification, are permitted provided that the following conditions are met:	1. Redistributions of source code must retain the above copyright	   notice, this list of conditions and the following disclaimer.	2. Redistributions in binary form must reproduce the above copyright	   notice, this list of conditions and the following disclaimer in the	   documentation and/or other materials provided with the distribution.	3. The name of the author may not be used to endorse or promote products	   derived from this software without specific prior written permission.	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*//*	This is a very simple custom device (not belonging to a specific USB	class). It implements primitive read and write in the ARM memory space.		Each transfer is initiated by a control transfer to inform the device	about the address and size of the following data transfer.	The data transfer takes place over a bulk endpoint (BULK_IN_EP for	reads and BULK_OUT_EP for writes).	This example can be used to measure USB transfer speed.*/#include "type.h"#include "usbdebug.h"#include "console.h"#include "usbapi.h"#include "startup.h"#define BULK_IN_EP		0x82#define BULK_OUT_EP		0x05#define MAX_PACKET_SIZE	64#define LE_WORD(x)		((x)&0xFF),((x)>>8)static const U8 abDescriptors[] = {/* Device descriptor */	0x12,              			DESC_DEVICE,       			LE_WORD(0x0200),		// bcdUSB		0xFF,              		// bDeviceClass	0x00,              		// bDeviceSubClass	0x00,              		// bDeviceProtocol	MAX_PACKET_SIZE0,  		// bMaxPacketSize	LE_WORD(0xFFFF),		// idVendor	LE_WORD(0x0004),		// idProduct	LE_WORD(0x0100),		// bcdDevice	0x01,              		// iManufacturer	0x02,              		// iProduct	0x03,              		// iSerialNumber	0x01,              		// bNumConfigurations// configuration	0x09,	DESC_CONFIGURATION,	LE_WORD(0x20),  		// wTotalLength	0x01,  					// bNumInterfaces	0x01,  					// bConfigurationValue	0x00,  					// iConfiguration	0x80,  					// bmAttributes	0x32,  					// bMaxPower// interface	0x09,   					DESC_INTERFACE, 	0x00,  		 			// bInterfaceNumber	0x00,   				// bAlternateSetting	0x02,   				// bNumEndPoints	0xFF,   				// bInterfaceClass	0x00,   				// bInterfaceSubClass	0x00,   				// bInterfaceProtocol	0x00,   				// iInterface// bulk in	0x07,   			DESC_ENDPOINT,   			BULK_IN_EP,				// bEndpointAddress	0x02,   				// bmAttributes = BULK	LE_WORD(MAX_PACKET_SIZE),// wMaxPacketSize	0,						// bInterval   		// bulk out	0x07,   			DESC_ENDPOINT,   			BULK_OUT_EP,			// bEndpointAddress	0x02,   				// bmAttributes = BULK	LE_WORD(MAX_PACKET_SIZE),// wMaxPacketSize	0,						// bInterval   		// string descriptors	0x04,	DESC_STRING,	LE_WORD(0x0409),	// manufacturer string	0x0E,	DESC_STRING,	'L', 0, 'P', 0, 'C', 0, 'U', 0, 'S', 0, 'B', 0,	// product string	0x1A,	DESC_STRING,	'M', 0, 'e', 0, 'm', 0, 'o', 0, 'r', 0, 'y', 0, 'A', 0, 'c', 0, 'c', 0, 'e', 0, 's', 0, 's', 0,	// serial number string	0x12,	DESC_STRING,	'D', 0, 'E', 0, 'A', 0, 'D', 0, 'C', 0, '0', 0, 'D', 0, 'E', 0,		// terminator	0};typedef struct {	U32		dwAddress;	U32		dwLength;} TMemoryCmd;static TMemoryCmd	MemoryCmd;static U8			abVendorReqData[sizeof(TMemoryCmd)];static void _HandleBulkIn(U8 bEP, U8 bEPStatus){	int iChunk;		iChunk = MIN(MAX_PACKET_SIZE, MemoryCmd.dwLength);	if (iChunk == 0) {		DBG("done\n");		return;	}		// send next part	USBHwEPWrite(bEP, (U8 *)MemoryCmd.dwAddress, iChunk);		MemoryCmd.dwAddress += iChunk;	MemoryCmd.dwLength -= iChunk;	// limit address range to prevent abort	MemoryCmd.dwAddress &= ~(-512 * 1024);}static void _HandleBulkOut(U8 bEP, U8 bEPStatus){	int iChunk;		// get next part	iChunk = USBHwEPRead(bEP, NULL, 0);		MemoryCmd.dwAddress += iChunk;	MemoryCmd.dwLength -= iChunk;		if (MemoryCmd.dwLength == 0) {		DBG("done\n");	}}/*************************************************************************	HandleVendorRequest	===================		Handles vendor specific requests			Control transfer fields:	* request:	0x01 = prepare memory read				0x02 = prepare memory write	* index:	ignored	* value:	ignored	* data:		U32 dwAddress				U32 dwLength		**************************************************************************/static BOOL HandleVendorRequest(TSetupPacket *pSetup, int *piLen, U8 **ppbData){	TMemoryCmd	*pCmd;		pCmd = (TMemoryCmd *)*ppbData;	switch (pSetup->bRequest) {		// prepare read	case 0x01:		MemoryCmd = *pCmd;		DBG("READ: addr=%X, len=%d\n", MemoryCmd.dwAddress, MemoryCmd.dwLength);		// send initial packet		_HandleBulkIn(BULK_IN_EP, 0);		*piLen = 0;		break;			// prepare write	case 0x02:		MemoryCmd = *pCmd;		DBG("WRITE: addr=%X, len=%d\n", MemoryCmd.dwAddress, MemoryCmd.dwLength);		*piLen = 0;		break;	default:		DBG("Unhandled class %X\n", pSetup->bRequest);		return FALSE;	}	return TRUE;}#define BAUD_RATE	115200/*************************************************************************	main	====**************************************************************************/int main(void){	// PLL and MAM	Initialize();	// init DBG	ConsoleInit(60000000 / (16 * BAUD_RATE));	DBG("Initialising USB stack\n");		// initialise stack	USBInit();		// register device descriptors	USBRegisterDescriptors(abDescriptors);	// override standard request handler	USBRegisterRequestHandler(REQTYPE_TYPE_VENDOR, HandleVendorRequest, abVendorReqData);	// register endpoints	USBHwRegisterEPIntHandler(BULK_IN_EP, _HandleBulkIn);	USBHwRegisterEPIntHandler(BULK_OUT_EP, _HandleBulkOut);	DBG("Starting USB communication\n");	// connect to bus	USBHwConnect(TRUE);	// call USB interrupt handler continuously	while (1) {		USBHwISR();	}		return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久一二三区| 日韩精品久久理论片| 亚洲乱码国产乱码精品精可以看| 亚洲成人自拍偷拍| 成人av第一页| 欧美一区二区在线不卡| 国产精品高清亚洲| 久久成人免费网站| 91黄色激情网站| 久久久久国产成人精品亚洲午夜| 一区二区三区精密机械公司| 美女看a上一区| 色综合久久久久久久久久久| 日韩一区二区在线免费观看| 亚洲欧美成人一区二区三区| 国内精品久久久久影院色| 不卡的av在线| 久久久国产精华| 麻豆freexxxx性91精品| 欧美日韩国产系列| 亚洲桃色在线一区| 国产 欧美在线| 69久久夜色精品国产69蝌蚪网| 中文字幕亚洲在| 丁香激情综合五月| 欧美成人女星排名| 青青草精品视频| 欧美喷水一区二区| 亚洲主播在线播放| 色视频欧美一区二区三区| 国产欧美一区二区精品性色| 国内精品国产成人国产三级粉色| 日韩一卡二卡三卡四卡| 日韩精品国产精品| 91.成人天堂一区| 日韩国产精品91| 欧美乱妇15p| 人人精品人人爱| 7777精品伊人久久久大香线蕉完整版| 亚洲狼人国产精品| 色综合网色综合| 亚洲精品视频免费观看| 99久久99久久精品免费观看| 亚洲三级在线播放| 日本久久一区二区三区| 亚洲自拍与偷拍| 69p69国产精品| 国产一区二区女| 国产精品视频在线看| 99久久er热在这里只有精品66| 亚洲欧美日韩国产另类专区| 91国产福利在线| 五月天一区二区三区| 日韩天堂在线观看| 国模冰冰炮一区二区| 国产视频一区二区三区在线观看| 粉嫩av一区二区三区在线播放 | 日本一区二区三级电影在线观看 | 欧美精品 国产精品| 爽爽淫人综合网网站| 欧美一区二区三区视频在线| 国产又黄又大久久| 久久久99精品免费观看| av不卡一区二区三区| 亚洲国产成人tv| 久久精品免视看| 91浏览器在线视频| 奇米影视一区二区三区小说| 国产亚洲污的网站| 日本乱人伦aⅴ精品| 人妖欧美一区二区| 国产精品午夜久久| 欧美日韩性生活| 国产很黄免费观看久久| 一区二区在线观看av| 精品日韩欧美在线| 在线欧美日韩精品| 久久91精品国产91久久小草| 国产精品传媒在线| 日韩免费视频一区二区| 91传媒视频在线播放| 九九热在线视频观看这里只有精品| 国产精品三级视频| 欧美巨大另类极品videosbest| 国产成人免费av在线| 日韩精彩视频在线观看| 国产精品成人一区二区三区夜夜夜 | 91精品久久久久久久99蜜桃 | 久久久国产精品不卡| 欧美日韩大陆在线| 91视频国产资源| 国产成人午夜精品影院观看视频| 亚洲国产精品久久人人爱| 日本一区二区三区高清不卡| 91精品国产欧美日韩| 91久久精品国产91性色tv| 国产精品99久久久久久有的能看| 午夜不卡av免费| 亚洲欧美福利一区二区| 国产精品久久久久影视| 久久久久国产精品麻豆ai换脸| 欧美一区二区三区成人| 精品视频色一区| 日本道免费精品一区二区三区| 国产福利一区二区三区在线视频| 视频一区免费在线观看| 亚洲国产视频a| 亚洲综合色噜噜狠狠| 综合色中文字幕| 中文字幕在线不卡国产视频| 国产欧美精品一区二区色综合| 日韩免费一区二区| 日韩欧美国产一区二区在线播放| 6080yy午夜一二三区久久| 欧美日韩综合色| 欧美日韩第一区日日骚| 91麻豆精品国产自产在线观看一区 | 欧美日韩精品一区二区三区| 色偷偷久久一区二区三区| 91免费精品国自产拍在线不卡| 成人免费看的视频| 国产盗摄一区二区| 成人午夜免费电影| 99在线精品视频| 91女神在线视频| 91麻豆精品一区二区三区| 99视频超级精品| 在线日韩国产精品| 777色狠狠一区二区三区| 欧美久久一二区| 精品欧美乱码久久久久久| 亚洲精品一区二区在线观看| 久久久久久毛片| 最好看的中文字幕久久| 亚洲一级二级三级| 蜜桃视频一区二区三区| 韩国av一区二区三区在线观看| 国产一区二区三区电影在线观看| 国产乱人伦精品一区二区在线观看| 国产成人在线视频网站| 99精品视频在线免费观看| 欧美日韩中文字幕一区| 2023国产精品自拍| 国产精品国产馆在线真实露脸| 亚洲综合色噜噜狠狠| 捆绑紧缚一区二区三区视频| 成人美女在线观看| 欧美日韩三级一区| 久久久99精品免费观看| 一卡二卡三卡日韩欧美| 久久99这里只有精品| 99久久精品免费| 日韩免费在线观看| 亚洲人快播电影网| 麻豆久久一区二区| 不卡电影免费在线播放一区| 欧美三级韩国三级日本一级| 久久九九国产精品| 亚洲mv在线观看| 成人动漫av在线| 91精品国产高清一区二区三区| 国产女人水真多18毛片18精品视频| 亚洲影视在线播放| 国产精品1区2区3区在线观看| 色久综合一二码| 久久精品亚洲精品国产欧美| 亚洲午夜日本在线观看| 国产麻豆精品95视频| 欧美性大战久久久久久久蜜臀| 久久综合国产精品| 天堂va蜜桃一区二区三区漫画版| 国产69精品久久久久毛片| 日韩一区国产二区欧美三区| 亚洲欧美日韩在线不卡| 高清视频一区二区| 91精品国产欧美一区二区成人| 中文字幕综合网| 国产精品中文字幕欧美| 欧美精品v日韩精品v韩国精品v| 国产精品久久久久久久久免费相片| 日韩av电影一区| 欧美日韩亚洲国产综合| 最新中文字幕一区二区三区| 国模一区二区三区白浆| 欧美一区二区在线观看| 亚洲第一成人在线| 欧美综合色免费| 亚洲人成网站影音先锋播放| 成人免费观看视频| 久久久久久久久久久黄色| 毛片不卡一区二区| 日韩视频123| 午夜精品爽啪视频| 欧美日韩的一区二区| 亚洲午夜视频在线| 欧美久久久一区| 五月综合激情婷婷六月色窝| 欧美日韩国产一级二级| 婷婷综合五月天| 欧美精品vⅰdeose4hd|