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

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

?? obj_dfudesc.h

?? AT91rm9200的引導代碼
?? H
字號:
//*----------------------------------------------------------------------------
//*         ATMEL Microcontroller Software Support  -  ROUSSET  -
//*----------------------------------------------------------------------------
//* The software is delivered "AS IS" without warranty or condition of any
//* kind, either express, implied or statutory. This includes without
//* limitation any warranty or condition with respect to merchantability or
//* fitness for any particular purpose, or against the infringements of
//* intellectual property rights of others.
//*----------------------------------------------------------------------------
//* File Name           : obj_dfudesc.h
//* Object              : DFU filter.
//*
//* 1.0 07/24/01 ODi    : Creation
//*----------------------------------------------------------------------------
#ifndef obj_dfudesc_h
#define obj_dfudesc_h

#include "services/obj_usbdesc.h"
#include "services/obj_svctempo.h"
#include "services/obj_svcudp.h"

/* ====================================================================== */
/* DFU definitions extracted from the USB Device Firmware Upgrade         */
/* Specification, revision 1.0                                            */
/* ====================================================================== */

/* Run-Time DFU Functional Descriptor */
/* This descriptor is identical for both run-time and the DFU mode */
/* descriptor set */

typedef __packed struct _AT91S_DfuFDesc {
	volatile char  bLength;
	volatile char  bDescriptorType;
	volatile char  bmAttributes;
	volatile unsigned short wDetachTimeout;
	volatile unsigned short wTransferSize;
} AT91S_DfuFDesc, *AT91PS_DfuFDesc;

/* Device status structure as defined in */
/* USB Device Firmware Upgrade Specification, rev 1.1 */
typedef __packed struct _AT91S_DfuStatus {
	volatile char bStatus;
	volatile char bwPollTimeout[3];
	volatile char bState;
	char iString;
} AT91S_DfuStatus, *AT91PS_DfuStatus;

__inline char bmAttributes(AT91S_DfuFDesc const *pUSBDfuFDesc)
{
	char const *pChar = (char *) pUSBDfuFDesc;
	return pChar[2];
}

__inline unsigned short wDetachTimeOut(AT91S_DfuFDesc const *pUSBDfuFDesc)
{
	char const *pChar = (char *) pUSBDfuFDesc;
	return (((pChar[4]) << 8) | pChar[3]);
}

__inline unsigned short wTransferSize(AT91S_DfuFDesc const *pUSBDfuFDesc)
{
	char const *pChar = (char *) pUSBDfuFDesc;
	return ((pChar[6] << 8) | pChar[5]);
}

__inline unsigned int bwPollTimeout(AT91S_DfuStatus const *pStatus)
{
	char const *pChar = (char *) pStatus;
	return ((pChar[3] << 16) | (pChar[2] << 8) | pChar[1]);
}

/* DFU class-Specific Request Values */
#define AT91C_DFU_DETACH    0
#define AT91C_DFU_DNLOAD    1
#define AT91C_DFU_UPLOAD    2
#define AT91C_DFU_GETSTATUS 3
#define AT91C_DFU_CLRSTATUS 4
#define AT91C_DFU_GETSTATE  5
#define AT91C_DFU_ABORT     6

/* DFU state values, as defined in */
/* USB Device Firmware Upgrade Specification, rev 1.1 */
#define AT91C_DFU_appIDLE                0
#define AT91C_DFU_appDETACH              1
#define AT91C_DFU_dfuIDLE                2
#define AT91C_DFU_dfuDNLOAD_SYNC         3
#define AT91C_DFU_dfuDNBUSY              4
#define AT91C_DFU_dfuDNLOAD_IDLE         5
#define AT91C_DFU_dfuMANIFEST_SYNC       6
#define AT91C_DFU_dfuMANIFEST            7
#define AT91C_DFU_dfuMANIFEST_WAIT_RESET 8
#define AT91C_DFU_dfuUPLOAD_IDLE         9
#define AT91C_DFU_dfuERROR               10

/* DFU status values, as defined in */
/* USB Device Firmware Upgrade Specification, rev 1.1 */
#define AT91C_DFU_OK              0x00
#define AT91C_DFU_errTARGET       0x01
#define AT91C_DFU_errFILE         0x02
#define AT91C_DFU_errWRITE        0x03
#define AT91C_DFU_errERASE        0x04
#define AT91C_DFU_errCHECK_ERASED 0x05
#define AT91C_DFU_errPROG         0x06
#define AT91C_DFU_errVERIFY       0x07
#define AT91C_DFU_errADDRESS      0x08
#define AT91C_DFU_errNOTDONE      0x09
#define AT91C_DFU_errFIRMWARE     0x0A
#define AT91C_DFU_errVENDOR       0x0B
#define AT91C_DFU_errUSBR         0x0C
#define AT91C_DFU_errPOR          0x0D
#define AT91C_DFU_errUNKNOWN      0x0E
#define AT91C_DFU_errSTALLPKT     0x0F

/* ====================================================================== */
/* DFU definitions used in lib_dfu.c                                      */
/* ====================================================================== */


typedef struct _AT91S_DfuDesc {
	AT91PS_Pipe  pPipe;     // Link to a AT91S_Pipe object
	AT91S_SvcTempo tempo; // Link to a AT91S_Tempo object

	// Private methods:
	void (*State0)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State1)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State2)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State3)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State4)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State5)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State6)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State7)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State8)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State9)  (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);
	void (*State10) (struct _AT91S_DfuDesc *, AT91PS_UsbSetup);

	void (*GetStatus) (struct _AT91S_DfuDesc *);
	void (*GetState)  (struct _AT91S_DfuDesc *);

	// public methods:
	void (*DispatchClassRequest) (AT91PS_UsbSetup, void *);
	void (*Download)(struct _AT91S_DfuDesc *, unsigned short, AT91PF_PipeReadCallBack);
	void (*Upload)(struct _AT91S_DfuDesc *, unsigned short);

	// Public data:
	AT91S_DfuStatus dfuStatus;
	AT91S_DfuFDesc const *pDfuFDesc;
	char manifestComplete;
	char blockComplete;

} AT91S_DfuDesc, *AT91PS_DfuDesc;

// Types definition:
typedef void (*AT91PF_DfuDescDownload)  (AT91PS_DfuDesc, unsigned short, AT91PF_PipeReadCallBack);
typedef void (*AT91PF_DfuDescUpload)  (AT91PS_DfuDesc, unsigned short);

typedef AT91PS_DfuDesc (*AT91PF_OpenDfuDesc) (
	AT91PS_DfuDesc, 
	AT91PS_Pipe, 
	AT91PS_CtlTempo, 
	char, 
	AT91S_DfuFDesc const *, 
	AT91PF_DfuDescDownload, 
	AT91PF_DfuDescUpload);
typedef void (*AT91PF_DfuDescDispatchClassRequest) (AT91PS_DfuDesc, void *);
typedef void (*AT91PF_DfuDescState0)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState1)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState2)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState3)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState4)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState5)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState6)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState7)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState8)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState9)  (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescState10) (AT91PS_DfuDesc, AT91PS_UsbSetup);
typedef void (*AT91PF_DfuDescGetStatus) (AT91PS_DfuDesc);
typedef void (*AT91PF_DfuDescGetState)  (AT91PS_DfuDesc);

// Function declaration:
extern AT91PS_DfuDesc AT91F_OpenDfuDesc(AT91PS_DfuDesc, AT91PS_Pipe, AT91PS_CtlTempo, char, AT91S_DfuFDesc const *, AT91PF_DfuDescDownload, AT91PF_DfuDescUpload);

extern void AT91F_DfuDescDispatchClassRequest (AT91PS_UsbSetup, void *);
extern void AT91F_DfuDescState0  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState1  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState2  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState3  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState4  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState5  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState6  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState7  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState8  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState9  (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescState10 (AT91PS_DfuDesc, AT91PS_UsbSetup);
extern void AT91F_DfuDescGetStatus(AT91PS_DfuDesc);
extern void AT91F_DfuDescGetState (AT91PS_DfuDesc);
extern void AT91F_DfuDescSuccess  (AT91PS_DfuDesc);
extern void AT91F_DfuDescError    (AT91PS_DfuDesc);
extern void AT91F_DfuDescDetachTimeout(AT91S_TempoStatus status, void *pVoid);
extern void AT91F_DfuDescStatusPollTimeOut(AT91S_TempoStatus status, void *pVoid);
extern void AT91F_DfuDescDownload(AT91S_PipeStatus status, void *pVoid);
#endif // obj_dfudesc_h

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丰满嫩嫩电影| 一区二区三区蜜桃网| 精品裸体舞一区二区三区| 另类人妖一区二区av| 中文字幕亚洲综合久久菠萝蜜| 久久亚洲精品小早川怜子| 久久久久久久久伊人| 亚洲综合在线观看视频| 亚洲女厕所小便bbb| 亚洲电影一级片| 国产成人丝袜美腿| 色综合久久中文字幕综合网 | 欧美日韩国产精品自在自线| 欧美在线一区二区| 精品久久久久久久久久久久包黑料| 欧美α欧美αv大片| 亚洲伦理在线精品| 狠狠色狠狠色合久久伊人| 成人免费精品视频| 欧美日韩国产综合久久| 国产欧美日韩视频在线观看| 亚洲欧美国产77777| 国产精品一区二区无线| 欧美日韩不卡一区| 国产精品久久久久久久久动漫| 天天免费综合色| 成人动漫精品一区二区| 日韩免费一区二区三区在线播放| 国产亚洲女人久久久久毛片| 亚洲欧美国产高清| www.日本不卡| 国产女同互慰高潮91漫画| 亚洲综合激情网| 成人久久久精品乱码一区二区三区| 欧美亚洲禁片免费| 欧美色中文字幕| 久久久久久综合| 国产真实乱偷精品视频免| 2欧美一区二区三区在线观看视频| 日日欢夜夜爽一区| 91精品国产综合久久久蜜臀图片| 亚洲一区二区综合| 日韩一级黄色大片| 美女视频一区二区三区| 精品国产精品网麻豆系列| 丰满亚洲少妇av| 亚洲欧美在线视频观看| 在线观看亚洲一区| 日韩电影在线观看一区| 精品欧美一区二区久久| 国产凹凸在线观看一区二区| 亚洲人一二三区| 欧美日韩成人综合| 国产91对白在线观看九色| 一区二区三区在线免费视频| 欧美三级韩国三级日本一级| 精品亚洲成av人在线观看| 亚洲素人一区二区| 久久久午夜精品| 欧美网站大全在线观看| 亚洲国产乱码最新视频| 91精品国产综合久久久久久漫画| 无码av中文一区二区三区桃花岛| 在线看日本不卡| 国产精品影音先锋| 亚洲老妇xxxxxx| 亚洲精品一区二区三区在线观看| 风间由美一区二区三区在线观看| 亚洲成a人v欧美综合天堂| 欧美性大战久久久久久久| 国产一区二区不卡| 日本一区中文字幕| 国产精品久久国产精麻豆99网站| 欧美日韩三级一区| 成人亚洲一区二区一| 一级日本不卡的影视| 国产真实乱对白精彩久久| 国产美女视频一区| 中文字幕佐山爱一区二区免费| 色综合 综合色| 94色蜜桃网一区二区三区| 蜜臀国产一区二区三区在线播放| 亚洲精品亚洲人成人网| 欧美激情中文不卡| 2024国产精品| 精品999久久久| www精品美女久久久tv| 欧美一区二区三区男人的天堂| 91在线精品一区二区三区| 国产一区二区三区香蕉| 麻豆国产精品官网| 亚欧色一区w666天堂| 亚洲欧洲av色图| 国产精品乱码一区二区三区软件 | 91免费国产在线观看| 成人精品一区二区三区中文字幕| 国产宾馆实践打屁股91| 99久久er热在这里只有精品66| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 国产美女娇喘av呻吟久久| 不卡在线视频中文字幕| 91美女片黄在线| 欧美亚洲日本国产| 欧美不卡123| 亚洲欧美日韩国产中文在线| 亚洲第一二三四区| 国产美女视频91| 欧美综合一区二区三区| 日韩一级黄色片| 欧美一区二区三区系列电影| 久久久一区二区三区| 亚洲精品少妇30p| 亚洲色图欧洲色图婷婷| 亚洲欧洲日韩在线| 视频一区在线播放| av电影在线不卡| 26uuu欧美| 樱桃国产成人精品视频| 蜜臀av在线播放一区二区三区| 岛国精品在线播放| 日韩欧美一卡二卡| 亚洲电影一级黄| 91美女片黄在线| 国产欧美日韩综合精品一区二区| 亚洲妇熟xx妇色黄| 精品影视av免费| 91精品婷婷国产综合久久性色| 日韩视频一区二区在线观看| 一区二区三区四区高清精品免费观看| 另类小说视频一区二区| 91精品国产黑色紧身裤美女| ...中文天堂在线一区| 国产裸体歌舞团一区二区| 久久亚洲捆绑美女| 激情文学综合丁香| 日韩一级欧美一级| 免费成人在线影院| 91精品国产综合久久久久久漫画 | 亚洲欧洲一区二区在线播放| 成人网在线免费视频| 日本一区二区免费在线 | 国产精品久久久久久亚洲伦| 国产在线播放一区| 欧美激情资源网| 一本在线高清不卡dvd| 亚洲第一电影网| 欧美乱妇15p| 国产一区二区三区不卡在线观看 | 日本道色综合久久| 国产日韩亚洲欧美综合| 国产成人在线视频网址| 亚洲视频一二三区| 韩国v欧美v亚洲v日本v| 久久久久国产成人精品亚洲午夜 | jlzzjlzz亚洲日本少妇| 1024成人网色www| 成人美女视频在线看| 亚洲第一主播视频| 欧美国产日本韩| 日韩精品一区二区三区蜜臀| 99re热视频精品| 午夜精彩视频在线观看不卡| 青青草原综合久久大伊人精品优势| 欧美精品123区| 欧美视频你懂的| 国产一区中文字幕| 亚洲成人黄色小说| 亚洲色图色小说| 亚洲天堂成人网| 精品sm捆绑视频| 久久久久综合网| 久久亚洲影视婷婷| 久久久国产精华| 欧美精品一区二区三区久久久| 欧美精品粉嫩高潮一区二区| 成人妖精视频yjsp地址| 成人网页在线观看| 粉嫩嫩av羞羞动漫久久久| 国产麻豆精品95视频| 久久不见久久见中文字幕免费| 日韩国产在线观看| 亚洲黄色片在线观看| 一区视频在线播放| 一区二区三区在线免费播放| 亚洲午夜久久久久久久久电影网| 国产女主播一区| 久久综合九色欧美综合狠狠| 精品久久人人做人人爰| 日韩一二三区不卡| 欧美xxxxxxxx| 日韩欧美一区在线观看| 国产成人亚洲综合a∨婷婷图片| 免费av网站大全久久| 青青草国产精品亚洲专区无| 蜜桃久久久久久久| 亚洲国产精品高清| 国产日产精品一区| 中文字幕一区在线观看视频| 一区二区成人在线观看| 日韩精品一级中文字幕精品视频免费观看 |