/* dfu.c */ extern const struct usb_dfu_descriptor dfu_function; extern const struct usb_interface_descriptor dfu_iface; extern int dfu_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, int (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req)); /* main.c */ extern int main(void); /* usb.c */ extern const struct usb_device_descriptor dev; extern const struct usb_interface ifaces[]; extern const struct usb_config_descriptor config; extern usbd_device *usbd_dev; extern int usb_is_suspended; extern int usb_running; extern void usb_tick(void); extern int usb_wakeup_host(void); extern int class_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, int (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req)); extern void usb_set_config(usbd_device *usbd_dev, uint16_t wValue); extern uint8_t usbd_control_buffer[128]; extern void usb_init(void); extern void usb_run(void); /* led.c */ extern void led_init(void); extern void led_tick(void); /* ticker.c */ extern volatile uint32_t ticks; extern void delay_us(uint32_t d); extern void sys_tick_handler(void); extern void delay_ms(uint32_t d); extern int timed_out(uint32_t then, unsigned int ms); extern void ticker_init(void); /* i2c.c */ /* lcd.c */ /* cdc.c */ extern const struct usb_interface_descriptor comm_iface[]; extern const struct usb_interface_descriptor data_iface[]; extern int cdcacm_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, int (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req)); extern void cdcacm_data_rx_cb(usbd_device *usbd_dev, uint8_t ep);