From ae0137681af93756cbda02d64dfc0c8ffeafa4be Mon Sep 17 00:00:00 2001 From: neilt6 Date: Tue, 6 Sep 2016 11:31:20 -0600 Subject: [PATCH] Updated USBHost for library changes Updated USBHost classes to use Callback and new Thread API to fix compiler warnings. --- libraries/USBHost/USBHost/USBDeviceConnected.h | 3 ++- libraries/USBHost/USBHost/USBEndpoint.h | 4 ++-- libraries/USBHost/USBHost/USBHost.cpp | 8 +++----- libraries/USBHost/USBHost/USBHost.h | 1 - libraries/USBHost/USBHostMSD/USBHostMSD.cpp | 2 +- libraries/USBHost/USBHostSerial/USBHostSerial.h | 5 +++-- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/libraries/USBHost/USBHost/USBDeviceConnected.h b/libraries/USBHost/USBHost/USBDeviceConnected.h index 22a4c1d3e9..f74c4b6e4b 100644 --- a/libraries/USBHost/USBHost/USBDeviceConnected.h +++ b/libraries/USBHost/USBHost/USBDeviceConnected.h @@ -21,6 +21,7 @@ #include "USBEndpoint.h" #include "USBHostConf.h" #include "rtos.h" +#include "Callback.h" class USBHostHub; @@ -31,7 +32,7 @@ typedef struct { uint8_t intf_subclass; uint8_t intf_protocol; USBEndpoint * ep[MAX_ENDPOINT_PER_INTERFACE]; - FunctionPointer detach; + Callback detach; char name[10]; } INTERFACE; diff --git a/libraries/USBHost/USBHost/USBEndpoint.h b/libraries/USBHost/USBHost/USBEndpoint.h index 2ec90d729f..64b320f213 100644 --- a/libraries/USBHost/USBHost/USBEndpoint.h +++ b/libraries/USBHost/USBHost/USBEndpoint.h @@ -17,7 +17,7 @@ #ifndef USBENDPOINT_H #define USBENDPOINT_H -#include "FunctionPointer.h" +#include "Callback.h" #include "USBHostTypes.h" #include "rtos.h" @@ -153,7 +153,7 @@ private: int transferred; uint8_t * buf_start; - FunctionPointer rx; + Callback rx; USBEndpoint* nextEp; diff --git a/libraries/USBHost/USBHost/USBHost.cpp b/libraries/USBHost/USBHost/USBHost.cpp index d8b5c450e9..0ff47c5eeb 100644 --- a/libraries/USBHost/USBHost/USBHost.cpp +++ b/libraries/USBHost/USBHost/USBHost.cpp @@ -247,11 +247,7 @@ void USBHost::usb_process() { } } -/* static */void USBHost::usb_process_static(void const * arg) { - ((USBHost *)arg)->usb_process(); -} - -USBHost::USBHost() : usbThread(USBHost::usb_process_static, (void *)this, osPriorityNormal, USB_THREAD_STACK) +USBHost::USBHost() : usbThread(osPriorityNormal, USB_THREAD_STACK) { headControlEndpoint = NULL; headBulkEndpoint = NULL; @@ -279,6 +275,8 @@ USBHost::USBHost() : usbThread(USBHost::usb_process_static, (void *)this, osPrio hub_in_use[i] = false; } #endif + + usbThread.start(this, &USBHost::usb_process); } USBHost::Lock::Lock(USBHost* pHost) : m_pHost(pHost) diff --git a/libraries/USBHost/USBHost/USBHost.h b/libraries/USBHost/USBHost/USBHost.h index 802ae99313..40c5664c40 100644 --- a/libraries/USBHost/USBHost/USBHost.h +++ b/libraries/USBHost/USBHost/USBHost.h @@ -278,7 +278,6 @@ private: Thread usbThread; void usb_process(); - static void usb_process_static(void const * arg); Mail mail_usb_event; Mutex usb_mutex; Mutex td_mutex; diff --git a/libraries/USBHost/USBHostMSD/USBHostMSD.cpp b/libraries/USBHost/USBHostMSD/USBHostMSD.cpp index 75d0f59d4b..6b4ed828b2 100644 --- a/libraries/USBHost/USBHostMSD/USBHostMSD.cpp +++ b/libraries/USBHost/USBHostMSD/USBHostMSD.cpp @@ -136,7 +136,7 @@ int USBHostMSD::readCapacity() { if (status == 0) { blockCount = (result[0] << 24) | (result[1] << 16) | (result[2] << 8) | result[3]; blockSize = (result[4] << 24) | (result[5] << 16) | (result[6] << 8) | result[7]; - USB_INFO("MSD [dev: %p] - blockCount: %lld, blockSize: %d, Capacity: %lld\r\n", dev, blockCount, blockSize, blockCount*blockSize); + USB_INFO("MSD [dev: %p] - blockCount: %u, blockSize: %d, Capacity: %d\r\n", dev, blockCount, blockSize, blockCount*blockSize); } return status; } diff --git a/libraries/USBHost/USBHostSerial/USBHostSerial.h b/libraries/USBHost/USBHostSerial/USBHostSerial.h index 94fc8ad7c5..816a0518c6 100644 --- a/libraries/USBHost/USBHostSerial/USBHostSerial.h +++ b/libraries/USBHost/USBHostSerial/USBHostSerial.h @@ -24,6 +24,7 @@ #include "USBHost.h" #include "Stream.h" #include "MtxCircBuffer.h" +#include "Callback.h" /** * A class to communicate a USB virtual serial port @@ -137,8 +138,8 @@ private: void rxHandler(); void txHandler(); - FunctionPointer rx; - FunctionPointer tx; + Callback rx; + Callback tx; uint8_t serial_intf; };