From 43eb1a8b1631ed4b460db123717a7226c10c701f Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 22 Mar 2019 23:57:14 +0700 Subject: added stub for dcd_stm32f3 --- src/device/dcd.h | 30 ++++++------- src/portable/readme.md | 4 -- src/portable/st/stm32f3/dcd_stm32f3.c | 82 +++++++++++++++++++++++++++++++++++ src/portable/st/stm32f4/dcd_stm32f4.c | 2 +- 4 files changed, 98 insertions(+), 20 deletions(-) delete mode 100644 src/portable/readme.md create mode 100644 src/portable/st/stm32f3/dcd_stm32f3.c (limited to 'src') diff --git a/src/device/dcd.h b/src/device/dcd.h index 95a187298..e73f24277 100644 --- a/src/device/dcd.h +++ b/src/device/dcd.h @@ -97,21 +97,6 @@ void dcd_set_config (uint8_t rhport, uint8_t config_num); // Get current frame number uint32_t dcd_get_frame_number(uint8_t rhport); -/*------------------------------------------------------------------*/ -/* Event Function - * Called by DCD to notify USBD - *------------------------------------------------------------------*/ -void dcd_event_handler(dcd_event_t const * event, bool in_isr); - -// helper to send bus signal event -void dcd_event_bus_signal (uint8_t rhport, dcd_eventid_t eid, bool in_isr); - -// helper to send setup received -void dcd_event_setup_received(uint8_t rhport, uint8_t const * setup, bool in_isr); - -// helper to send transfer complete event -void dcd_event_xfer_complete (uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes, uint8_t result, bool in_isr); - /*------------------------------------------------------------------*/ /* Endpoint API * - open : Configure endpoint's registers @@ -130,6 +115,21 @@ void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr); void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr); bool dcd_edpt_stalled (uint8_t rhport, uint8_t ep_addr); +/*------------------------------------------------------------------*/ +/* Event Function + * Called by DCD to notify USBD + *------------------------------------------------------------------*/ +void dcd_event_handler(dcd_event_t const * event, bool in_isr); + +// helper to send bus signal event +void dcd_event_bus_signal (uint8_t rhport, dcd_eventid_t eid, bool in_isr); + +// helper to send setup received +void dcd_event_setup_received(uint8_t rhport, uint8_t const * setup, bool in_isr); + +// helper to send transfer complete event +void dcd_event_xfer_complete (uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes, uint8_t result, bool in_isr); + #ifdef __cplusplus } #endif diff --git a/src/portable/readme.md b/src/portable/readme.md deleted file mode 100644 index a3e8557dc..000000000 --- a/src/portable/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -To port tinyusb to support new MCU you need to implement all API in the -- tusb_hal.h (mandatory for both device and host stack) -- device/dcd.h for device stack -- host/hcd.h for host stack diff --git a/src/portable/st/stm32f3/dcd_stm32f3.c b/src/portable/st/stm32f3/dcd_stm32f3.c new file mode 100644 index 000000000..20dd92fc5 --- /dev/null +++ b/src/portable/st/stm32f3/dcd_stm32f3.c @@ -0,0 +1,82 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2018, hathach (tinyusb.org) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * This file is part of the TinyUSB stack. + */ + +#include "tusb_option.h" + +#if TUSB_OPT_DEVICE_ENABLED && CFG_TUSB_MCU == OPT_MCU_STM32F3 + +#include "device/dcd.h" +#include "stm32f3xx.h" + +//--------------------------------------------------------------------+ +// MACRO TYPEDEF CONSTANT ENUM DECLARATION +//--------------------------------------------------------------------+ + + +bool dcd_init (uint8_t rhport) +{ + return true; +} + +// Enable device interrupt +void dcd_int_enable (uint8_t rhport) +{} + +// Disable device interrupt +void dcd_int_disable(uint8_t rhport) +{} + +// Receive Set Address request, mcu port must also include status IN response +void dcd_set_address(uint8_t rhport, uint8_t dev_addr) +{} + +// Receive Set Config request +void dcd_set_config (uint8_t rhport, uint8_t config_num) +{} + +// Get current frame number +uint32_t dcd_get_frame_number(uint8_t rhport) +{ return 0; } + +bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const * p_endpoint_desc) +{ + return false; +} +bool dcd_edpt_xfer (uint8_t rhport, uint8_t ep_addr, uint8_t * buffer, uint16_t total_bytes) +{ return false;} +bool dcd_edpt_busy (uint8_t rhport, uint8_t ep_addr) +{ return false;} + +void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr) +{} +void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr) +{} +bool dcd_edpt_stalled (uint8_t rhport, uint8_t ep_addr) +{ + return false;} + +#endif + diff --git a/src/portable/st/stm32f4/dcd_stm32f4.c b/src/portable/st/stm32f4/dcd_stm32f4.c index d99e455ed..472a63f32 100644 --- a/src/portable/st/stm32f4/dcd_stm32f4.c +++ b/src/portable/st/stm32f4/dcd_stm32f4.c @@ -26,7 +26,7 @@ #include "tusb_option.h" -#if TUSB_OPT_DEVICE_ENABLED && (CFG_TUSB_MCU == OPT_MCU_STM32F4 || CFG_TUSB_MCU == OPT_MCU_STM32F3) +#if TUSB_OPT_DEVICE_ENABLED && CFG_TUSB_MCU == OPT_MCU_STM32F4 #include "device/dcd.h" #include "stm32f4xx.h" -- cgit v1.3.1