From b8b92e120220ee19f623809673323344e257bd4b Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 29 Nov 2012 16:32:49 +0700 Subject: [PATCH] hid mouse working --- demos/device/keyboard/descriptors.c | 4 ++-- demos/device/keyboard/descriptors.h | 4 ++-- demos/device/keyboard/main.c | 2 +- tinyusb/class/hid.c | 17 ++++++++--------- tinyusb/class/hid.h | 19 ++++++++++--------- tinyusb/common/arch/arch.h | 15 +++++++++------ tinyusb/common/arch/arch_lpc134x.h | 5 +++-- tinyusb/common/arch/arm_mx.h | 2 ++ tinyusb/device/dcd.c | 4 ++++ tinyusb/host/hcd.c | 4 ++++ tinyusb/tusb_cfg.h | 5 ++++- 11 files changed, 49 insertions(+), 32 deletions(-) diff --git a/demos/device/keyboard/descriptors.c b/demos/device/keyboard/descriptors.c index 06610421..de0a6a8f 100644 --- a/demos/device/keyboard/descriptors.c +++ b/demos/device/keyboard/descriptors.c @@ -80,7 +80,7 @@ ATTR_ALIGNED(4) const uint8_t HID_KeyboardReportDescriptor[] = { }; #endif -#ifdef CFG_USB_HID_MOUSE +#ifdef CFG_CLASS_HID_MOUSE ATTR_ALIGNED(4) const uint8_t HID_MouseReportDescriptor[] = { HID_UsagePage ( HID_USAGE_PAGE_GENERIC ), HID_Usage ( HID_USAGE_GENERIC_MOUSE ), @@ -316,7 +316,7 @@ ATTR_ALIGNED(4) const USB_FS_CONFIGURATION_DESCRIPTOR USB_FsConfigDescriptor = }, #endif - #ifdef CFG_USB_HID_MOUSE + #ifdef CFG_CLASS_HID_MOUSE .HID_MouseInterface = { .bLength = sizeof(USB_INTERFACE_DESCRIPTOR), diff --git a/demos/device/keyboard/descriptors.h b/demos/device/keyboard/descriptors.h index 83504e31..495d9964 100644 --- a/demos/device/keyboard/descriptors.h +++ b/demos/device/keyboard/descriptors.h @@ -102,7 +102,7 @@ typedef PRE_PACK struct POST_PACK _USB_INTERFACE_ASSOCIATION_DESCRIPTOR #define INTERFACES_OF_HID_KEYBOARD 0 #endif -#ifdef CFG_USB_HID_MOUSE +#ifdef CFG_CLASS_HID_MOUSE #define INTERFACES_OF_HID_MOUSE 1 #else #define INTERFACES_OF_HID_MOUSE 0 @@ -164,7 +164,7 @@ typedef struct USB_ENDPOINT_DESCRIPTOR HID_KeyboardEndpoint; #endif -#ifdef CFG_USB_HID_MOUSE +#ifdef CFG_CLASS_HID_MOUSE //Mouse HID Interface USB_INTERFACE_DESCRIPTOR HID_MouseInterface; HID_DESCRIPTOR HID_MouseHID; diff --git a/demos/device/keyboard/main.c b/demos/device/keyboard/main.c index 042117e1..5e1ab31d 100644 --- a/demos/device/keyboard/main.c +++ b/demos/device/keyboard/main.c @@ -48,7 +48,7 @@ int main(void) usb_hid_keyboard_sendKeys(0x00, keys, 1); #endif - #ifdef CFG_USB_HID_MOUSE + #ifdef CFG_CLASS_HID_MOUSE usb_hid_mouse_send(0, 10, 10); #endif } diff --git a/tinyusb/class/hid.c b/tinyusb/class/hid.c index 84a5799e..7175fb55 100644 --- a/tinyusb/class/hid.c +++ b/tinyusb/class/hid.c @@ -36,7 +36,6 @@ */ #include "hid.h" -//#include "../systick/systick.h" #ifdef CLASS_HID @@ -45,7 +44,7 @@ USB_HID_KeyboardReport_t hid_keyboard_report; volatile static bool bKeyChanged = false; #endif -#ifdef CFG_USB_HID_MOUSE +#ifdef CFG_CLASS_HID_MOUSE USB_HID_MouseReport_t hid_mouse_report; volatile static bool bMouseChanged = false; #endif @@ -78,7 +77,7 @@ ErrorCode_t HID_GetReport( USBD_HANDLE_T hHid, USB_SETUP_PACKET* pSetup, uint8_t break; #endif - #ifdef CFG_USB_HID_MOUSE + #ifdef CFG_CLASS_HID_MOUSE case HID_PROTOCOL_MOUSE: *pBuffer = (uint8_t*) &hid_mouse_report; *plength = sizeof(USB_HID_MouseReport_t); @@ -139,7 +138,7 @@ ErrorCode_t HID_EpIn_Hdlr (USBD_HANDLE_T hUsb, void* data, uint32_t event) break; #endif - #ifdef CFG_USB_HID_MOUSE + #ifdef CFG_CLASS_HID_MOUSE case HID_PROTOCOL_MOUSE: if (!bMouseChanged) { @@ -213,7 +212,7 @@ TUSB_Error_t usb_hid_init(USBD_HANDLE_T hUsb, USB_INTERFACE_DESCRIPTOR const *co *mem_base += (*mem_size - hid_param.mem_size); *mem_size = hid_param.mem_size; - return LPC_OK; + return tERROR_NONE; } /**************************************************************************/ @@ -227,7 +226,7 @@ TUSB_Error_t usb_hid_configured(USBD_HANDLE_T hUsb) 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 #endif - #ifdef CFG_USB_HID_MOUSE + #ifdef CFG_CLASS_HID_MOUSE USBD_API->hw->WriteEP(hUsb , HID_MOUSE_EP_IN , (uint8_t* ) &hid_mouse_report , sizeof(USB_HID_MouseReport_t) ); // initial packet for IN endpoint, will not work if omitted #endif @@ -292,11 +291,11 @@ TUSB_Error_t usb_hid_keyboard_sendKeys(uint8_t modifier, uint8_t keycodes[], uin bKeyChanged = true; - return LPC_OK; + return tERROR_NONE; } #endif -#ifdef CFG_USB_HID_MOUSE +#ifdef CFG_CLASS_HID_MOUSE /**************************************************************************/ /*! @brief Send the supplied mouse event out via HID USB mouse emulation @@ -341,7 +340,7 @@ TUSB_Error_t usb_hid_mouse_send(uint8_t buttons, int8_t x, int8_t y) bMouseChanged = true; - return LPC_OK; + return tERROR_NONE; } #endif diff --git a/tinyusb/class/hid.h b/tinyusb/class/hid.h index aabf5df8..74ce2127 100644 --- a/tinyusb/class/hid.h +++ b/tinyusb/class/hid.h @@ -38,19 +38,10 @@ #ifndef _TUSB_HID_H_ #define _TUSB_HID_H_ -#ifdef __cplusplus - extern "C" { -#endif - // TODO refractor #include "common/common.h" #include "device/dcd.h" -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) ATTR_NON_NULL; -TUSB_Error_t usb_hid_configured(USBD_HANDLE_T hUsb); - -TUSB_Error_t usb_hid_keyboard_sendKeys(uint8_t modifier, uint8_t keycodes[], uint8_t numkey) ATTR_NON_NULL; -TUSB_Error_t usb_hid_mouse_send(uint8_t buttons, int8_t x, int8_t y); /** \brief Standard HID Boot Protocol Mouse Report. * @@ -135,6 +126,16 @@ enum USB_HID_LOCAL_CODE HID_Local_Turkish_F }; +#ifdef __cplusplus + extern "C" { +#endif + +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) ATTR_NON_NULL; +TUSB_Error_t usb_hid_configured(USBD_HANDLE_T hUsb); + +TUSB_Error_t usb_hid_keyboard_sendKeys(uint8_t modifier, uint8_t keycodes[], uint8_t numkey) ATTR_NON_NULL; +TUSB_Error_t usb_hid_mouse_send(uint8_t buttons, int8_t x, int8_t y); + #ifdef __cplusplus } #endif diff --git a/tinyusb/common/arch/arch.h b/tinyusb/common/arch/arch.h index f83213b7..dba66241 100644 --- a/tinyusb/common/arch/arch.h +++ b/tinyusb/common/arch/arch.h @@ -51,17 +51,20 @@ #ifndef _TUSB_ARCH_H_ #define _TUSB_ARCH_H_ -#define ARCH_LPC134X 1 -#define ARCH_LPC43XX 2 -#define ARCH ARCH_LPC134X +#define ARCH_LPC134X +//#define ARCH_LPC11XX #define ENDIAN_LITTLE ///< MCU Endian #define ALIGNMENT (4) ///< MCU Alignment -#if ARCH == ARCH_LPC134X +#if defined ARCH_LPC134X #include "arch_lpc134x.h" -#elif ARCH == ARCH_LPC43XX - +#elif defined ARCH_LPC43XX + #include "arch_lpc43xx.h" +#elif defined ARCH_LPC11XX + #include "arch_lpc11xx.h" +#else + #error Arch is not found #endif #endif /* _TUSB_ARCH_H_ */ diff --git a/tinyusb/common/arch/arch_lpc134x.h b/tinyusb/common/arch/arch_lpc134x.h index dc2818f2..a9b9cb7c 100644 --- a/tinyusb/common/arch/arch_lpc134x.h +++ b/tinyusb/common/arch/arch_lpc134x.h @@ -49,12 +49,13 @@ #ifndef _TUSB_ARCH_LPC134_X_H_ #define _TUSB_ARCH_LPC134_X_H_ +#define ARM_M3 +#define DEVICE_ROMDRIVER + #include "arm_mx.h" #include "LPC13Uxx.h" -#define ARM_M3 -#define DEVICE_ROMDRIVER #endif /* _TUSB_ARCH_LPC134_X_H_ */ diff --git a/tinyusb/common/arch/arm_mx.h b/tinyusb/common/arch/arm_mx.h index 180f0fa9..ff77bff8 100644 --- a/tinyusb/common/arch/arm_mx.h +++ b/tinyusb/common/arch/arm_mx.h @@ -49,6 +49,8 @@ #ifndef _TUSB_ARM_MX_H_ #define _TUSB_ARM_MX_H_ +// #ifdef ARM_M3 ARM_M4 ARM_M0 + #define ENDIAN_LITTLE #define ALIGNMENT (4) diff --git a/tinyusb/device/dcd.c b/tinyusb/device/dcd.c index f33f7fe9..a2cab238 100644 --- a/tinyusb/device/dcd.c +++ b/tinyusb/device/dcd.c @@ -37,6 +37,8 @@ #include "dcd.h" +#ifdef CFG_TUSB_DEVICE + // TODO refractor later #include "descriptors.h" #include @@ -160,3 +162,5 @@ void USB_IRQHandler(void) { USBD_API->hw->ISR(g_hUsb); } + +#endif diff --git a/tinyusb/host/hcd.c b/tinyusb/host/hcd.c index 77175d57..481dc91a 100644 --- a/tinyusb/host/hcd.c +++ b/tinyusb/host/hcd.c @@ -37,9 +37,13 @@ #include "hcd.h" +#ifdef CFG_TUSB_HOST + TUSB_Error_t hcd_init() { return tERROR_NONE; } + +#endif diff --git a/tinyusb/tusb_cfg.h b/tinyusb/tusb_cfg.h index bc55b580..2a727147 100644 --- a/tinyusb/tusb_cfg.h +++ b/tinyusb/tusb_cfg.h @@ -61,7 +61,10 @@ /// Enable HID Keyboard support #define CFG_CLASS_HID_KEYBOARD -#define CLASS_HID (defined CFG_CLASS_HID_KEYBOARD) +/// Enable HID Mouse support +#define CFG_CLASS_HID_MOUSE + +#define CLASS_HID ( (defined CFG_CLASS_HID_KEYBOARD) || (defined CFG_CLASS_HID_MOUSE) ) // TODO APP #define USB_MAX_IF_NUM 8