mbed-os

Dependents:   cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more

Committer:
be_bryan
Date:
Mon Dec 11 17:54:04 2017 +0000
Revision:
0:b74591d5ab33
motor ++

Who changed what in which revision?

UserRevisionLine numberNew contents of line
be_bryan 0:b74591d5ab33 1
be_bryan 0:b74591d5ab33 2 /** \addtogroup platform */
be_bryan 0:b74591d5ab33 3 /** @{*/
be_bryan 0:b74591d5ab33 4 /**
be_bryan 0:b74591d5ab33 5 * \defgroup platform_interface Network interface and other utility functions
be_bryan 0:b74591d5ab33 6 * @{
be_bryan 0:b74591d5ab33 7 */
be_bryan 0:b74591d5ab33 8
be_bryan 0:b74591d5ab33 9 /* mbed Microcontroller Library
be_bryan 0:b74591d5ab33 10 * Copyright (c) 2006-2013 ARM Limited
be_bryan 0:b74591d5ab33 11 *
be_bryan 0:b74591d5ab33 12 * Licensed under the Apache License, Version 2.0 (the "License");
be_bryan 0:b74591d5ab33 13 * you may not use this file except in compliance with the License.
be_bryan 0:b74591d5ab33 14 * You may obtain a copy of the License at
be_bryan 0:b74591d5ab33 15 *
be_bryan 0:b74591d5ab33 16 * http://www.apache.org/licenses/LICENSE-2.0
be_bryan 0:b74591d5ab33 17 *
be_bryan 0:b74591d5ab33 18 * Unless required by applicable law or agreed to in writing, software
be_bryan 0:b74591d5ab33 19 * distributed under the License is distributed on an "AS IS" BASIS,
be_bryan 0:b74591d5ab33 20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
be_bryan 0:b74591d5ab33 21 * See the License for the specific language governing permissions and
be_bryan 0:b74591d5ab33 22 * limitations under the License.
be_bryan 0:b74591d5ab33 23 */
be_bryan 0:b74591d5ab33 24 #ifndef MBED_INTERFACE_H
be_bryan 0:b74591d5ab33 25 #define MBED_INTERFACE_H
be_bryan 0:b74591d5ab33 26
be_bryan 0:b74591d5ab33 27 #include <stdarg.h>
be_bryan 0:b74591d5ab33 28
be_bryan 0:b74591d5ab33 29 #include "device.h"
be_bryan 0:b74591d5ab33 30
be_bryan 0:b74591d5ab33 31 /* Mbed interface mac address
be_bryan 0:b74591d5ab33 32 * if MBED_MAC_ADD_x are zero, interface uid sets mac address,
be_bryan 0:b74591d5ab33 33 * otherwise MAC_ADD_x are used.
be_bryan 0:b74591d5ab33 34 */
be_bryan 0:b74591d5ab33 35 #define MBED_MAC_ADDR_INTERFACE 0x00
be_bryan 0:b74591d5ab33 36 #define MBED_MAC_ADDR_0 MBED_MAC_ADDR_INTERFACE
be_bryan 0:b74591d5ab33 37 #define MBED_MAC_ADDR_1 MBED_MAC_ADDR_INTERFACE
be_bryan 0:b74591d5ab33 38 #define MBED_MAC_ADDR_2 MBED_MAC_ADDR_INTERFACE
be_bryan 0:b74591d5ab33 39 #define MBED_MAC_ADDR_3 MBED_MAC_ADDR_INTERFACE
be_bryan 0:b74591d5ab33 40 #define MBED_MAC_ADDR_4 MBED_MAC_ADDR_INTERFACE
be_bryan 0:b74591d5ab33 41 #define MBED_MAC_ADDR_5 MBED_MAC_ADDR_INTERFACE
be_bryan 0:b74591d5ab33 42 #define MBED_MAC_ADDRESS_SUM (MBED_MAC_ADDR_0 | MBED_MAC_ADDR_1 | MBED_MAC_ADDR_2 | MBED_MAC_ADDR_3 | MBED_MAC_ADDR_4 | MBED_MAC_ADDR_5)
be_bryan 0:b74591d5ab33 43
be_bryan 0:b74591d5ab33 44 #ifdef __cplusplus
be_bryan 0:b74591d5ab33 45 extern "C" {
be_bryan 0:b74591d5ab33 46 #endif
be_bryan 0:b74591d5ab33 47
be_bryan 0:b74591d5ab33 48 #if DEVICE_SEMIHOST
be_bryan 0:b74591d5ab33 49
be_bryan 0:b74591d5ab33 50 /**
be_bryan 0:b74591d5ab33 51 * \defgroup platform_interface interface functions
be_bryan 0:b74591d5ab33 52 * @{
be_bryan 0:b74591d5ab33 53 */
be_bryan 0:b74591d5ab33 54
be_bryan 0:b74591d5ab33 55 /** Functions to control the mbed interface
be_bryan 0:b74591d5ab33 56 *
be_bryan 0:b74591d5ab33 57 * mbed Microcontrollers have a built-in interface to provide functionality such as
be_bryan 0:b74591d5ab33 58 * drag-n-drop download, reset, serial-over-usb, and access to the mbed local file
be_bryan 0:b74591d5ab33 59 * system. These functions provide means to control the interface suing semihost
be_bryan 0:b74591d5ab33 60 * calls it supports.
be_bryan 0:b74591d5ab33 61 */
be_bryan 0:b74591d5ab33 62
be_bryan 0:b74591d5ab33 63 /** Determine whether the mbed interface is connected, based on whether debug is enabled
be_bryan 0:b74591d5ab33 64 *
be_bryan 0:b74591d5ab33 65 * @returns
be_bryan 0:b74591d5ab33 66 * 1 if interface is connected,
be_bryan 0:b74591d5ab33 67 * 0 otherwise
be_bryan 0:b74591d5ab33 68 */
be_bryan 0:b74591d5ab33 69 int mbed_interface_connected(void);
be_bryan 0:b74591d5ab33 70
be_bryan 0:b74591d5ab33 71 /** Instruct the mbed interface to reset, as if the reset button had been pressed
be_bryan 0:b74591d5ab33 72 *
be_bryan 0:b74591d5ab33 73 * @returns
be_bryan 0:b74591d5ab33 74 * 1 if successful,
be_bryan 0:b74591d5ab33 75 * 0 otherwise (e.g. interface not present)
be_bryan 0:b74591d5ab33 76 */
be_bryan 0:b74591d5ab33 77 int mbed_interface_reset(void);
be_bryan 0:b74591d5ab33 78
be_bryan 0:b74591d5ab33 79 /** This will disconnect the debug aspect of the interface, so semihosting will be disabled.
be_bryan 0:b74591d5ab33 80 * The interface will still support the USB serial aspect
be_bryan 0:b74591d5ab33 81 *
be_bryan 0:b74591d5ab33 82 * @returns
be_bryan 0:b74591d5ab33 83 * 0 if successful,
be_bryan 0:b74591d5ab33 84 * -1 otherwise (e.g. interface not present)
be_bryan 0:b74591d5ab33 85 */
be_bryan 0:b74591d5ab33 86 int mbed_interface_disconnect(void);
be_bryan 0:b74591d5ab33 87
be_bryan 0:b74591d5ab33 88 /** This will disconnect the debug aspect of the interface, and if the USB cable is not
be_bryan 0:b74591d5ab33 89 * connected, also power down the interface. If the USB cable is connected, the interface
be_bryan 0:b74591d5ab33 90 * will remain powered up and visible to the host
be_bryan 0:b74591d5ab33 91 *
be_bryan 0:b74591d5ab33 92 * @returns
be_bryan 0:b74591d5ab33 93 * 0 if successful,
be_bryan 0:b74591d5ab33 94 * -1 otherwise (e.g. interface not present)
be_bryan 0:b74591d5ab33 95 */
be_bryan 0:b74591d5ab33 96 int mbed_interface_powerdown(void);
be_bryan 0:b74591d5ab33 97
be_bryan 0:b74591d5ab33 98 /** This returns a string containing the 32-character UID of the mbed interface
be_bryan 0:b74591d5ab33 99 * This is a weak function that can be overwritten if required
be_bryan 0:b74591d5ab33 100 *
be_bryan 0:b74591d5ab33 101 * @param uid A 33-byte array to write the null terminated 32-byte string
be_bryan 0:b74591d5ab33 102 *
be_bryan 0:b74591d5ab33 103 * @returns
be_bryan 0:b74591d5ab33 104 * 0 if successful,
be_bryan 0:b74591d5ab33 105 * -1 otherwise (e.g. interface not present)
be_bryan 0:b74591d5ab33 106 */
be_bryan 0:b74591d5ab33 107 int mbed_interface_uid(char *uid);
be_bryan 0:b74591d5ab33 108
be_bryan 0:b74591d5ab33 109 #endif
be_bryan 0:b74591d5ab33 110
be_bryan 0:b74591d5ab33 111 /** This returns a unique 6-byte MAC address, based on the interface UID
be_bryan 0:b74591d5ab33 112 * If the interface is not present, it returns a default fixed MAC address (00:02:F7:F0:00:00)
be_bryan 0:b74591d5ab33 113 *
be_bryan 0:b74591d5ab33 114 * This is a weak function that can be overwritten if you want to provide your own mechanism to
be_bryan 0:b74591d5ab33 115 * provide a MAC address.
be_bryan 0:b74591d5ab33 116 *
be_bryan 0:b74591d5ab33 117 * @param mac A 6-byte array to write the MAC address
be_bryan 0:b74591d5ab33 118 */
be_bryan 0:b74591d5ab33 119 void mbed_mac_address(char *mac);
be_bryan 0:b74591d5ab33 120
be_bryan 0:b74591d5ab33 121 /** Cause the mbed to flash the BLOD (Blue LEDs Of Death) sequence
be_bryan 0:b74591d5ab33 122 */
be_bryan 0:b74591d5ab33 123 void mbed_die(void);
be_bryan 0:b74591d5ab33 124
be_bryan 0:b74591d5ab33 125 /** Print out an error message. This is typically called when
be_bryan 0:b74591d5ab33 126 * handling a crash.
be_bryan 0:b74591d5ab33 127 *
be_bryan 0:b74591d5ab33 128 * @note Synchronization level: Interrupt safe
be_bryan 0:b74591d5ab33 129 *
be_bryan 0:b74591d5ab33 130 * @param format C string that contains data stream to be printed.
be_bryan 0:b74591d5ab33 131 * Code snippets below show valid format.
be_bryan 0:b74591d5ab33 132 *
be_bryan 0:b74591d5ab33 133 * @code
be_bryan 0:b74591d5ab33 134 * mbed_error_printf("Failed: %s, file: %s, line %d \n", expr, file, line);
be_bryan 0:b74591d5ab33 135 * @endcode
be_bryan 0:b74591d5ab33 136 *
be_bryan 0:b74591d5ab33 137 */
be_bryan 0:b74591d5ab33 138 void mbed_error_printf(const char* format, ...);
be_bryan 0:b74591d5ab33 139
be_bryan 0:b74591d5ab33 140 /** Print out an error message. Similar to mbed_error_printf
be_bryan 0:b74591d5ab33 141 * but uses a va_list.
be_bryan 0:b74591d5ab33 142 *
be_bryan 0:b74591d5ab33 143 * @note Synchronization level: Interrupt safe
be_bryan 0:b74591d5ab33 144 *
be_bryan 0:b74591d5ab33 145 * @param format C string that contains data stream to be printed.
be_bryan 0:b74591d5ab33 146 * @param arg Variable arguments list
be_bryan 0:b74591d5ab33 147 *
be_bryan 0:b74591d5ab33 148 */
be_bryan 0:b74591d5ab33 149 void mbed_error_vfprintf(const char * format, va_list arg);
be_bryan 0:b74591d5ab33 150 /** @}*/
be_bryan 0:b74591d5ab33 151
be_bryan 0:b74591d5ab33 152 #ifdef __cplusplus
be_bryan 0:b74591d5ab33 153 }
be_bryan 0:b74591d5ab33 154 #endif
be_bryan 0:b74591d5ab33 155
be_bryan 0:b74591d5ab33 156 #endif
be_bryan 0:b74591d5ab33 157
be_bryan 0:b74591d5ab33 158 /** @}*/