Sample program for the USB Host lib with HID

Dependencies:   USBHost_DISCO-F746NG mbed

Committer:
DieterGraef
Date:
Fri Jun 17 09:01:37 2016 +0000
Revision:
2:ca1b5b911ba8
Parent:
0:af2040964256
Demo program now uses USB Stick on high speed and HID on fast speed interface. Move your mouse!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DieterGraef 0:af2040964256 1 /* mbed Microcontroller Library
DieterGraef 0:af2040964256 2 * Copyright (c) 2006-2012 ARM Limited
DieterGraef 0:af2040964256 3 *
DieterGraef 0:af2040964256 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
DieterGraef 0:af2040964256 5 * of this software and associated documentation files (the "Software"), to deal
DieterGraef 0:af2040964256 6 * in the Software without restriction, including without limitation the rights
DieterGraef 0:af2040964256 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
DieterGraef 0:af2040964256 8 * copies of the Software, and to permit persons to whom the Software is
DieterGraef 0:af2040964256 9 * furnished to do so, subject to the following conditions:
DieterGraef 0:af2040964256 10 *
DieterGraef 0:af2040964256 11 * The above copyright notice and this permission notice shall be included in
DieterGraef 0:af2040964256 12 * all copies or substantial portions of the Software.
DieterGraef 0:af2040964256 13 *
DieterGraef 0:af2040964256 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
DieterGraef 0:af2040964256 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
DieterGraef 0:af2040964256 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
DieterGraef 0:af2040964256 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
DieterGraef 0:af2040964256 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
DieterGraef 0:af2040964256 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
DieterGraef 0:af2040964256 20 * SOFTWARE.
DieterGraef 0:af2040964256 21 */
DieterGraef 0:af2040964256 22 #ifndef MUTEX_H
DieterGraef 0:af2040964256 23 #define MUTEX_H
DieterGraef 0:af2040964256 24
DieterGraef 0:af2040964256 25 #include <stdint.h>
DieterGraef 0:af2040964256 26 #include "cmsis_os.h"
DieterGraef 0:af2040964256 27
DieterGraef 0:af2040964256 28 namespace rtos {
DieterGraef 0:af2040964256 29
DieterGraef 0:af2040964256 30 /** The Mutex class is used to synchronise the execution of threads.
DieterGraef 0:af2040964256 31 This is for example used to protect access to a shared resource.
DieterGraef 0:af2040964256 32 */
DieterGraef 0:af2040964256 33 class Mutex {
DieterGraef 0:af2040964256 34 public:
DieterGraef 0:af2040964256 35 /** Create and Initialize a Mutex object */
DieterGraef 0:af2040964256 36 Mutex();
DieterGraef 0:af2040964256 37
DieterGraef 0:af2040964256 38 /** Wait until a Mutex becomes available.
DieterGraef 0:af2040964256 39 @param millisec timeout value or 0 in case of no time-out. (default: osWaitForever)
DieterGraef 0:af2040964256 40 @return status code that indicates the execution status of the function.
DieterGraef 0:af2040964256 41 */
DieterGraef 0:af2040964256 42 osStatus lock(uint32_t millisec=osWaitForever);
DieterGraef 0:af2040964256 43
DieterGraef 0:af2040964256 44 /** Try to lock the mutex, and return immediately
DieterGraef 0:af2040964256 45 @return true if the mutex was acquired, false otherwise.
DieterGraef 0:af2040964256 46 */
DieterGraef 0:af2040964256 47 bool trylock();
DieterGraef 0:af2040964256 48
DieterGraef 0:af2040964256 49 /** Unlock the mutex that has previously been locked by the same thread
DieterGraef 0:af2040964256 50 @return status code that indicates the execution status of the function.
DieterGraef 0:af2040964256 51 */
DieterGraef 0:af2040964256 52 osStatus unlock();
DieterGraef 0:af2040964256 53
DieterGraef 0:af2040964256 54 ~Mutex();
DieterGraef 0:af2040964256 55
DieterGraef 0:af2040964256 56 private:
DieterGraef 0:af2040964256 57 osMutexId _osMutexId;
DieterGraef 0:af2040964256 58 osMutexDef_t _osMutexDef;
DieterGraef 0:af2040964256 59 #ifdef CMSIS_OS_RTX
DieterGraef 0:af2040964256 60 #if defined(__MBED_CMSIS_RTOS_CA9) || defined(__MBED_CMSIS_RTOS_CM)
DieterGraef 0:af2040964256 61 int32_t _mutex_data[4];
DieterGraef 0:af2040964256 62 #else
DieterGraef 0:af2040964256 63 int32_t _mutex_data[3];
DieterGraef 0:af2040964256 64 #endif
DieterGraef 0:af2040964256 65 #endif
DieterGraef 0:af2040964256 66 };
DieterGraef 0:af2040964256 67
DieterGraef 0:af2040964256 68 }
DieterGraef 0:af2040964256 69 #endif