sakumisu 3 лет назад
Родитель
Сommit
09c23ff7aa

+ 19 - 0
demo/hpm/usb_device/CMakeLists.txt

@@ -0,0 +1,19 @@
+# Copyright 2021 hpmicro
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.13)
+
+set(CONFIG_CHERRYUSB 1)
+set(CONFIG_USB_DEVICE 1)
+set(CONFIG_CHERRYUSB_DEVICE 1)
+set(CONFIG_CHERRYUSB_DEVICE_CDC 1)
+set(CONFIG_CHERRYUSB_DEVICE_MSC 1)
+set(CONFIG_CHERRYUSB_DEVICE_DEMO_CDC_MSC 1)
+
+find_package(hpm-sdk REQUIRED HINTS $ENV{HPM_SDK_BASE})
+
+project(cherryusb)
+
+sdk_app_inc(src)
+sdk_app_src(src/hello_world.c)
+generate_ses_project()

+ 36 - 0
demo/hpm/usb_device/src/hello_world.c

@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2021 hpmicro
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include <stdio.h>
+#include "board.h"
+#include "hpm_debug_console.h"
+
+#define LED_FLASH_PERIOD_IN_MS 300
+
+int main(void)
+{
+    int u;
+
+    l1c_dc_disable();
+    board_init();
+    board_init_led_pins();
+    board_init_usb_pins();
+
+    board_timer_create(LED_FLASH_PERIOD_IN_MS, board_led_toggle);
+
+    printf("hello world\n");
+
+    extern void cdc_acm_msc_init(void);
+    
+    cdc_acm_msc_init();
+    while(1)
+    {
+        extern void cdc_acm_data_send_with_dtr_test(void);
+        cdc_acm_data_send_with_dtr_test();
+    }
+    return 0;
+}

+ 129 - 0
demo/hpm/usb_device/src/usb_config.h

@@ -0,0 +1,129 @@
+#ifndef _USB_CONFIG_H
+#define _USB_CONFIG_H
+
+/* USB common Configuration */
+#ifndef CONFIG_USB_DBG_LEVEL
+#define CONFIG_USB_DBG_LEVEL USB_DBG_INFO
+#endif
+
+#ifndef CONFIG_USB_PRINTF
+#define CONFIG_USB_PRINTF printf
+#endif
+
+#define CONFIG_USB_PRINTF_COLOR_ENABLE
+
+/* USB DEVICE Configuration */
+/* core */
+#ifndef CONFIG_USBDEV_REQUEST_BUFFER_LEN
+#define CONFIG_USBDEV_REQUEST_BUFFER_LEN 256
+#endif
+
+// #define CONFIG_USBDEV_SETUP_LOG_PRINT
+// #define CONFIG_USBDEV_DESC_CHECK
+// #define CONFIG_USBDEV_TEST_MODE
+
+/* cdc class */
+// #define CONFIG_USBDEV_CDC_ACM_UART
+
+/* msc class */
+#ifndef CONFIG_USBDEV_MSC_MANUFACTURER_STRING
+#define CONFIG_USBDEV_MSC_MANUFACTURER_STRING ""
+#endif
+
+#ifndef CONFIG_USBDEV_MSC_PRODUCT_STRING
+#define CONFIG_USBDEV_MSC_PRODUCT_STRING ""
+#endif
+
+#ifndef CONFIG_USBDEV_MSC_VERSION_STRING
+#define CONFIG_USBDEV_MSC_VERSION_STRING "0.01"
+#endif
+
+// #define CONFIG_USBDEV_MSC_THREAD
+
+#ifdef CONFIG_USBDEV_MSC_THREAD
+#ifndef CONFIG_USBDEV_MSC_STACKSIZE
+#define CONFIG_USBDEV_MSC_STACKSIZE 2048
+#endif
+
+#ifndef CONFIG_USBDEV_MSC_PRIO
+#define CONFIG_USBDEV_MSC_PRIO 4
+#endif
+#endif
+
+/* audio class */
+#ifndef CONFIG_USBDEV_AUDIO_VERSION
+#define CONFIG_USBDEV_AUDIO_VERSION 0x0100
+#endif
+
+#ifndef CONFIG_USBDEV_AUDIO_MAX_CHANNEL
+#define CONFIG_USBDEV_AUDIO_MAX_CHANNEL 2
+#endif
+
+/* USB HOST Configuration */
+#ifndef CONFIG_USBHOST_RHPORTS
+#define CONFIG_USBHOST_RHPORTS 1
+#endif
+
+#ifndef CONFIG_USBHOST_EHPORTS
+#define CONFIG_USBHOST_EHPORTS 4
+#endif
+
+#ifndef CONFIG_USBHOST_PIPE_NUM
+#define CONFIG_USBHOST_PIPE_NUM 10
+#endif
+
+#ifndef CONFIG_USBHOST_INTF_NUM
+#define CONFIG_USBHOST_INTF_NUM 6
+#endif
+
+#ifndef CONFIG_USBHOST_EP_NUM
+#define CONFIG_USBHOST_EP_NUM 4
+#endif
+
+#ifndef CONFIG_USBHOST_CONTROL_TRANSFER_TIMEOUT
+#define CONFIG_USBHOST_CONTROL_TRANSFER_TIMEOUT 5000
+#endif
+
+#ifndef CONFIG_USBHOST_MSC_TIMEOUT
+#define CONFIG_USBHOST_MSC_TIMEOUT 5000
+#endif
+
+#ifndef CONFIG_USBHOST_HPWORKQ_PRIO
+#define CONFIG_USBHOST_HPWORKQ_PRIO 5
+#endif
+#ifndef CONFIG_USBHOST_HPWORKQ_STACKSIZE
+#define CONFIG_USBHOST_HPWORKQ_STACKSIZE 2048
+#endif
+
+#ifndef CONFIG_USBHOST_LPWORKQ_PRIO
+#define CONFIG_USBHOST_LPWORKQ_PRIO 1
+#endif
+#ifndef CONFIG_USBHOST_LPWORKQ_STACKSIZE
+#define CONFIG_USBHOST_LPWORKQ_STACKSIZE 2048
+#endif
+
+#ifndef CONFIG_USBHOST_PSC_PRIO
+#define CONFIG_USBHOST_PSC_PRIO 4
+#endif
+#ifndef CONFIG_USBHOST_PSC_STACKSIZE
+#define CONFIG_USBHOST_PSC_STACKSIZE 4096
+#endif
+
+#ifndef CONFIG_USBHOST_DEV_NAMELEN
+#define CONFIG_USBHOST_DEV_NAMELEN 16
+#endif
+
+#define CONFIG_USBHOST_ASYNCH
+//#define CONFIG_USBHOST_GET_STRING_DESC
+
+/* EHCI Configuration */
+#define CONFIG_USB_EHCI_HCCR_BASE (0x20072000)
+#define CONFIG_USB_EHCI_HCOR_BASE (0x20072000 + 0x10)
+#define CONFIG_USB_EHCI_QH_NUM    (10)
+#define CONFIG_USB_EHCI_QTD_NUM   (10)
+// #define CONFIG_USB_EHCI_INFO_ENABLE
+// #define CONFIG_USB_ECHI_HCOR_RESERVED_DISABLE
+// #define CONFIG_USB_EHCI_CONFIGFLAG
+// #define CONFIG_USB_EHCI_PORT_POWER
+
+#endif