Sample program for the USB Host lib with HID

Dependencies:   USBHost_DISCO-F746NG mbed

Committer:
DieterGraef
Date:
Mon Jun 13 17:22:08 2016 +0000
Revision:
0:af2040964256
USB Host for STM32F746 Discovery. At the moment only either the fast or the high speed port can be used

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
DieterGraef 0:af2040964256 23 #include "rtos_idle.h"
DieterGraef 0:af2040964256 24
DieterGraef 0:af2040964256 25 static void default_idle_hook(void)
DieterGraef 0:af2040964256 26 {
DieterGraef 0:af2040964256 27 /* Sleep: ideally, we should put the chip to sleep.
DieterGraef 0:af2040964256 28 Unfortunately, this usually requires disconnecting the interface chip (debugger).
DieterGraef 0:af2040964256 29 This can be done, but it would break the local file system.
DieterGraef 0:af2040964256 30 */
DieterGraef 0:af2040964256 31 // sleep();
DieterGraef 0:af2040964256 32 }
DieterGraef 0:af2040964256 33 static void (*idle_hook_fptr)(void) = &default_idle_hook;
DieterGraef 0:af2040964256 34
DieterGraef 0:af2040964256 35 void rtos_attach_idle_hook(void (*fptr)(void))
DieterGraef 0:af2040964256 36 {
DieterGraef 0:af2040964256 37 //Attach the specified idle hook, or the default idle hook in case of a NULL pointer
DieterGraef 0:af2040964256 38 if (fptr != NULL) {
DieterGraef 0:af2040964256 39 idle_hook_fptr = fptr;
DieterGraef 0:af2040964256 40 } else {
DieterGraef 0:af2040964256 41 idle_hook_fptr = default_idle_hook;
DieterGraef 0:af2040964256 42 }
DieterGraef 0:af2040964256 43 }
DieterGraef 0:af2040964256 44
DieterGraef 0:af2040964256 45 void rtos_idle_loop(void)
DieterGraef 0:af2040964256 46 {
DieterGraef 0:af2040964256 47 //Continuously call the idle hook function pointer
DieterGraef 0:af2040964256 48 while (1) {
DieterGraef 0:af2040964256 49 idle_hook_fptr();
DieterGraef 0:af2040964256 50 }
DieterGraef 0:af2040964256 51 }