aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/lisa-m/usb_dfu/dfu.h81
-rw-r--r--examples/lisa-m/usb_dfu/usbdfu.c8
-rw-r--r--examples/lisa-m/usb_hid/hid.h38
-rw-r--r--examples/lisa-m/usb_hid/usbhid.c12
-rw-r--r--examples/other/usb_cdcacm/cdc.h128
-rw-r--r--examples/other/usb_cdcacm/cdcacm.c7
-rw-r--r--examples/other/usb_dfu/dfu.h81
-rw-r--r--examples/other/usb_dfu/usbdfu.c8
-rw-r--r--examples/other/usb_hid/hid.h38
-rw-r--r--examples/other/usb_hid/usbhid.c12
-rw-r--r--examples/stm32-h103/usb_cdcacm/cdc.h128
-rw-r--r--examples/stm32-h103/usb_cdcacm/cdcacm.c7
-rw-r--r--examples/stm32-h103/usb_dfu/dfu.h81
-rw-r--r--examples/stm32-h103/usb_dfu/usbdfu.c8
-rw-r--r--examples/stm32-h103/usb_hid/hid.h38
-rw-r--r--examples/stm32-h103/usb_hid/usbhid.c12
-rw-r--r--examples/stm32-h103/usb_iap/usbiap.c8
17 files changed, 33 insertions, 662 deletions
diff --git a/examples/lisa-m/usb_dfu/dfu.h b/examples/lisa-m/usb_dfu/dfu.h
deleted file mode 100644
index cca07cb..0000000
--- a/examples/lisa-m/usb_dfu/dfu.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __DFU_H
-#define __DFU_H
-
-enum dfu_req {
- DFU_DETACH,
- DFU_DNLOAD,
- DFU_UPLOAD,
- DFU_GETSTATUS,
- DFU_CLRSTATUS,
- DFU_GETSTATE,
- DFU_ABORT
-};
-
-enum dfu_status {
- DFU_STATUS_OK,
- DFU_STATUS_ERR_TARGET,
- DFU_STATUS_ERR_FILE,
- DFU_STATUS_ERR_WRITE,
- DFU_STATUS_ERR_ERASE,
- DFU_STATUS_ERR_CHECK_ERASED,
- DFU_STATUS_ERR_PROG,
- DFU_STATUS_ERR_VERIFY,
- DFU_STATUS_ERR_ADDRESS,
- DFU_STATUS_ERR_NOTDONE,
- DFU_STATUS_ERR_FIRMWARE,
- DFU_STATUS_ERR_VENDOR,
- DFU_STATUS_ERR_USBR,
- DFU_STATUS_ERR_POR,
- DFU_STATUS_ERR_UNKNOWN,
- DFU_STATUS_ERR_STALLEDPKT,
-};
-
-enum dfu_state {
- STATE_APP_IDLE,
- STATE_APP_DETACH,
- STATE_DFU_IDLE,
- STATE_DFU_DNLOAD_SYNC,
- STATE_DFU_DNBUSY,
- STATE_DFU_DNLOAD_IDLE,
- STATE_DFU_MANIFEST_SYNC,
- STATE_DFU_MANIFEST,
- STATE_DFU_MANIFEST_WAIT_RESET,
- STATE_DFU_UPLOAD_IDLE,
- STATE_DFU_ERROR,
-};
-
-#define DFU_FUNCTIONAL 0x21
-struct usb_dfu_descriptor {
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint8_t bmAttributes;
-#define USB_DFU_CAN_DOWNLOAD 0x01
-#define USB_DFU_CAN_UPLOAD 0x02
-#define USB_DFU_MANIFEST_TOLERANT 0x04
-#define USB_DFU_WILL_DETACH 0x08
-
- uint16_t wDetachTimeout;
- uint16_t wTransferSize;
- uint16_t bcdDFUVersion;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/lisa-m/usb_dfu/usbdfu.c b/examples/lisa-m/usb_dfu/usbdfu.c
index 7f17ec8..0a6789d 100644
--- a/examples/lisa-m/usb_dfu/usbdfu.c
+++ b/examples/lisa-m/usb_dfu/usbdfu.c
@@ -17,15 +17,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <string.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
#include <libopenstm32/flash.h>
#include <libopenstm32/scb.h>
-#include <usbd.h>
-
-#include <string.h>
-
-#include "dfu.h"
+#include <usb/usbd.h>
+#include <usb/dfu.h>
#define APP_ADDRESS 0x08002000
diff --git a/examples/lisa-m/usb_hid/hid.h b/examples/lisa-m/usb_hid/hid.h
deleted file mode 100644
index 6804cab..0000000
--- a/examples/lisa-m/usb_hid/hid.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __HID_H
-#define __HID_H
-
-#include <stdint.h>
-
-#define USB_CLASS_HID 3
-
-#define USB_DT_HID 0x21
-#define USB_DT_REPORT 0x22
-
-struct usb_hid_descriptor {
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint16_t bcdHID;
- uint8_t bCountryCode;
- uint8_t bNumDescriptors;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/lisa-m/usb_hid/usbhid.c b/examples/lisa-m/usb_hid/usbhid.c
index cf3b543..6adef1e 100644
--- a/examples/lisa-m/usb_hid/usbhid.c
+++ b/examples/lisa-m/usb_hid/usbhid.c
@@ -17,21 +17,19 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdlib.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
#include <libopenstm32/systick.h>
-#include <usbd.h>
-
-#include <stdlib.h>
-
-#include "hid.h"
+#include <usb/usbd.h>
+#include <usb/hid.h>
/* Define this to include the DFU APP interface. */
#define INCLUDE_DFU_INTERFACE
#ifdef INCLUDE_DFU_INTERFACE
-# include <libopenstm32/scb.h>
-# include "../usb_dfu/dfu.h"
+#include <libopenstm32/scb.h>
+#include <usb/dfu.h>
#endif
const struct usb_device_descriptor dev = {
diff --git a/examples/other/usb_cdcacm/cdc.h b/examples/other/usb_cdcacm/cdc.h
deleted file mode 100644
index db0f2bc..0000000
--- a/examples/other/usb_cdcacm/cdc.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __CDC_H
-#define __CDC_H
-
-/* Definitions of Communications Device Class from
- * "Universal Serial Bus Class Definitions for Communications Devices
- * Revision 1.2"
- */
-
-/* Table 2: Communications Device Class Code */
-#define USB_CLASS_CDC 0x02
-
-/* Table 4: Class Subclass Code */
-#define USB_CDC_SUBCLASS_DLCM 0x01
-#define USB_CDC_SUBCLASS_ACM 0x02
-/* ... */
-
-/* Table 5 Communications Interface Class Control Protocol Codes */
-#define USB_CDC_PROTOCOL_NONE 0x00
-#define USB_CDC_PROTOCOL_AT 0x01
-/* ... */
-
-/* Table 6: Data Interface Class Code */
-#define USB_CLASS_DATA 0x0A
-
-/* Table 12: Type Values for the bDescriptorType Field */
-#define CS_INTERFACE 0x24
-#define CS_ENDPOINT 0x25
-
-/* Table 13: bDescriptor SubType in Communications Class Functional
- * Descriptors */
-#define USB_CDC_TYPE_HEADER 0x00
-#define USB_CDC_TYPE_CALL_MANAGEMENT 0x01
-#define USB_CDC_TYPE_ACM 0x02
-/* ... */
-#define USB_CDC_TYPE_UNION 0x06
-/* ... */
-
-/* Table 15: Class-Specific Descriptor Header Format */
-struct usb_cdc_header_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint16_t bcdCDC;
-} __attribute__((packed));
-
-/* Table 16: Union Interface Functional Descriptor */
-struct usb_cdc_union_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint8_t bControlInterface;
- uint8_t bSubordinateInterface0;
- /* ... */
-} __attribute__((packed));
-
-
-/* Definitions for Abstract Control Model devices from:
- * "Universal Serial Bus Communications Class Subclass Specification for
- * PSTN Devices"
- */
-
-/* Table 3: Call Management Functional Descriptor */
-struct usb_cdc_call_management_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint8_t bmCapabilities;
- uint8_t bDataInterface;
-} __attribute__((packed));
-
-/* Table 4: Abstract Control Management Functional Descriptor */
-struct usb_cdc_acm_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint8_t bmCapabilities;
-} __attribute__((packed));
-
-/* Table 13: Class-Specific Request Codes for PSTN subclasses */
-/* ... */
-#define USB_CDC_REQ_SET_LINE_CODING 0x20
-/* ... */
-#define USB_CDC_REQ_SET_CONTROL_LINE_STATE 0x22
-/* ... */
-
-/* Table 17: Line Coding Structure */
-struct usb_cdc_line_coding {
- uint32_t dwDTERate;
- uint8_t bCharFormat;
- uint8_t bParityType;
- uint8_t bDataBits;
-} __attribute__((packed));
-
-/* Table 30: Class-Specific Notification Codes for PSTN subclasses */
-/* ... */
-#define USB_CDC_NOTIFY_SERIAL_STATE 0x28
-/* ... */
-
-
-/* Notification Structure */
-struct usb_cdc_notification {
- uint8_t bmRequestType;
- uint8_t bNotification;
- uint16_t wValue;
- uint16_t wIndex;
- uint16_t wLength;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/other/usb_cdcacm/cdcacm.c b/examples/other/usb_cdcacm/cdcacm.c
index b911a61..8305dc2 100644
--- a/examples/other/usb_cdcacm/cdcacm.c
+++ b/examples/other/usb_cdcacm/cdcacm.c
@@ -17,12 +17,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdlib.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
-#include <usbd.h>
-#include <stdlib.h>
-
-#include "cdc.h"
+#include <usb/usbd.h>
+#include <usb/cdc.h>
static const struct usb_device_descriptor dev = {
.bLength = USB_DT_DEVICE_SIZE,
diff --git a/examples/other/usb_dfu/dfu.h b/examples/other/usb_dfu/dfu.h
deleted file mode 100644
index cca07cb..0000000
--- a/examples/other/usb_dfu/dfu.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __DFU_H
-#define __DFU_H
-
-enum dfu_req {
- DFU_DETACH,
- DFU_DNLOAD,
- DFU_UPLOAD,
- DFU_GETSTATUS,
- DFU_CLRSTATUS,
- DFU_GETSTATE,
- DFU_ABORT
-};
-
-enum dfu_status {
- DFU_STATUS_OK,
- DFU_STATUS_ERR_TARGET,
- DFU_STATUS_ERR_FILE,
- DFU_STATUS_ERR_WRITE,
- DFU_STATUS_ERR_ERASE,
- DFU_STATUS_ERR_CHECK_ERASED,
- DFU_STATUS_ERR_PROG,
- DFU_STATUS_ERR_VERIFY,
- DFU_STATUS_ERR_ADDRESS,
- DFU_STATUS_ERR_NOTDONE,
- DFU_STATUS_ERR_FIRMWARE,
- DFU_STATUS_ERR_VENDOR,
- DFU_STATUS_ERR_USBR,
- DFU_STATUS_ERR_POR,
- DFU_STATUS_ERR_UNKNOWN,
- DFU_STATUS_ERR_STALLEDPKT,
-};
-
-enum dfu_state {
- STATE_APP_IDLE,
- STATE_APP_DETACH,
- STATE_DFU_IDLE,
- STATE_DFU_DNLOAD_SYNC,
- STATE_DFU_DNBUSY,
- STATE_DFU_DNLOAD_IDLE,
- STATE_DFU_MANIFEST_SYNC,
- STATE_DFU_MANIFEST,
- STATE_DFU_MANIFEST_WAIT_RESET,
- STATE_DFU_UPLOAD_IDLE,
- STATE_DFU_ERROR,
-};
-
-#define DFU_FUNCTIONAL 0x21
-struct usb_dfu_descriptor {
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint8_t bmAttributes;
-#define USB_DFU_CAN_DOWNLOAD 0x01
-#define USB_DFU_CAN_UPLOAD 0x02
-#define USB_DFU_MANIFEST_TOLERANT 0x04
-#define USB_DFU_WILL_DETACH 0x08
-
- uint16_t wDetachTimeout;
- uint16_t wTransferSize;
- uint16_t bcdDFUVersion;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/other/usb_dfu/usbdfu.c b/examples/other/usb_dfu/usbdfu.c
index cb05531..9981585 100644
--- a/examples/other/usb_dfu/usbdfu.c
+++ b/examples/other/usb_dfu/usbdfu.c
@@ -17,15 +17,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <string.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
#include <libopenstm32/flash.h>
#include <libopenstm32/scb.h>
-#include <usbd.h>
-
-#include <string.h>
-
-#include "dfu.h"
+#include <usb/usbd.h>
+#include <usb/dfu.h>
#define APP_ADDRESS 0x08002000
diff --git a/examples/other/usb_hid/hid.h b/examples/other/usb_hid/hid.h
deleted file mode 100644
index 6804cab..0000000
--- a/examples/other/usb_hid/hid.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __HID_H
-#define __HID_H
-
-#include <stdint.h>
-
-#define USB_CLASS_HID 3
-
-#define USB_DT_HID 0x21
-#define USB_DT_REPORT 0x22
-
-struct usb_hid_descriptor {
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint16_t bcdHID;
- uint8_t bCountryCode;
- uint8_t bNumDescriptors;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/other/usb_hid/usbhid.c b/examples/other/usb_hid/usbhid.c
index fe3313c..d87265f 100644
--- a/examples/other/usb_hid/usbhid.c
+++ b/examples/other/usb_hid/usbhid.c
@@ -17,21 +17,19 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdlib.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
#include <libopenstm32/systick.h>
-#include <usbd.h>
-
-#include <stdlib.h>
-
-#include "hid.h"
+#include <usb/usbd.h>
+#include <usb/hid.h>
/* Define this to include the DFU APP interface. */
#define INCLUDE_DFU_INTERFACE
#ifdef INCLUDE_DFU_INTERFACE
-# include <libopenstm32/scb.h>
-# include "../usb_dfu/dfu.h"
+#include <libopenstm32/scb.h>
+#include <usb/dfu.h>
#endif
const struct usb_device_descriptor dev = {
diff --git a/examples/stm32-h103/usb_cdcacm/cdc.h b/examples/stm32-h103/usb_cdcacm/cdc.h
deleted file mode 100644
index db0f2bc..0000000
--- a/examples/stm32-h103/usb_cdcacm/cdc.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __CDC_H
-#define __CDC_H
-
-/* Definitions of Communications Device Class from
- * "Universal Serial Bus Class Definitions for Communications Devices
- * Revision 1.2"
- */
-
-/* Table 2: Communications Device Class Code */
-#define USB_CLASS_CDC 0x02
-
-/* Table 4: Class Subclass Code */
-#define USB_CDC_SUBCLASS_DLCM 0x01
-#define USB_CDC_SUBCLASS_ACM 0x02
-/* ... */
-
-/* Table 5 Communications Interface Class Control Protocol Codes */
-#define USB_CDC_PROTOCOL_NONE 0x00
-#define USB_CDC_PROTOCOL_AT 0x01
-/* ... */
-
-/* Table 6: Data Interface Class Code */
-#define USB_CLASS_DATA 0x0A
-
-/* Table 12: Type Values for the bDescriptorType Field */
-#define CS_INTERFACE 0x24
-#define CS_ENDPOINT 0x25
-
-/* Table 13: bDescriptor SubType in Communications Class Functional
- * Descriptors */
-#define USB_CDC_TYPE_HEADER 0x00
-#define USB_CDC_TYPE_CALL_MANAGEMENT 0x01
-#define USB_CDC_TYPE_ACM 0x02
-/* ... */
-#define USB_CDC_TYPE_UNION 0x06
-/* ... */
-
-/* Table 15: Class-Specific Descriptor Header Format */
-struct usb_cdc_header_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint16_t bcdCDC;
-} __attribute__((packed));
-
-/* Table 16: Union Interface Functional Descriptor */
-struct usb_cdc_union_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint8_t bControlInterface;
- uint8_t bSubordinateInterface0;
- /* ... */
-} __attribute__((packed));
-
-
-/* Definitions for Abstract Control Model devices from:
- * "Universal Serial Bus Communications Class Subclass Specification for
- * PSTN Devices"
- */
-
-/* Table 3: Call Management Functional Descriptor */
-struct usb_cdc_call_management_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint8_t bmCapabilities;
- uint8_t bDataInterface;
-} __attribute__((packed));
-
-/* Table 4: Abstract Control Management Functional Descriptor */
-struct usb_cdc_acm_descriptor {
- uint8_t bFunctionLength;
- uint8_t bDescriptorType;
- uint8_t bDescriptorSubtype;
- uint8_t bmCapabilities;
-} __attribute__((packed));
-
-/* Table 13: Class-Specific Request Codes for PSTN subclasses */
-/* ... */
-#define USB_CDC_REQ_SET_LINE_CODING 0x20
-/* ... */
-#define USB_CDC_REQ_SET_CONTROL_LINE_STATE 0x22
-/* ... */
-
-/* Table 17: Line Coding Structure */
-struct usb_cdc_line_coding {
- uint32_t dwDTERate;
- uint8_t bCharFormat;
- uint8_t bParityType;
- uint8_t bDataBits;
-} __attribute__((packed));
-
-/* Table 30: Class-Specific Notification Codes for PSTN subclasses */
-/* ... */
-#define USB_CDC_NOTIFY_SERIAL_STATE 0x28
-/* ... */
-
-
-/* Notification Structure */
-struct usb_cdc_notification {
- uint8_t bmRequestType;
- uint8_t bNotification;
- uint16_t wValue;
- uint16_t wIndex;
- uint16_t wLength;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/stm32-h103/usb_cdcacm/cdcacm.c b/examples/stm32-h103/usb_cdcacm/cdcacm.c
index d11d9a0..305ad43 100644
--- a/examples/stm32-h103/usb_cdcacm/cdcacm.c
+++ b/examples/stm32-h103/usb_cdcacm/cdcacm.c
@@ -17,12 +17,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdlib.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
-#include <usbd.h>
-#include <stdlib.h>
-
-#include "cdc.h"
+#include <usb/usbd.h>
+#include <usb/cdc.h>
static const struct usb_device_descriptor dev = {
.bLength = USB_DT_DEVICE_SIZE,
diff --git a/examples/stm32-h103/usb_dfu/dfu.h b/examples/stm32-h103/usb_dfu/dfu.h
deleted file mode 100644
index cca07cb..0000000
--- a/examples/stm32-h103/usb_dfu/dfu.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __DFU_H
-#define __DFU_H
-
-enum dfu_req {
- DFU_DETACH,
- DFU_DNLOAD,
- DFU_UPLOAD,
- DFU_GETSTATUS,
- DFU_CLRSTATUS,
- DFU_GETSTATE,
- DFU_ABORT
-};
-
-enum dfu_status {
- DFU_STATUS_OK,
- DFU_STATUS_ERR_TARGET,
- DFU_STATUS_ERR_FILE,
- DFU_STATUS_ERR_WRITE,
- DFU_STATUS_ERR_ERASE,
- DFU_STATUS_ERR_CHECK_ERASED,
- DFU_STATUS_ERR_PROG,
- DFU_STATUS_ERR_VERIFY,
- DFU_STATUS_ERR_ADDRESS,
- DFU_STATUS_ERR_NOTDONE,
- DFU_STATUS_ERR_FIRMWARE,
- DFU_STATUS_ERR_VENDOR,
- DFU_STATUS_ERR_USBR,
- DFU_STATUS_ERR_POR,
- DFU_STATUS_ERR_UNKNOWN,
- DFU_STATUS_ERR_STALLEDPKT,
-};
-
-enum dfu_state {
- STATE_APP_IDLE,
- STATE_APP_DETACH,
- STATE_DFU_IDLE,
- STATE_DFU_DNLOAD_SYNC,
- STATE_DFU_DNBUSY,
- STATE_DFU_DNLOAD_IDLE,
- STATE_DFU_MANIFEST_SYNC,
- STATE_DFU_MANIFEST,
- STATE_DFU_MANIFEST_WAIT_RESET,
- STATE_DFU_UPLOAD_IDLE,
- STATE_DFU_ERROR,
-};
-
-#define DFU_FUNCTIONAL 0x21
-struct usb_dfu_descriptor {
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint8_t bmAttributes;
-#define USB_DFU_CAN_DOWNLOAD 0x01
-#define USB_DFU_CAN_UPLOAD 0x02
-#define USB_DFU_MANIFEST_TOLERANT 0x04
-#define USB_DFU_WILL_DETACH 0x08
-
- uint16_t wDetachTimeout;
- uint16_t wTransferSize;
- uint16_t bcdDFUVersion;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/stm32-h103/usb_dfu/usbdfu.c b/examples/stm32-h103/usb_dfu/usbdfu.c
index 7f17ec8..0a6789d 100644
--- a/examples/stm32-h103/usb_dfu/usbdfu.c
+++ b/examples/stm32-h103/usb_dfu/usbdfu.c
@@ -17,15 +17,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <string.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
#include <libopenstm32/flash.h>
#include <libopenstm32/scb.h>
-#include <usbd.h>
-
-#include <string.h>
-
-#include "dfu.h"
+#include <usb/usbd.h>
+#include <usb/dfu.h>
#define APP_ADDRESS 0x08002000
diff --git a/examples/stm32-h103/usb_hid/hid.h b/examples/stm32-h103/usb_hid/hid.h
deleted file mode 100644
index 6804cab..0000000
--- a/examples/stm32-h103/usb_hid/hid.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * This file is part of the libopenstm32 project.
- *
- * Copyright (C) 2010 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __HID_H
-#define __HID_H
-
-#include <stdint.h>
-
-#define USB_CLASS_HID 3
-
-#define USB_DT_HID 0x21
-#define USB_DT_REPORT 0x22
-
-struct usb_hid_descriptor {
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint16_t bcdHID;
- uint8_t bCountryCode;
- uint8_t bNumDescriptors;
-} __attribute__((packed));
-
-#endif
diff --git a/examples/stm32-h103/usb_hid/usbhid.c b/examples/stm32-h103/usb_hid/usbhid.c
index f98448c..457bb04 100644
--- a/examples/stm32-h103/usb_hid/usbhid.c
+++ b/examples/stm32-h103/usb_hid/usbhid.c
@@ -17,21 +17,19 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdlib.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
#include <libopenstm32/systick.h>
-#include <usbd.h>
-
-#include <stdlib.h>
-
-#include "hid.h"
+#include <usb/usbd.h>
+#include <usb/hid.h>
/* Define this to include the DFU APP interface. */
#define INCLUDE_DFU_INTERFACE
#ifdef INCLUDE_DFU_INTERFACE
-# include <libopenstm32/scb.h>
-# include "../usb_dfu/dfu.h"
+#include <libopenstm32/scb.h>
+#include <usb/dfu.h>
#endif
const struct usb_device_descriptor dev = {
diff --git a/examples/stm32-h103/usb_iap/usbiap.c b/examples/stm32-h103/usb_iap/usbiap.c
index 7f17ec8..0a6789d 100644
--- a/examples/stm32-h103/usb_iap/usbiap.c
+++ b/examples/stm32-h103/usb_iap/usbiap.c
@@ -17,15 +17,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <string.h>
#include <libopenstm32/rcc.h>
#include <libopenstm32/gpio.h>
#include <libopenstm32/flash.h>
#include <libopenstm32/scb.h>
-#include <usbd.h>
-
-#include <string.h>
-
-#include "dfu.h"
+#include <usb/usbd.h>
+#include <usb/dfu.h>
#define APP_ADDRESS 0x08002000