From 03d8cb46f14a559e2f60f62a98e082a7318e69c7 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 21 Mar 2013 23:02:52 +0100 Subject: digital/ucoolib: update libopencm3 --- digital/ucoolib/lib/libopencm3 | 2 +- digital/ucoolib/ucoolib/arch/arch.stm32.cc | 2 +- digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc | 2 +- digital/ucoolib/ucoolib/hal/uart/uart.stm32.cc | 2 +- digital/ucoolib/ucoolib/hal/usb/usb.stm32.cc | 35 ++++++++++++----------- digital/ucoolib/ucoolib/hal/usb/usb.stm32.hh | 6 ++-- digital/ucoolib/ucoolib/utils/delay.arm.cc | 2 +- 7 files changed, 27 insertions(+), 24 deletions(-) diff --git a/digital/ucoolib/lib/libopencm3 b/digital/ucoolib/lib/libopencm3 index 00e50ff0..5d3975ab 160000 --- a/digital/ucoolib/lib/libopencm3 +++ b/digital/ucoolib/lib/libopencm3 @@ -1 +1 @@ -Subproject commit 00e50ff0cda40ee1736887e83465e7e5c77aaa3f +Subproject commit 5d3975ab89e623af16573345ec0d6d665612fd1b diff --git a/digital/ucoolib/ucoolib/arch/arch.stm32.cc b/digital/ucoolib/ucoolib/arch/arch.stm32.cc index 869b1d90..61216a3a 100644 --- a/digital/ucoolib/ucoolib/arch/arch.stm32.cc +++ b/digital/ucoolib/ucoolib/arch/arch.stm32.cc @@ -25,7 +25,7 @@ #include "ucoolib/common.hh" #include -#include +#include namespace ucoo { diff --git a/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc b/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc index 2001391e..4b5f31cc 100644 --- a/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc +++ b/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc @@ -25,7 +25,7 @@ #include #include -#include +#include #include "ucoolib/utils/trace.hh" diff --git a/digital/ucoolib/ucoolib/hal/uart/uart.stm32.cc b/digital/ucoolib/ucoolib/hal/uart/uart.stm32.cc index 980bc6b9..fa3d46e9 100644 --- a/digital/ucoolib/ucoolib/hal/uart/uart.stm32.cc +++ b/digital/ucoolib/ucoolib/hal/uart/uart.stm32.cc @@ -25,7 +25,7 @@ #include #include -#include +#include #ifndef TARGET_stm32f4 // Need RCC adaptations and USART6 different handling for F1. diff --git a/digital/ucoolib/ucoolib/hal/usb/usb.stm32.cc b/digital/ucoolib/ucoolib/hal/usb/usb.stm32.cc index 7885da6b..3e5d112e 100644 --- a/digital/ucoolib/ucoolib/hal/usb/usb.stm32.cc +++ b/digital/ucoolib/ucoolib/hal/usb/usb.stm32.cc @@ -26,17 +26,18 @@ #include #include -#include -#include +#include #include "usb_desc.stm32.h" +static usbd_device *usbdev; + extern "C" { void otg_fs_isr () { - usbd_poll (); + usbd_poll (usbdev); } } @@ -46,8 +47,6 @@ namespace ucoo { UsbStreamControl *UsbStreamControl::instance_; const char *strings[] = { - "x", - NULL, NULL, NULL }; @@ -62,42 +61,44 @@ UsbStreamControl::UsbStreamControl (const char *vendor, const char *product) { assert (!instance_); instance_ = this; - strings[1] = vendor; - strings[2] = product; + strings[0] = vendor; + strings[1] = product; rcc_peripheral_enable_clock (&RCC_AHB2ENR, RCC_AHB2ENR_OTGFSEN); rcc_peripheral_enable_clock (&RCC_AHB1ENR, RCC_AHB1ENR_IOPAEN); gpio_mode_setup (GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO9 | GPIO11 | GPIO12); gpio_set_af (GPIOA, GPIO_AF10, GPIO9 | GPIO11 | GPIO12); - usbd_init (&otgfs_usb_driver, &usb_desc_dev, &usb_desc_config, strings); - usbd_register_set_config_callback (set_config); + usbdev = usbd_init (&otgfs_usb_driver, &usb_desc_dev, &usb_desc_config, + strings, lengthof (strings)); + usbd_register_set_config_callback (usbdev, set_config); nvic_enable_irq (NVIC_OTG_FS_IRQ); } void -UsbStreamControl::set_config (uint16_t configured) +UsbStreamControl::set_config (usbd_device *usbdev, uint16_t configured) { instance_->configured_ = configured; if (configured) { for (int i = 0; i < stream_nb_; i++) { - usbd_ep_setup (0x01 + i, USB_ENDPOINT_ATTR_BULK, ep_size_, + usbd_ep_setup (usbdev, 0x01 + i, USB_ENDPOINT_ATTR_BULK, ep_size_, rx_callback); - usbd_ep_setup (0x81 + i, USB_ENDPOINT_ATTR_BULK, ep_size_, NULL); + usbd_ep_setup (usbdev, 0x81 + i, USB_ENDPOINT_ATTR_BULK, ep_size_, + NULL); } } } void -UsbStreamControl::rx_callback (uint8_t ep) +UsbStreamControl::rx_callback (usbd_device *usbdev, uint8_t ep) { assert (ep > 0 && ep <= stream_nb_); int num = ep - 1; RxBuffer &rb = instance_->rx_buffer_[num]; assert (rb.size == 0 && rb.offset == 0); - usbd_ep_nak_set (ep, 1); - rb.size = usbd_ep_read_packet (ep, rb.buf, ep_size_); + usbd_ep_nak_set (usbdev, ep, 1); + rb.size = usbd_ep_read_packet (usbdev, ep, rb.buf, ep_size_); } UsbStream::UsbStream (UsbStreamControl &control, int num) @@ -124,7 +125,7 @@ UsbStream::read (char *buf, int count) { rb.offset = rb.size = 0; barrier (); - usbd_ep_nak_set (num_ + 1, 0); + usbd_ep_nak_set (usbdev, num_ + 1, 0); } /* Done. */ return len; @@ -139,7 +140,7 @@ UsbStream::write (const char *buf, int count) if (control_.configured_) { int len = std::min (left, UsbStreamControl::ep_size_); - len = usbd_ep_write_packet (num_ + 0x81, buf, len); + len = usbd_ep_write_packet (usbdev, num_ + 0x81, buf, len); buf += len; left -= len; } diff --git a/digital/ucoolib/ucoolib/hal/usb/usb.stm32.hh b/digital/ucoolib/ucoolib/hal/usb/usb.stm32.hh index 022b2faa..f90a05e7 100644 --- a/digital/ucoolib/ucoolib/hal/usb/usb.stm32.hh +++ b/digital/ucoolib/ucoolib/hal/usb/usb.stm32.hh @@ -28,6 +28,8 @@ #include "config/hal/usb.hh" +#include + namespace ucoo { class UsbStream; @@ -47,9 +49,9 @@ class UsbStreamControl private: /// Called by USB stack when device is configured. This is expected to /// setup endpoints. - static void set_config (uint16_t wValue); + static void set_config (usbd_device *usbdev, uint16_t wValue); /// Called by USB stack when a frame is received on a OUT endpoint. - static void rx_callback (uint8_t ep); + static void rx_callback (usbd_device *usbdev, uint8_t ep); private: /// Size of endpoints. static const int ep_size_ = UCOO_CONFIG_HAL_USB_EP_SIZE; diff --git a/digital/ucoolib/ucoolib/utils/delay.arm.cc b/digital/ucoolib/ucoolib/utils/delay.arm.cc index 8410c8d1..dca630e9 100644 --- a/digital/ucoolib/ucoolib/utils/delay.arm.cc +++ b/digital/ucoolib/ucoolib/utils/delay.arm.cc @@ -25,7 +25,7 @@ #include -#include +#include #include namespace ucoo { -- cgit v1.2.3