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

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

?? chap_9.c

?? ARM專輯-152M-pdf.zip
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
   //*************************************************************************
   //
   //                  P H I L I P S   P R O P R I E T A R Y
   //
   //           COPYRIGHT (c)   1999 BY PHILIPS SINGAPORE.
   //                     --  ALL RIGHTS RESERVED  --
   //
   // File Name:	    CHAP_9.C
   // Author:           Hilbert Zhang ZhenYu
   // Created:          Oct. 1 99
   // Modified:
   // Revision: 		0.0.
   //


#include  "config.h"                /* special function register declarations   */

#undef   GLOBAL_EXT

#include "SysCnfg.h"
#include "BasicTyp.H"

#include "usb100.h"

#include "Common.h"
#include "Hal4Sys.h"
#include "Hal4d12.h"
#include "mainloop.h"
#include "chap_9.h"


   //*************************************************************************
   // Public Data
   //*************************************************************************


// bit Flags
STRUC_EXT BITFLAGS   bFlags;

// MCU Timer bit flags
#define    MCUBF_Timer  	bFlags.bits.timer
INT8_EXT   Hal4Sys_ClockTicks;

// D12 bit flags
#define             D12BF_SetupOverwritten  		bFlags.bits.setup_overwritten
#define             D12BF_Configuration	  			bFlags.bits.configuration


//USB
// DefaultControlPipe Finite State Machine [One-Hot]
INT8_EXT 	_DCPFSMstate;
#define		DCPFSMstate			_DCPFSMstate
#define		DCPFSM_SetupProc 	_DCPFSMstate.bit_.b0
#define     DCPFSM_DataIn 		_DCPFSMstate.bit_.b1
#define     DCPFSM_DataOut 		_DCPFSMstate.bit_.b2
#define     DCPFSM_COhandshake 	_DCPFSMstate.bit_.b3
#define     DCPFSM_CIhandshake 	_DCPFSMstate.bit_.b4
#define     DCPFSM_Stall 		_DCPFSMstate.bit_.b7
//      DCP FSM
//      SETUP Stage -> SETUP Proc -> DATA OUT Stage -> CONTROL OUT Handshake -> STATUS Stage -> IDLE
//      SETUP Stage -> SETUP Proc -> CONTROL OUT Handshake -> STATUS Stage -> IDLE
//      SETUP Stage -> SETUP Proc -> DATA IN Stage-> CONTROL IN Handshake ->STATUS Stage -> IDLE
//


// USB Device Request
STRUC_EXT   DEVICE_REQUEST DCPDeviceRequest;
INT8_EXT    UsbReq_Recipient;
INT8_EXT    UsbReq_Type;
INT8_EXT    UsbReq_Request;
#define     REQBF_DCPRequest_dir  	bFlags.bits.DCPRequst_Dir
#define     REQBF_DCPRequest_EPdir  bFlags.bits.DCPRequst_EPDir
#define     REQBF_StallDCPRequest   bFlags.bits.Stall_DCPRequest



// Default Control Pipe Tansfer DCPXfer
STRUC_EXT char_bit  	_Xfer_Space;
#define 	Xfer_Space 			_Xfer_Space.char_
#define     DCPXfer_atMCUCODE 	_Xfer_Space.bit_.bit0
#define     DCPXfer_atMCURAM 	_Xfer_Space.bit_.bit1
#define    	DCPXfer_atEEROM 	_Xfer_Space.bit_.bit2
#define    	DCPXfer_atATA 		_Xfer_Space.bit_.bit3
#define   	BOTXfer_atRAM 		_Xfer_Space.bit_.bit4
#define   	BOTXfer_atATA 		_Xfer_Space.bit_.bit5
#define    	BOTXfer_atROM 		_Xfer_Space.bit_.bit6

INT16_EXT  DCPXfer_wResidue;
uint8   * DCPXfer_pData;

// Bulk-Only TP Finite State Machine [One-Hot]
STRUC_EXT char_bit _BOTFSMstate;
#define 	BOTFSMstate		_BOTFSMstate.char_ 
#define 	BOTFSM_IDLE 	_BOTFSMstate.bit_.b0
#define     BOTFSM_CBWProc  _BOTFSMstate.bit_.b1
#define     BOTFSM_DataIn 	_BOTFSMstate.bit_.b2
#define     BOTFSM_DataOut  _BOTFSMstate.bit_.b3
#define     BOTFSM_CSWProc  _BOTFSMstate.bit_.b4
#define     BOTFSM_CSW 		_BOTFSMstate.bit_.b5
#define     BOTFSM_Stall 	_BOTFSMstate.bit_.b7
//      BOT FSM
//      IDLE Stage ->  CBW -> CBW Proc -> DATA OUT Stage -> CSW Proc -> CSW Stage -> IDLE
//      IDLE Stage ->  CBW -> CBW Proc -> DATA IN Stage -> CSW Proc -> CSW Stage -> IDLE
//      STALL Stage ->  IDLE
//
#define    BOTBF_StallAtBulkOut  	bFlags.bits.BO_Stalled
#define    BOTBF_StallAtBulkIn  	bFlags.bits.BI_Stalled





//*************************************************************************
//  Public temp var
//*************************************************************************


//  Public temp var
STRUC_EXT   FLEXI_INT32 tempvars4UsbReq;

STRUC_EXT char_bit   _FlexByte;
#define    FlexByte		_FlexByte
#define    FlexByte_b0 	_FlexByte.bit_.b0
#define    FlexByte_b1 	_FlexByte.bit_.b1
#define    FlexByte_b2 	_FlexByte.bit_.b2
#define    FlexByte_b3 	_FlexByte.bit_.b3
#define    FlexByte_b4 	_FlexByte.bit_.b4
#define    FlexByte_b5 	_FlexByte.bit_.b5
#define    FlexByte_b6 	_FlexByte.bit_.b6
#define    FlexByte_b7 	_FlexByte.bit_.b7



   //*************************************************************************
   // Private temp var
   //*************************************************************************


   //*************************************************************************
   // USB Device Descriptor
   //*************************************************************************

//設(shè)備描述符
const USB_DEVICE_DESCRIPTOR DeviceDescr =
{
	sizeof(USB_DEVICE_DESCRIPTOR),         // 設(shè)備描述符長(zhǎng)度
	USB_DEVICE_DESCRIPTOR_TYPE,            // 設(shè)備描述符類型=01
	//SWAP(0x0100),                          // 協(xié)議版本
    0x0100,
    0,                                     // 測(cè)試設(shè)備類型
	0,                                     // 設(shè)備子類
    0,                                     // 設(shè)備協(xié)議
	EP0_PACKET_SIZE,                       // 端點(diǎn)0最大數(shù)據(jù)包大小,=10H

	//SWAP(0x0471),
	//0x0471,
	//SWAP(0x0666),
	//0x0666,
	//SWAP(0x0100),
	//0x0100,
   
  //  SWAP(0x0693),
	0x0693,  
//  SWAP(0x0003),
	0x0003,
  //  SWAP(0x0100),               // 設(shè)備系列號(hào)
	0x0100,
    STR_INDEX_MANUFACTURER,     // 廠商描述符字符串索引,=01H
	STR_INDEX_PRODUCT,          // 產(chǎn)品描述符字符串索引,=02H
	STR_INDEX_SERIALNUMBER,     // 設(shè)序列號(hào)字符串索引,=03H
    1                           // 可能備置數(shù)
};

#define NUM_ENDPOINTS	2         //定義除主控端點(diǎn)外的端點(diǎn)數(shù)

#define CONFIG_DESCRIPTOR_LENGTH    (sizeof(USB_CONFIGURATION_DESCRIPTOR) + sizeof(USB_INTERFACE_DESCRIPTOR) + (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR)))

//設(shè)備配置描述符
const USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
{
    sizeof(USB_CONFIGURATION_DESCRIPTOR),
    USB_CONFIGURATION_DESCRIPTOR_TYPE,      // 類型,=02H
    //SWAP(CONFIG_DESCRIPTOR_LENGTH),         // 返回整個(gè)數(shù)據(jù)長(zhǎng)度。包括該配置所返回的所有描述符(配置、接口、端點(diǎn)和類型或供應(yīng)商)=20H
	CONFIG_DESCRIPTOR_LENGTH,0x00,
	1,                                      // 配置所支持的接口數(shù)
	1,                                      // 作為Set Configuration 的一個(gè)參數(shù)選擇配置值 
    0,      //STR_INDEX_CONFIGURATION,      // 用于描述該配置字符串描述符的索引
	0x80,                                   // 配置特性:總線供電
	0x32     // zero power consumption
};

//接口描述符
const USB_INTERFACE_DESCRIPTOR InterfaceDescr =
{
    sizeof(USB_INTERFACE_DESCRIPTOR),
    USB_INTERFACE_DESCRIPTOR_TYPE,              // 接口描述符類型0x04
    0,                                          // 接口數(shù),只有1個(gè)
    0,                                          // 可選配置,只有1個(gè)
	NUM_ENDPOINTS,                              // 除端點(diǎn)0的端點(diǎn)過(guò)索引數(shù)目,=02H
    
    //0xdc,0x0a,0xb0,//調(diào)試模式	
	USB_CLASS_CODE_MASSSTORAGE_CLASS_DEVICE,    // 類型代號(hào)(由USB指定),=08H
	USB_SUBCLASS_CODE_SCSI,                     // 子類型代碼(由USB指定)=06H
	USB_PROTOCOL_CODE_BULK,                     // 協(xié)議代碼(由廠商指定)=50H 
    0                                           // 字符串描述符索引
};


// 端點(diǎn)2發(fā)送描述符
const USB_ENDPOINT_DESCRIPTOR EP1_TXDescr =
{
	sizeof(USB_ENDPOINT_DESCRIPTOR),
	USB_ENDPOINT_DESCRIPTOR_TYPE,          // 端點(diǎn)描述符類型,=05H
	0x82,                                  // 端點(diǎn)2 IN
	USB_ENDPOINT_TYPE_BULK,                // 端點(diǎn)屬性為批量,=02H
	//SWAP(EP2_PACKET_SIZE),                 // 端點(diǎn)發(fā)送的最大數(shù)據(jù)包64
	EP2_PACKET_SIZE,0x00,
	0                                      // 傳輸間隔時(shí)間(批量傳輸該值無(wú)效)
};


//端點(diǎn)2接收描述符
const USB_ENDPOINT_DESCRIPTOR EP2_RXDescr =
{
	sizeof(USB_ENDPOINT_DESCRIPTOR),   
	USB_ENDPOINT_DESCRIPTOR_TYPE,        // 端點(diǎn)描述符類型,=05H
	0x2,                                 // 端點(diǎn)2 OUT
	USB_ENDPOINT_TYPE_BULK,              // 端點(diǎn)屬性為批量,=02H
	//SWAP(EP2_PACKET_SIZE),               // 端點(diǎn)發(fā)送的最大數(shù)據(jù)包64
	EP2_PACKET_SIZE,0x00,
	0                                    // 傳輸間隔時(shí)間(批量傳輸該值無(wú)效)
};


//設(shè)備代碼
const USB_STRING_LANGUAGE_DESCRIPTOR  strLanguage =
{
	sizeof(USB_STRING_LANGUAGE_DESCRIPTOR),
	USB_STRING_DESCRIPTOR_TYPE,//0x03
	
	//SWAP(0x0410)
	0x0410,
};


//廠商描述符
const USB_STRING_MANUFACTURER_DESCRIPTOR  strManufacturer =
{
	sizeof(USB_STRING_MANUFACTURER_DESCRIPTOR),
	USB_STRING_DESCRIPTOR_TYPE,//0x03
	{
	'P', 0,
	'h', 0,
	'i', 0,
	'l', 0,
	'i', 0,
	'p', 0,
	's', 0,
	' ', 0,
	'A', 0,
	'P', 0,
	'I', 0,
	'C', 0}
};


//產(chǎn)品描述符
const USB_STRING_PRODUCT_DESCRIPTOR  strProduct =
{
	sizeof(USB_STRING_PRODUCT_DESCRIPTOR),
	USB_STRING_DESCRIPTOR_TYPE,//0x03
	{
	'U', 0,
	'S', 0,
	'B', 0,
	'-', 0,
	'I', 0,
	'D', 0,
	'E', 0,
	' ', 0,
	'A', 0,
	'd', 0,
	'a', 0,
	'p', 0,
	't', 0,
	'e', 0,
    'r', 0}
};


//設(shè)備出廠編碼
const USB_STRING_SERIALNUMBER_DESCRIPTOR  strSerialNum =
{
	sizeof(strSerialNum),
	USB_STRING_DESCRIPTOR_TYPE,//0x03
   {
	'0',0,
	'0',0,
	'0',0,
	'0',0,

	'0',0,
	'0',0,
	'0',0,
	'0',0,

	'0',0,
	'0',0,
	'0',0,
	'1',0}
};



   //*************************************************************************
   // USB standard device requests
   //*************************************************************************

void Chap9_SetAddress(void)//0x05
{
    Hal4D12_SetAddressEnable((INT8)(DCPDeviceRequest.wValue &

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本福利一区二区| 国产又粗又猛又爽又黄91精品| 亚洲一区二区在线免费看| 日韩黄色小视频| 97精品视频在线观看自产线路二| 久久久综合视频| 亚洲精品日产精品乱码不卡| 韩国av一区二区三区| 欧洲av在线精品| 国产精品久久久久四虎| 日本成人中文字幕| 精品视频一区二区不卡| 久久伊99综合婷婷久久伊| 国产精品色噜噜| 精品一区二区影视| 欧美精品免费视频| 亚洲美女一区二区三区| 丁香激情综合五月| 久久久久久久一区| 美女尤物国产一区| 国产激情一区二区三区四区| 精品久久久久一区二区国产| 午夜精品爽啪视频| 欧美三级在线视频| 亚洲第一在线综合网站| 一本大道久久a久久精品综合| 国产拍揄自揄精品视频麻豆| 久久精品99久久久| 欧美电影免费观看高清完整版在线| 亚洲第一福利一区| 欧美性受极品xxxx喷水| 亚洲免费毛片网站| 91成人在线免费观看| 亚洲欧美日韩国产一区二区三区| 久久精品视频免费| 亚洲国产一区二区三区青草影视| 97精品国产97久久久久久久久久久久| 国产日韩三级在线| 成人性生交大合| 国产精品久久久久久久久久久免费看 | 国产婷婷一区二区| 国内精品免费**视频| 久久久午夜电影| 成人激情免费网站| 亚洲色图欧美在线| 欧美日韩一区二区在线观看视频| 亚洲mv大片欧洲mv大片精品| 欧美精品高清视频| 久久成人羞羞网站| 日本一区二区电影| 91豆麻精品91久久久久久| 成人av在线资源网站| 91精品国产色综合久久不卡蜜臀| 亚洲欧美激情小说另类| 一本大道久久a久久综合| 亚洲第一在线综合网站| 欧美一级二级在线观看| 国产一区二区三区四| 中文字幕一区二区三区在线播放| 欧美综合一区二区| 美洲天堂一区二卡三卡四卡视频| 久久久久久久久久久久久夜| 91日韩一区二区三区| 午夜久久电影网| 久久精品亚洲麻豆av一区二区| 97精品国产露脸对白| 丝袜亚洲另类欧美| 国产午夜久久久久| 欧美日韩久久久久久| 国产精品综合av一区二区国产馆| 最新不卡av在线| 日韩欧美的一区| 99久久精品免费| 欧美aaaaaa午夜精品| 亚洲欧洲三级电影| 精品久久久久久久久久久久久久久| 成人午夜免费电影| 另类调教123区| 一区av在线播放| 国产精品久久久久久久久久免费看| 欧美狂野另类xxxxoooo| 成人免费三级在线| 美女网站视频久久| 亚洲一区二区三区视频在线播放| 久久午夜免费电影| 欧美日韩一区二区在线观看| 成人手机电影网| 毛片基地黄久久久久久天堂| 亚洲激情网站免费观看| 国产偷v国产偷v亚洲高清| 欧美日韩国产在线观看| av激情成人网| 国产高清久久久| 日本一区中文字幕| 一区二区三区四区中文字幕| 欧美激情一区二区三区蜜桃视频| 日韩欧美一区二区免费| 欧美亚洲综合在线| 99精品视频在线播放观看| 国产精品1024| 精品一区二区三区久久| 日韩av中文字幕一区二区三区| 亚洲精品国产精品乱码不99| 中日韩av电影| 国产网站一区二区| 国产精品无码永久免费888| 欧美α欧美αv大片| 日韩欧美一级二级三级| 555夜色666亚洲国产免| 欧美日韩一区不卡| 欧洲一区在线电影| 欧美午夜片在线观看| 日本乱人伦aⅴ精品| 91久久线看在观草草青青| 成人精品高清在线| 国产电影一区二区三区| 国产成人免费av在线| 国产不卡在线播放| 成人激情动漫在线观看| 99re6这里只有精品视频在线观看| www.日韩在线| av影院午夜一区| 色噜噜狠狠成人网p站| 欧洲av在线精品| 91麻豆精品国产91久久久资源速度| 欧美日韩精品综合在线| 日韩三级伦理片妻子的秘密按摩| 欧美一区二区三区视频在线 | 国产真实乱对白精彩久久| 毛片一区二区三区| 国产高清精品在线| 色先锋aa成人| 欧美三片在线视频观看| 欧美一区二区精品| 国产亚洲女人久久久久毛片| 国产精品人人做人人爽人人添 | 看片网站欧美日韩| 韩国精品一区二区| 不卡的av在线| 欧美精品亚洲二区| 日韩欧美一二三四区| 久久久精品免费观看| 亚洲视频免费看| 午夜精品福利一区二区三区蜜桃| 久久aⅴ国产欧美74aaa| www.99精品| 欧美一区二区三区在线看| 久久奇米777| 亚洲男人天堂av| 手机精品视频在线观看| 国产一区二区三区四区在线观看| aaa亚洲精品| 欧美一区二区三区喷汁尤物| 国产免费观看久久| 亚洲小少妇裸体bbw| 国产精品自拍av| 欧美系列一区二区| 久久久精品国产免大香伊| 亚洲精品ww久久久久久p站| 久久国产综合精品| 91免费视频网| 久久青草国产手机看片福利盒子| 亚洲一区在线观看免费 | 青青草伊人久久| 成人精品视频一区二区三区| 26uuu国产电影一区二区| 欧美日韩成人高清| 久久色在线观看| 一二三区精品视频| 国产福利不卡视频| 欧美精品乱码久久久久久| 国产精品美女久久久久久久久 | 国产精品久久久久一区二区三区| 性做久久久久久免费观看| av日韩在线网站| 精品国产区一区| 婷婷国产在线综合| 色哟哟一区二区三区| 久久综合九色综合欧美就去吻| 亚洲国产综合人成综合网站| 成人黄色在线看| 亚洲人成网站精品片在线观看| 国产成人av电影在线| 国产精品久久久久久久岛一牛影视| 亚洲最大成人网4388xx| 国产一区二区在线观看免费| 欧美日韩成人综合天天影院 | 亚洲成人资源网| av在线播放成人| 中文字幕国产一区二区| 精品一区二区三区视频在线观看| 欧美狂野另类xxxxoooo| 亚洲成a人v欧美综合天堂下载 | 波多野结衣精品在线| 久久精品一区蜜桃臀影院| 蜜桃久久久久久久| 91精品久久久久久久久99蜜臂| 亚洲国产精品av| 国产精品毛片a∨一区二区三区| 日韩视频免费直播|