⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb-proto.h

📁 伟大的Contiki工程, 短小精悍 的操作系统, 学习编程不可不看
💻 H
字号:
#ifndef __USB_PROTO_H__RVJQ2JAGM4__#define __USB_PROTO_H__RVJQ2JAGM4__#include <usb.h>#include <usb-config.h>#ifndef NULL#define NULL 0#endiftypedef struct _USBEndpoint USBEndpoint;struct _USBEndpoint{  unsigned char addr;  unsigned char buf_size_mask; /* mask for the buffer index.  This implies			     that the buffer size must be a power of			     2 */  unsigned char buf_len;  unsigned char buf_pos;  unsigned char* buffer;  unsigned short status;  unsigned short flags;};#define USB_EP_FLAGS_BANK_1_RECV_NEXT 0x01 /* The next packet received					      should be read from bank 1					      if possible */					    #define USB_EP_FLAGS_RECV_BLOCKED 0x02	/* Recetpion is blocked.					   Interrupt turned off */#define USB_EP_FLAGS_TRANSMITTING 0x04 /* Waiting for TXCOMP before sending					  more data *//* Read only */struct USBRequestHandler{  unsigned char request_type;  unsigned char request_type_mask;  unsigned char request;  unsigned char request_mask;  /* Returns true if it handled the request, if false let another handler try*/  unsigned int (*handler_func)();};  /* Must be writeable */struct USBRequestHandlerHook{  struct USBRequestHandlerHook *next;  const struct USBRequestHandler * const handler;};voidusb_register_request_handler(struct USBRequestHandlerHook *hook);voidusb_reset();voidusb_ep0_int();voidusb_epx_int();voidusb_clear_events(unsigned events);voidusb_clear_ep_events(unsigned int ep, unsigned int events);voidusb_error_stall();voidusb_send_ctrl_response(const unsigned char *buffer, unsigned short len);void usb_send_ctrl_status();voidusb_set_address();voidusb_set_configuration_value(unsigned char c);unsigned charusb_get_configuration_value();voidusb_init_endpoints();volatile USBEndpoint*usb_find_endpoint(unsigned char epaddr);voidusb_halt_endpoint(unsigned char ep_addr, unsigned int halt);extern volatile unsigned char usb_events;extern struct process *usb_handler_process;extern struct USB_request_st usb_setup_buffer;extern unsigned char usb_ctrl_data_buffer[];extern unsigned short usb_ctrl_data_len;#define USB_EVENT_EP(ep) (0x01<<(ep))#define USB_EVENT_RESET 0x10#define USB_EVENT_SUPEND 0x20#define USB_EVENT_RESUME 0x40#define USB_EVENT_CONFIG 0x08extern  volatile unsigned char usb_endpoint_events[];#define USB_EP_EVENT_SETUP 0x01#define USB_EP_EVENT_OUT 0x02#define USB_EP_EVENT_IN 0x04#endif /* __USB_PROTO_H__RVJQ2JAGM4__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -