diff --git a/.cproject b/.cproject index 02cdb0877..7f0571ac7 100644 --- a/.cproject +++ b/.cproject @@ -59,7 +59,7 @@ - + @@ -454,7 +454,7 @@ - + diff --git a/demos/device/keyboard/descriptors.c b/demos/device/keyboard/descriptors.c index de0a6a8f8..7c342f278 100644 --- a/demos/device/keyboard/descriptors.c +++ b/demos/device/keyboard/descriptors.c @@ -2,12 +2,12 @@ * descriptors.c * * Created on: Nov 26, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, @@ -130,7 +130,7 @@ ATTR_ALIGNED(4) const USB_DEVICE_DESCRIPTOR USB_DeviceDescriptor = .bDeviceClass = USB_DEVICE_CLASS_IAD, .bDeviceSubClass = USB_DEVICE_SUBCLASS_IAD, .bDeviceProtocol = USB_DEVICE_PROTOCOL_IAD, - #elif defined CFG_USB_CDC + #elif defined CFG_CLASS_CDC .bDeviceClass = CDC_COMMUNICATION_INTERFACE_CLASS, .bDeviceSubClass = 0x00, .bDeviceProtocol = 0x00, @@ -187,7 +187,7 @@ ATTR_ALIGNED(4) const USB_FS_CONFIGURATION_DESCRIPTOR USB_FsConfigDescriptor = }, #endif - #ifdef CFG_USB_CDC + #ifdef CFG_CLASS_CDC // USB CDC Serial Interface // CDC Control Interface .CDC_CCI_Interface = diff --git a/demos/device/keyboard/descriptors.h b/demos/device/keyboard/descriptors.h index 495d99649..61278f22b 100644 --- a/demos/device/keyboard/descriptors.h +++ b/demos/device/keyboard/descriptors.h @@ -2,13 +2,8 @@ * descriptors.h * * Created on: Nov 26, 2012 - * Author: hathach (thachha@live.com) - */ - -/* - * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) - * All rights reserved. + * Author: hathachtware License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net)All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: @@ -88,9 +83,9 @@ typedef PRE_PACK struct POST_PACK _USB_INTERFACE_ASSOCIATION_DESCRIPTOR /////////////////////////////////////////////////////////////////////// // Interface Assosication Descriptor if device is CDC + other class -#define IAD_DESC_REQUIRED ( defined(CFG_USB_CDC) && (CLASS_HID) ) +#define IAD_DESC_REQUIRED ( defined(CFG_CLASS_CDC) && (CLASS_HID) ) -#ifdef CFG_USB_CDC +#ifdef CFG_CLASS_CDC #define INTERFACES_OF_CDC 2 #else #define INTERFACES_OF_CDC 0 @@ -142,7 +137,7 @@ typedef struct USB_INTERFACE_ASSOCIATION_DESCRIPTOR CDC_IAD; #endif -#ifdef CFG_USB_CDC +#ifdef CFG_CLASS_CDC //CDC - Serial //CDC Control Interface USB_INTERFACE_DESCRIPTOR CDC_CCI_Interface; diff --git a/demos/device/keyboard/main.c b/demos/device/keyboard/main.c index 5e1ab31de..b610e6567 100644 --- a/demos/device/keyboard/main.c +++ b/demos/device/keyboard/main.c @@ -40,20 +40,53 @@ int main(void) lastSecond = currentSecond; GPIOSetBitValue(CFG_LED_PORT, CFG_LED_PIN, lastSecond % 2); - #if !defined(CFG_USB_CDC) + #ifndef CFG_CLASS_CDC if (usb_isConfigured()) { #ifdef CFG_CLASS_HID_KEYBOARD uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA}; - usb_hid_keyboard_sendKeys(0x00, keys, 1); + tusb_hid_keyboard_sendKeys(0x00, keys, 1); #endif #ifdef CFG_CLASS_HID_MOUSE - usb_hid_mouse_send(0, 10, 10); + tusb_hid_mouse_send(0, 10, 10); #endif } #endif } + + #ifdef CFG_CLASS_CDC + if (usb_isConfigured()) + { + uint8_t cdc_char; + if( tusb_cdc_getc(&cdc_char) ) + { + switch (cdc_char) + { + #ifdef CFG_CLASS_HID_KEYBOARD + case '1' : + { + uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA + 'e' - 'a'}; + tusb_hid_keyboard_sendKeys(0x08, keys, 1); // windows + E --> open explorer + } + break; + #endif + + #ifdef CFG_CLASS_HID_MOUSE + case '2' : + tusb_hid_mouse_send(0, 10, 10); + break; + #endif + + default : + cdc_char = toupper(cdc_char); + tusb_cdc_putc(cdc_char); + break; + + } + } + } +#endif } return 0; diff --git a/licence.txt b/licence.txt index 2c783a771..bd84ee2ea 100644 --- a/licence.txt +++ b/licence.txt @@ -1,6 +1,6 @@ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, diff --git a/tinyusb/class/WinCDCdriver.inf b/tinyusb/class/WinCDCdriver.inf new file mode 100644 index 000000000..14af2be70 --- /dev/null +++ b/tinyusb/class/WinCDCdriver.inf @@ -0,0 +1,105 @@ +;************************************************************ +; Windows USB CDC ACM Setup File +; Copyright (c) 2000 Microsoft Corporation + + +[Version] +Signature="$Windows NT$" +Class=Ports +ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} +Provider=%MFGNAME% +LayoutFile=layout.inf +CatalogFile=%MFGFILENAME%.cat +DriverVer=11/15/2007,5.1.2600.0 + +[Manufacturer] +%MFGNAME%=DeviceList, NTamd64 + +[DestinationDirs] +DefaultDestDir=12 + + +;------------------------------------------------------------------------------ +; Windows 2000/XP/Vista-32bit Sections +;------------------------------------------------------------------------------ + +[DriverInstall.nt] +include=mdmcpq.inf +CopyFiles=DriverCopyFiles.nt +AddReg=DriverInstall.nt.AddReg + +[DriverCopyFiles.nt] +usbser.sys,,,0x20 + +[DriverInstall.nt.AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,%DRIVERFILENAME%.sys +HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" + +[DriverInstall.nt.Services] +AddService=usbser, 0x00000002, DriverService.nt + +[DriverService.nt] +DisplayName=%SERVICE% +ServiceType=1 +StartType=3 +ErrorControl=1 +ServiceBinary=%12%\%DRIVERFILENAME%.sys + +;------------------------------------------------------------------------------ +; Vista-64bit Sections +;------------------------------------------------------------------------------ + +[DriverInstall.NTamd64] +include=mdmcpq.inf +CopyFiles=DriverCopyFiles.NTamd64 +AddReg=DriverInstall.NTamd64.AddReg + +[DriverCopyFiles.NTamd64] +%DRIVERFILENAME%.sys,,,0x20 + +[DriverInstall.NTamd64.AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,%DRIVERFILENAME%.sys +HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" + +[DriverInstall.NTamd64.Services] +AddService=usbser, 0x00000002, DriverService.NTamd64 + +[DriverService.NTamd64] +DisplayName=%SERVICE% +ServiceType=1 +StartType=3 +ErrorControl=1 +ServiceBinary=%12%\%DRIVERFILENAME%.sys + + +;------------------------------------------------------------------------------ +; Vendor and Product ID Definitions +;------------------------------------------------------------------------------ +; When developing your USB device, the VID and PID used in the PC side +; application program and the firmware on the microcontroller must match. +; Modify the below line to use your VID and PID. Use the format as shown below. +; Note: One INF file can be used for multiple devices with different VID and PIDs. +; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. +;------------------------------------------------------------------------------ +[SourceDisksFiles] +[SourceDisksNames] +[DeviceList] +%DESCRIPTION%=DriverInstall, USB\VID_1FC9&PID_2001, USB\VID_1FC9&PID_2003&MI_00, USB\VID_1FC9&PID_2005&MI_00, USB\VID_1FC9&PID_2007&MI_00 + +[DeviceList.NTamd64] +%DESCRIPTION%=DriverInstall, USB\VID_1FC9&PID_2001, USB\VID_1FC9&PID_2003&MI_00, USB\VID_1FC9&PID_2005&MI_00, USB\VID_1FC9&PID_2007&MI_00 + +;------------------------------------------------------------------------------ +; String Definitions +;------------------------------------------------------------------------------ +;Modify these strings to customize your device +;------------------------------------------------------------------------------ +[Strings] +MFGFILENAME="CDC_vista" +DRIVERFILENAME ="usbser" +MFGNAME="tinyusb.net" +INSTDISK="tinyUSB CDC driver" +DESCRIPTION="Communications Port" +SERVICE="USB RS-232 Emulation Driver" \ No newline at end of file diff --git a/tinyusb/class/cdc.c b/tinyusb/class/cdc.c new file mode 100644 index 000000000..539981348 --- /dev/null +++ b/tinyusb/class/cdc.c @@ -0,0 +1,325 @@ +/* + * ${file_name} + * + * Created on: ${date} + * Author: hathach + */ + +/* + * Software License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the tiny usb stack. + */ + +#include "cdc.h" +#include "common/fifo.h" + +#ifdef CFG_CLASS_CDC + +static USBD_HANDLE_T g_hCdc; +static CDC_LINE_CODING line_coding; + +static uint8_t qBuffer[2][CDC_BUFFER_SIZE]; /* TX and RX buffers */ +static fifo_t ffTX, ffRX; + +void usb_cdc_recv_isr(void) ATTR_WEAK ATTR_ALIAS(usb_cdc_recv_isr_stub); +/**************************************************************************/ +/*! + @brief Stub for the optional CDC receive ISR that can be used + to perform some action when data arrives via USB CDC +*/ +/**************************************************************************/ +void usb_cdc_recv_isr_stub (void) +{ + return; +} + +/**************************************************************************/ +/*! + @brief Adds a single byte to the transmit buffer for USB CDC + + @param[in] c + The byte to send + + @returns TRUE if the byte was successfully added to the TX buffer + + @note See example for tusb_cdc_getc +*/ +/**************************************************************************/ +bool tusb_cdc_putc(uint8_t c) +{ + return fifo_write(&ffTX, c); +} + +/**************************************************************************/ +/*! + @brief Reads a single byte from the USB CDC buffer + + @param[in] c + Pointer to the location where the byte should be written + + @returns TRUE if a byte was read from the buffer + + @section EXAMPLE + + @code + + // Convert incoming characters to upper case and send back via CDC + if (usb_isConfigured()) + { + uint8_t cdc_char; + if( tusb_cdc_getc(&cdc_char) ) + { + switch (cdc_char) + { + default : + cdc_char = toupper(cdc_char); + tusb_cdc_putc(cdc_char); + break; + } + } + } + + @endcode +*/ +/**************************************************************************/ +bool tusb_cdc_getc(uint8_t *c) +{ + ASSERT(c, false); // not empty pointer + + return fifo_read(&ffRX, c); +} + +/**************************************************************************/ +/*! + @brief Writes the supplied buffer to the USB CDC device + + @param[in] buffer + Pointer to the buffer that should be written via USB CDC + @param[in] count + The number of bytes to write + + @returns The actual number of bytes sent out via USB CDC + + @section EXAMPLE + + @code + + // Capture printf output (in Red Suite) and send it to USB CDC + // (Note: With newlib this function should be renamed to _write) + int __sys_write(int file, char *ptr, int len) + { + #ifdef CFG_PRINTF_USBCDC + // Handle USB CDC output + if (usb_isConfigured()) + { + int length = len; + while(length > 0) + { + uint16_t transferredCount; + + transferredCount = tusb_cdc_send( (uint8_t*) ptr, length); + ptr += transferredCount; + length -= transferredCount; + } + } + #endif + + return len; + } + + @endcode +*/ +/**************************************************************************/ +uint16_t tusb_cdc_send(uint8_t* buffer, uint16_t count) +{ + uint16_t i=0; + + ASSERT(buffer && count, 0); + + while (i < count && fifo_write(&ffTX, buffer[i]) ) + { + i++; + } + + return i; +} + +/**************************************************************************/ +/*! + @brief Reads the incoming CDC buffer up to a maximum number of bytes + + @param[in] buffer + Pointer to the buffer where data should be written + @param[in] max + The maximum number of bytes to read + + @returns The actual number of bytes received +*/ +/**************************************************************************/ +uint16_t tusb_cdc_recv(uint8_t* buffer, uint16_t max) +{ + ASSERT(buffer && max, 0); + + return fifo_readArray(&ffRX, buffer, max); +} + +// ROM driver bug: cannot hook this to CIC_GetRequest +// Need this to implement GetLineCode & detect +//ErrorCode_t CDC_Control_GetRequest(USBD_HANDLE_T hUsb, USB_SETUP_PACKET *pSetup, uint8_t **pBuffer, uint16_t *length) +//{ +// return LPC_OK; +//} + +/**************************************************************************/ +/*! + @brief TODO Add description +*/ +/**************************************************************************/ +ErrorCode_t CDC_SetLineCoding(USBD_HANDLE_T hUsb, CDC_LINE_CODING *lineCoding) +{ + ASSERT(lineCoding, ERR_FAILED); + memcpy(&line_coding, lineCoding, sizeof(CDC_LINE_CODING)); + return LPC_OK; +} + +/**************************************************************************/ +/*! + @brief TODO Add description +*/ +/**************************************************************************/ +ErrorCode_t CDC_SendBreak(USBD_HANDLE_T hCDC, uint16_t mstime) +{ + return LPC_OK; +} + +/**************************************************************************/ +/*! + @brief Bulk Out handler for the USB ROM drivers (UART TX) +*/ +/**************************************************************************/ +ErrorCode_t CDC_BulkIn_Hdlr(USBD_HANDLE_T hUsb, void* data, uint32_t event) +{ + if (USB_EVT_IN == event) + { + uint8_t buffer[CDC_DATA_EP_MAXPACKET_SIZE]; + uint16_t count; + + count = fifo_readArray(&ffTX, buffer, CDC_DATA_EP_MAXPACKET_SIZE); + USBD_API->hw->WriteEP(hUsb, CDC_DATA_EP_IN, buffer, count); // write data to EP + } + + return LPC_OK; +} + +/**************************************************************************/ +/*! + @brief Bulk Out handler for the USB ROM drivers (UART RX) +*/ +/**************************************************************************/ +ErrorCode_t CDC_BulkOut_Hdlr(USBD_HANDLE_T hUsb, void* data, uint32_t event) +{ + if (USB_EVT_OUT == event) + { + uint16_t count, i; + uint8_t buffer[CDC_DATA_EP_MAXPACKET_SIZE]; + + count = USBD_API->hw->ReadEP(hUsb, CDC_DATA_EP_OUT, buffer); + for (i=0; icore->RegisterEpHandler (hUsb , ((CDC_DATA_EP_IN & 0x0F) << 1) +1 , CDC_BulkIn_Hdlr , NULL), tERROR_FAILED ); + ASSERT ( LPC_OK == USBD_API->core->RegisterEpHandler (hUsb , (CDC_DATA_EP_OUT & 0x0F) << 1 , CDC_BulkOut_Hdlr , NULL), tERROR_FAILED ); + + ASSERT ( LPC_OK == USBD_API->cdc->init(hUsb, &cdc_param, &g_hCdc), tERROR_FAILED); + + /* update memory variables */ + *mem_base = cdc_param.mem_base; + *mem_size = cdc_param.mem_size; + + return tERROR_NONE; +} + +/**************************************************************************/ +/*! + @brief TODO Add description +*/ +/**************************************************************************/ +TUSB_Error_t tusb_cdc_configured(USBD_HANDLE_T hUsb) +{ + uint8_t dummy=0; + USBD_API->hw->WriteEP(hUsb, CDC_DATA_EP_IN, &dummy, 1); // initial packet for IN endpoint, will not work if omitted + +// #if defined CFG_MCU_FAMILY_LPC11UXX +// fifo_init (&ffTX, qBuffer[0], CDC_BUFFER_SIZE, false, USB_IRQn); // TX is non-overwritable +// fifo_init (&ffRX, qBuffer[1], CDC_BUFFER_SIZE, true, USB_IRQn); // RX is overwritable +// #elif defined CFG_MCU_FAMILY_LPC13UXX + fifo_init (&ffTX, qBuffer[0], CDC_BUFFER_SIZE, false, USB_IRQ_IRQn); // TX is non-overwritable + fifo_init (&ffRX, qBuffer[1], CDC_BUFFER_SIZE, true, USB_IRQ_IRQn); // RX is overwritable +// #else +// #error "usb_cdc.c: No MCU defined" +// #endif + + return tERROR_NONE; +} + +#endif diff --git a/tinyusb/class/cdc.h b/tinyusb/class/cdc.h new file mode 100644 index 000000000..25a666f78 --- /dev/null +++ b/tinyusb/class/cdc.h @@ -0,0 +1,113 @@ +/* + * cdc.h + * + * Created on: Nov 27, 2012 + * Author: hathach + */ + +/* + * Software License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the tiny usb stack. + */ + +/** \file + * \brief CDC Class Driver + * + * \note TBD + */ + +/** \ingroup Group_TinyUSB + * \addtogroup Group_ClassDriver Class Driver + * @{ + * \defgroup Group_CDC Communication Device Class + * @{ + */ + +#ifndef _TUSB_CDC_H__ +#define _TUSB_CDC_H__ + +// todo refractor later +#include "common/common.h" +#include "device/dcd.h" + +#define CDC_BUFFER_SIZE (2*CDC_DATA_EP_MAXPACKET_SIZE) + +/** \brief send a character to host + * + * \param[in] para1 + * \param[out] para2 + * \return Error Code of the \ref TUSB_ERROR enum + * \note + */ +bool tusb_cdc_putc(uint8_t c); + +/** \brief get a character from host + * + * \param[in] para1 + * \param[out] para2 + * \return Error Code of the \ref TUSB_ERROR enum + * \note + */ +bool tusb_cdc_getc(uint8_t *c); + +/** \brief send a number of characters to host + * + * \param[in] para1 + * \param[out] para2 + * \return Error Code of the \ref TUSB_ERROR enum + * \note + */ +uint16_t tusb_cdc_send(uint8_t* buffer, uint16_t count); + +/** \brief get a number of characters from host + * + * \param[in] para1 + * \param[out] para2 + * \return Error Code of the \ref TUSB_ERROR enum + * \note + */ +uint16_t tusb_cdc_recv(uint8_t* buffer, uint16_t max); + +/** \brief initialize cdc driver + * + * \param[in] para1 + * \param[out] para2 + * \return Error Code of the \ref TUSB_ERROR enum + * \note + */ +TUSB_Error_t tusb_cdc_init(USBD_HANDLE_T hUsb, USB_INTERFACE_DESCRIPTOR const *const pControlIntfDesc, USB_INTERFACE_DESCRIPTOR const *const pDataIntfDesc, uint32_t* mem_base, uint32_t* mem_size); + +/** \brief notify cdc driver that usb is configured + * + * \param[in] para1 + * \param[out] para2 + * \return Error Code of the \ref TUSB_ERROR enum + * \note + */ +TUSB_Error_t tusb_cdc_configured(USBD_HANDLE_T hUsb); +#endif diff --git a/tinyusb/class/hid.c b/tinyusb/class/hid.c index 7175fb55f..4058ea5db 100644 --- a/tinyusb/class/hid.c +++ b/tinyusb/class/hid.c @@ -2,12 +2,12 @@ * hid.c * * Created on: Nov 27, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, @@ -179,7 +179,7 @@ ErrorCode_t HID_EpOut_Hdlr (USBD_HANDLE_T hUsb, void* data, uint32_t event) @brief Initialises USB HID using the ROM based drivers */ /**************************************************************************/ -TUSB_Error_t usb_hid_init(USBD_HANDLE_T hUsb, USB_INTERFACE_DESCRIPTOR const *const pIntfDesc, uint8_t const * const pHIDReportDesc, uint32_t ReportDescLength, uint32_t* mem_base, uint32_t* mem_size) +TUSB_Error_t tusb_hid_init(USBD_HANDLE_T hUsb, USB_INTERFACE_DESCRIPTOR const *const pIntfDesc, uint8_t const * const pHIDReportDesc, uint32_t ReportDescLength, uint32_t* mem_base, uint32_t* mem_size) { USB_HID_REPORT_T reports_data = { @@ -220,7 +220,7 @@ TUSB_Error_t usb_hid_init(USBD_HANDLE_T hUsb, USB_INTERFACE_DESCRIPTOR const *co */ /**************************************************************************/ -TUSB_Error_t usb_hid_configured(USBD_HANDLE_T hUsb) +TUSB_Error_t tusb_hid_configured(USBD_HANDLE_T hUsb) { #ifdef CFG_CLASS_HID_KEYBOARD USBD_API->hw->WriteEP(hUsb , HID_KEYBOARD_EP_IN , (uint8_t* ) &hid_keyboard_report , sizeof(USB_HID_KeyboardReport_t) ); // initial packet for IN endpoint , will not work if omitted @@ -257,20 +257,20 @@ TUSB_Error_t usb_hid_configured(USBD_HANDLE_T hUsb) if (usb_isConfigured()) { uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA}; - usb_hid_keyboard_sendKeys(0x00, keys, 1); + tusb_hid_keyboard_sendKeys(0x00, keys, 1); } // Send Windows + 'e' (shortcut for 'explorer.exe') if (usb_isConfigured()) { uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA + 'e' - 'a'}; - usb_hid_keyboard_sendKeys((1<config_value) { #if defined(CLASS_HID) - ASSERT( tERROR_NONE == usb_hid_configured(hUsb), ERR_FAILED ); + ASSERT( tERROR_NONE == tusb_hid_configured(hUsb), ERR_FAILED ); #endif - #ifdef CFG_USB_CDC - ASSERT_STATUS( usb_cdc_configured(hUsb) ); + #ifdef CFG_CLASS_CDC + ASSERT( tERROR_NONE == tusb_cdc_configured(hUsb), ERR_FAILED ); #endif } @@ -118,18 +118,18 @@ TUSB_Error_t dcd_init() /* Initialise the class driver(s) */ #ifdef CFG_CLASS_CDC - ASSERT_ERROR( usb_cdc_init(g_hUsb, &USB_FsConfigDescriptor.CDC_CCI_Interface, + ASSERT_ERROR( tusb_cdc_init(g_hUsb, &USB_FsConfigDescriptor.CDC_CCI_Interface, &USB_FsConfigDescriptor.CDC_DCI_Interface, &membase, &memsize) ); #endif #ifdef CFG_CLASS_HID_KEYBOARD - ASSERT_ERROR( usb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_KeyboardInterface , + ASSERT_ERROR( tusb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_KeyboardInterface , HID_KeyboardReportDescriptor, USB_FsConfigDescriptor.HID_KeyboardHID.DescriptorList[0].wDescriptorLength, &membase , &memsize) ); #endif #ifdef CFG_CLASS_HID_MOUSE - ASSERT_ERROR( usb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_MouseInterface , + ASSERT_ERROR( tusb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_MouseInterface , HID_MouseReportDescriptor, USB_FsConfigDescriptor.HID_MouseHID.DescriptorList[0].wDescriptorLength, &membase , &memsize) ); #endif diff --git a/tinyusb/device/dcd.h b/tinyusb/device/dcd.h index aefdaede1..ffd89b0a9 100644 --- a/tinyusb/device/dcd.h +++ b/tinyusb/device/dcd.h @@ -2,12 +2,12 @@ * dcd.h * * Created on: Nov 26, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, diff --git a/tinyusb/host/hcd.c b/tinyusb/host/hcd.c index 481dc91ae..aa8e0f691 100644 --- a/tinyusb/host/hcd.c +++ b/tinyusb/host/hcd.c @@ -2,12 +2,12 @@ * hcd.c * * Created on: Nov 29, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, diff --git a/tinyusb/host/hcd.h b/tinyusb/host/hcd.h index d807341ec..e118d9e24 100644 --- a/tinyusb/host/hcd.h +++ b/tinyusb/host/hcd.h @@ -2,12 +2,12 @@ * hcd.h * * Created on: Nov 26, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, diff --git a/tinyusb/tusb.c b/tinyusb/tusb.c index e2aed4d4e..4b028e29f 100644 --- a/tinyusb/tusb.c +++ b/tinyusb/tusb.c @@ -2,12 +2,12 @@ * tusb.c * * Created on: Nov 27, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, diff --git a/tinyusb/tusb.h b/tinyusb/tusb.h index fd02fadb7..29f05b3bd 100644 --- a/tinyusb/tusb.h +++ b/tinyusb/tusb.h @@ -2,12 +2,12 @@ * tusb.h * * Created on: Nov 27, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, @@ -68,6 +68,10 @@ #include "class/hid.h" #endif +#ifdef CFG_CLASS_CDC + #include "class/cdc.h" +#endif + #ifdef __cplusplus } #endif diff --git a/tinyusb/tusb_cfg.h b/tinyusb/tusb_cfg.h index 2a727147e..466b08fea 100644 --- a/tinyusb/tusb_cfg.h +++ b/tinyusb/tusb_cfg.h @@ -2,12 +2,12 @@ * tusb_cfg.h * * Created on: Nov 26, 2012 - * Author: hathach (thachha@live.com) + * Author: hathach */ /* * Software License Agreement (BSD License) - * Copyright (c) 2012, hathach (thachha@live.com) + * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, @@ -58,6 +58,9 @@ /// Enable Device Support #define CFG_TUSB_DEVICE +/// Enable CDC Support +#define CFG_CLASS_CDC + /// Enable HID Keyboard support #define CFG_CLASS_HID_KEYBOARD