/* 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)); /* crypto.c */ extern const struct usb_endpoint_descriptor crypto_endpoint; extern const struct usb_interface_descriptor crypto_iface; extern void crypto_get_descriptor(uint8_t **buf, uint16_t *len); extern void crypto_test(void); /* 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_wakeup_host(void); extern void usb_set_config(usbd_device *usbd_dev, uint16_t wValue); extern void usb_init(void); extern void usb_run(void); /* led.c */ extern void led_init(void); extern void led_blink(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 */ extern int i2c1_bb(int scl, int sda); extern void i2c1_bb_start(void); extern void i2c1_bb_stop(void); extern int i2c1_bb_send_data(uint8_t v); extern int i2c1_bb_start_transaction(uint8_t a, int wnr); extern void i2c1_bb_init(void); /* lcd.c */ extern uint8_t fb[2][16]; extern uint8_t shadow[2][16]; extern void lcd_refresh(void); extern void lcd_tick(void); extern void lcd_write_char(uint8_t c, int x, int y); extern void lcd_erase(int x, int y, int w); extern void lcd_erase_line(int w, int y); extern void lcd_erase_all(void); extern void lcd_write(char *c, int x, int y); extern void lcd_backlight(int i); extern void lcd_reset(void); extern void lcd_init(void); extern void lcd_shutdown(void);