diff --git a/right/build/armgcc/CMakeLists.txt b/right/build/armgcc/CMakeLists.txt index 3aa0481..d289a7f 100644 --- a/right/build/armgcc/CMakeLists.txt +++ b/right/build/armgcc/CMakeLists.txt @@ -169,17 +169,19 @@ add_executable(dev_composite_hid_mouse_hid_keyboard_bm.elf "${SrcDir}/include/usb/usb_device_ch9.h" "${SrcDir}/composite.c" "${SrcDir}/composite.h" -"${SrcDir}/hid_mouse.c" -"${SrcDir}/hid_mouse.h" "${SrcDir}/hid_keyboard.c" "${SrcDir}/hid_keyboard.h" +"${SrcDir}/hid_mouse.c" +"${SrcDir}/hid_mouse.h" +"${SrcDir}/usb_device_descriptor.c" +"${SrcDir}/usb_device_descriptor.h" +"${SrcDir}/usb_device_config.h" "${SrcDir}/usb_keyboard_descriptors.c" "${SrcDir}/usb_keyboard_descriptors.h" "${SrcDir}/usb_mouse_descriptors.c" "${SrcDir}/usb_mouse_descriptors.h" -"${SrcDir}/usb_device_descriptor.c" -"${SrcDir}/usb_device_descriptor.h" -"${SrcDir}/usb_device_config.h" +"${SrcDir}/util.c" +"${SrcDir}/util.h" "${KsdkDir}/devices/MK22F51212/system_MK22F51212.c" "${KsdkDir}/devices/MK22F51212/system_MK22F51212.h" "${KsdkDir}/devices/MK22F51212/utilities/fsl_debug_console.c" diff --git a/right/build/kds/.project b/right/build/kds/.project index ce76281..23c42c2 100644 --- a/right/build/kds/.project +++ b/right/build/kds/.project @@ -240,6 +240,16 @@ 1 PARENT-2-PROJECT_LOC/usb_mouse_descriptors.h + + sources/util.c + 1 + PARENT-2-PROJECT_LOC/util.c + + + sources/util.h + 1 + PARENT-2-PROJECT_LOC/util.h + startup/startup_MK22F51212.S 1 diff --git a/right/usb_device_descriptor.c b/right/usb_device_descriptor.c index 4233f13..4991e27 100644 --- a/right/usb_device_descriptor.c +++ b/right/usb_device_descriptor.c @@ -3,34 +3,34 @@ #include "usb_device.h" #include "include/usb/usb_device_class.h" #include "include/usb/usb_device_hid.h" +#include "util.h" #include "usb_device_descriptor.h" #include "composite.h" -#include "hid_mouse.h" #include "hid_keyboard.h" -#include "usb_keyboard_descriptors.h" -#include "usb_mouse_descriptors.h" +#include "hid_mouse.h" -uint8_t g_UsbDeviceDescriptor[USB_DESCRIPTOR_LENGTH_DEVICE] = { +uint8_t UsbDeviceDescriptor[USB_DESCRIPTOR_LENGTH_DEVICE] = { USB_DESCRIPTOR_LENGTH_DEVICE, USB_DESCRIPTOR_TYPE_DEVICE, - USB_SHORT_GET_LOW(USB_DEVICE_SPECIFIC_BCD_VERSION), - USB_SHORT_GET_HIGH(USB_DEVICE_SPECIFIC_BCD_VERSION), // USB Specification Release Number in - // Binary-Coded Decimal (i.e., 2.10 is 210H). + USB_SHORT_GET_LOW(USB_DEVICE_SPECIFICATION_BCD_VERSION), + USB_SHORT_GET_HIGH(USB_DEVICE_SPECIFICATION_BCD_VERSION), USB_DEVICE_CLASS, USB_DEVICE_SUBCLASS, USB_DEVICE_PROTOCOL, - USB_CONTROL_MAX_PACKET_SIZE, // Maximum packet size for endpoint zero (only 8, 16, 32, or 64 are valid) - 0xA2U, 0x15U, // Vendor ID (assigned by the USB-IF) - 0x7EU, 0x00U, // Product ID (assigned by the manufacturer) - USB_SHORT_GET_LOW(USB_DEVICE_DEMO_BCD_VERSION), - USB_SHORT_GET_HIGH(USB_DEVICE_DEMO_BCD_VERSION), // Device release number in binary-coded decimal - 0x01U, // Index of string descriptor describing manufacturer - 0x02U, // Index of string descriptor describing product - 0x00U, // Index of string descriptor describing the device's serial number + USB_CONTROL_MAX_PACKET_SIZE, + GET_LSB_OF_WORD(USB_VENDOR_ID), + GET_MSB_OF_WORD(USB_VENDOR_ID), + GET_LSB_OF_WORD(USB_PRODUCT_ID), + GET_MSB_OF_WORD(USB_PRODUCT_ID), + USB_SHORT_GET_LOW(USB_DEVICE_RELEASE_NUMBER), + USB_SHORT_GET_HIGH(USB_DEVICE_RELEASE_NUMBER), + USB_STRING_DESCRIPTOR_ID_MANUFACTURER, + USB_STRING_DESCRIPTOR_ID_PRODUCT, + USB_STRING_DESCRIPTOR_ID_SERIAL_NUMBER, USB_DEVICE_CONFIGURATION_COUNT, }; -uint8_t g_UsbDeviceConfigurationDescriptor[USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL] = { +uint8_t UsbConfigurationDescriptor[USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL] = { // Configuration descriptor @@ -65,7 +65,7 @@ uint8_t g_UsbDeviceConfigurationDescriptor[USB_DESCRIPTOR_LENGTH_CONFIGURATION_A USB_HID_MOUSE_CLASS, USB_HID_MOUSE_SUBCLASS, USB_HID_MOUSE_PROTOCOL, - 0x03U, // Index of string descriptor describing this interface + USB_STRING_DESCRIPTOR_ID_MOUSE, // Mouse HID descriptor @@ -99,7 +99,7 @@ uint8_t g_UsbDeviceConfigurationDescriptor[USB_DESCRIPTOR_LENGTH_CONFIGURATION_A USB_HID_KEYBOARD_CLASS, USB_HID_KEYBOARD_SUBCLASS, USB_HID_KEYBOARD_PROTOCOL, - 0x04U, // Index of string descriptor describing this interface + USB_STRING_DESCRIPTOR_ID_KEYBOARD, // Keyboard HID descriptor @@ -203,7 +203,7 @@ usb_language_list_t g_UsbDeviceLanguageList = { usb_status_t USB_DeviceGetDeviceDescriptor( usb_device_handle handle, usb_device_get_device_descriptor_struct_t *deviceDescriptor) { - deviceDescriptor->buffer = g_UsbDeviceDescriptor; + deviceDescriptor->buffer = UsbDeviceDescriptor; deviceDescriptor->length = USB_DESCRIPTOR_LENGTH_DEVICE; return kStatus_USB_Success; } @@ -212,7 +212,7 @@ usb_status_t USB_DeviceGetConfigurationDescriptor( usb_device_handle handle, usb_device_get_configuration_descriptor_struct_t *configurationDescriptor) { if (USB_COMPOSITE_CONFIGURE_INDEX > configurationDescriptor->configuration) { - configurationDescriptor->buffer = g_UsbDeviceConfigurationDescriptor; + configurationDescriptor->buffer = UsbConfigurationDescriptor; configurationDescriptor->length = USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL; return kStatus_USB_Success; } diff --git a/right/usb_device_descriptor.h b/right/usb_device_descriptor.h index 892fab0..5841474 100644 --- a/right/usb_device_descriptor.h +++ b/right/usb_device_descriptor.h @@ -8,8 +8,11 @@ // Macros: - #define USB_DEVICE_SPECIFIC_BCD_VERSION (0x0200U) - #define USB_DEVICE_DEMO_BCD_VERSION (0x0101U) + #define USB_VENDOR_ID 0x15A2U + #define USB_PRODUCT_ID 0x007EU + + #define USB_DEVICE_SPECIFICATION_BCD_VERSION (0x0200U) + #define USB_DEVICE_RELEASE_NUMBER (0x0101U) #define USB_DEVICE_CLASS (0x00U) #define USB_DEVICE_SUBCLASS (0x00U) @@ -27,6 +30,12 @@ #define USB_DEVICE_STRING_COUNT (5U) #define USB_DEVICE_LANGUAGE_COUNT (1U) + #define USB_STRING_DESCRIPTOR_ID_SERIAL_NUMBER 0x00U + #define USB_STRING_DESCRIPTOR_ID_MANUFACTURER 0x01U + #define USB_STRING_DESCRIPTOR_ID_PRODUCT 0x02U + #define USB_STRING_DESCRIPTOR_ID_MOUSE 0x03U + #define USB_STRING_DESCRIPTOR_ID_KEYBOARD 0x04U + #define USB_COMPOSITE_CONFIGURE_INDEX (1U) #define USB_COMPOSITE_INTERFACE_COUNT (USB_HID_KEYBOARD_INTERFACE_COUNT + USB_HID_MOUSE_INTERFACE_COUNT)