From 9c9c52f753a9caf51189ad9e1293476f2384676b Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 15 Jun 2013 16:48:36 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@5858 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- testhal/STM32F1xx/USB_MSC/main.c | 313 --------------------------------------- 1 file changed, 313 deletions(-) delete mode 100644 testhal/STM32F1xx/USB_MSC/main.c (limited to 'testhal/STM32F1xx/USB_MSC/main.c') diff --git a/testhal/STM32F1xx/USB_MSC/main.c b/testhal/STM32F1xx/USB_MSC/main.c deleted file mode 100644 index c8e350596..000000000 --- a/testhal/STM32F1xx/USB_MSC/main.c +++ /dev/null @@ -1,313 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#include "ch.h" -#include "hal.h" -#include "test.h" - -#include "usb_msc.h" - -/*===========================================================================*/ -/* USB related stuff. */ -/*===========================================================================*/ - -/* - * USB Device Descriptor. - */ -static const uint8_t msc_device_descriptor_data[18] = { - USB_DESC_DEVICE (0x0110, /* bcdUSB (1.1). */ - 0x00, /* bDeviceClass (in interface). */ - 0x00, /* bDeviceSubClass. */ - 0x00, /* bDeviceProtocol. */ - 0x40, /* bMaxPacketSize. */ - 0x0483, /* idVendor (ST). */ - 0x2004, /* idProduct. */ - 0x0200, /* bcdDevice. */ - 1, /* iManufacturer. */ - 2, /* iProduct. */ - 3, /* iSerialNumber. */ - 1) /* bNumConfigurations. */ -}; - -/* - * Device Descriptor wrapper. - */ -static const USBDescriptor msc_device_descriptor = { - sizeof msc_device_descriptor_data, - msc_device_descriptor_data -}; - -/* Configuration Descriptor tree for a CDC.*/ -static const uint8_t msc_configuration_descriptor_data[32] = { - /* Configuration Descriptor.*/ - USB_DESC_CONFIGURATION(32, /* wTotalLength. */ - 0x01, /* bNumInterfaces. */ - 0x01, /* bConfigurationValue. */ - 0, /* iConfiguration. */ - 0xC0, /* bmAttributes (self powered). */ - 50), /* bMaxPower (100mA). */ - /* Interface Descriptor.*/ - USB_DESC_INTERFACE (0x00, /* bInterfaceNumber. */ - 0x00, /* bAlternateSetting. */ - 0x02, /* bNumEndpoints. */ - 0x08, /* bInterfaceClass (Mass Stprage). */ - 0x06, /* bInterfaceSubClass (SCSI - transparent command set, MSCO - chapter 2). */ - 0x50, /* bInterfaceProtocol (Bulk-Only - Mass Storage, MSCO chapter 3). */ - 4), /* iInterface. */ - /* Endpoint 1 Descriptor.*/ - USB_DESC_ENDPOINT (MSC_DATA_IN_EP|0x80, /* bEndpointAddress. */ - 0x02, /* bmAttributes (Bulk). */ - 0x0040, /* wMaxPacketSize. */ - 0x00), /* bInterval (ignored for bulk). */ - /* Endpoint 2 Descriptor.*/ - USB_DESC_ENDPOINT (MSC_DATA_OUT_EP, /* bEndpointAddress. */ - 0x02, /* bmAttributes (Bulk). */ - 0x0040, /* wMaxPacketSize. */ - 0x00), /* bInterval (ignored for bulk). */ -}; - -/* - * Configuration Descriptor wrapper. - */ -static const USBDescriptor msc_configuration_descriptor = { - sizeof msc_configuration_descriptor_data, - msc_configuration_descriptor_data -}; - -/* - * U.S. English language identifier. - */ -static const uint8_t msc_string0[] = { - USB_DESC_BYTE(4), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - USB_DESC_WORD(0x0409) /* wLANGID (U.S. English). */ -}; - -/* - * Vendor string. - */ -static const uint8_t msc_string1[] = { - USB_DESC_BYTE(38), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, - 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, - 'c', 0, 's', 0 -}; - -/* - * Device Description string. - */ -static const uint8_t msc_string2[] = { - USB_DESC_BYTE(50), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - 'C', 0, 'h', 0, 'i', 0, 'b', 0, 'i', 0, 'O', 0, 'S', 0, '/', 0, - 'R', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0, ' ', 0, - 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, 'e', 0 -}; - -/* - * Serial Number string. - */ -static const uint8_t msc_string3[] = { - USB_DESC_BYTE(8), /* bLength. */ - USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ - '0' + CH_KERNEL_MAJOR, 0, - '0' + CH_KERNEL_MINOR, 0, - '0' + CH_KERNEL_PATCH, 0 -}; - -/* - * Interface string. - */ -static const uint8_t msc_string4[] = { - 16, /* bLength. */ - USB_DESCRIPTOR_STRING, /* bDescriptorType. */ - 'S', 0, 'T', 0, ' ', 0, 'M', 0, 'a', 0, 's', 0, 's', 0 -}; - -/* - * Strings wrappers array. - */ -static const USBDescriptor msc_strings[] = { - {sizeof msc_string0, msc_string0}, - {sizeof msc_string1, msc_string1}, - {sizeof msc_string2, msc_string2}, - {sizeof msc_string3, msc_string3}, - {sizeof msc_string4, msc_string4} -}; - -/* - * Handles the GET_DESCRIPTOR callback. All required descriptors must be - * handled here. - */ -static const USBDescriptor *get_descriptor(USBDriver *usbp, - uint8_t dtype, - uint8_t dindex, - uint16_t lang) { - - (void)usbp; - (void)lang; - switch (dtype) { - case USB_DESCRIPTOR_DEVICE: - return &msc_device_descriptor; - case USB_DESCRIPTOR_CONFIGURATION: - return &msc_configuration_descriptor; - case USB_DESCRIPTOR_STRING: - if (dindex < 5) - return &msc_strings[dindex]; - } - return NULL; -} - -/* - * IN EP1 state. - */ -USBInEndpointState ep1state; - -/* - * OUT EP2 state. - */ -USBOutEndpointState ep2state; - -/* - * EP1 initialization structure (IN only). - */ -static const USBEndpointConfig ep1config = { - USB_EP_MODE_TYPE_BULK | USB_EP_MODE_TRANSACTION, - mscDataTransmitted, - NULL, - 0x0040, - 0x0000, - &ep1state, - NULL -}; - -/* - * EP2 initialization structure (OUT only). - */ -static const USBEndpointConfig ep2config = { - USB_EP_MODE_TYPE_BULK | USB_EP_MODE_TRANSACTION, - NULL, - mscDataReceived, - 0x0000, - 0x0040, - NULL, - &ep2state -}; - -/* - * Handles the USB driver global events. - */ -static void usb_event(USBDriver *usbp, usbevent_t event) { - - switch (event) { - case USB_EVENT_RESET: - return; - case USB_EVENT_ADDRESS: - return; - case USB_EVENT_CONFIGURED: - /* Enables the endpoints specified into the configuration. - Note, this callback is invoked from an ISR so I-Class functions - must be used.*/ - chSysLockFromIsr(); - usbInitEndpointI(usbp, MSC_DATA_IN_EP, &ep1config); - usbInitEndpointI(usbp, MSC_DATA_OUT_EP, &ep2config); - chSysUnlockFromIsr(); - return; - case USB_EVENT_SUSPEND: - return; - case USB_EVENT_WAKEUP: - return; - case USB_EVENT_STALLED: - return; - } - return; -} - -/* - * Serial over USB driver configuration. - */ -static const USBConfig usbcfg = { - usb_event, - get_descriptor, - mscRequestsHook, - NULL -}; - -/*===========================================================================*/ -/* Generic code. */ -/*===========================================================================*/ - -/* - * Red LED blinker thread, times are in milliseconds. - */ -static WORKING_AREA(waThread1, 128); -static msg_t Thread1(void *arg) { - - (void)arg; - chRegSetThreadName("blinker"); - while (TRUE) { - palClearPad(IOPORT3, GPIOC_LED); - chThdSleepMilliseconds(500); - palSetPad(IOPORT3, GPIOC_LED); - chThdSleepMilliseconds(500); - } -} - -/* - * Application entry point. - */ -int main(void) { - - /* - * System initializations. - * - HAL initialization, this also initializes the configured device drivers - * and performs the board-specific initializations. - * - Kernel initialization, the main() function becomes a thread and the - * RTOS is active. - */ - halInit(); - chSysInit(); - - /* - * Activates the USB driver and then the USB bus pull-up on D+. - */ - usbStart(&USBD1, &usbcfg); - palClearPad(GPIOC, GPIOC_USB_DISC); - - /* - * Activates the serial driver 2 using the driver default configuration. - */ - sdStart(&SD2, NULL); - - /* - * Creates the blinker thread. - */ - chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); - - /* - * Normal main() thread activity, in this demo it does nothing except - * sleeping in a loop and check the button state. - */ - while (TRUE) { - if (palReadPad(IOPORT1, GPIOA_BUTTON)) - TestThread(&SD2); - chThdSleepMilliseconds(1000); - } -} -- cgit v1.2.3