mbed library sources

Dependents:   FRDM-KL46Z_LCD_Test FRDM-KL46Z_LCD_Test FRDM-KL46Z_Plantilla FRDM-KL46Z_Plantilla ... more

Committer:
ebrus
Date:
Thu Jul 28 15:56:34 2016 +0000
Revision:
0:6bc4ac881c8e
1;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ebrus 0:6bc4ac881c8e 1 /* mbed Microcontroller Library
ebrus 0:6bc4ac881c8e 2 * Copyright (c) 2006-2013 ARM Limited
ebrus 0:6bc4ac881c8e 3 *
ebrus 0:6bc4ac881c8e 4 * Licensed under the Apache License, Version 2.0 (the "License");
ebrus 0:6bc4ac881c8e 5 * you may not use this file except in compliance with the License.
ebrus 0:6bc4ac881c8e 6 * You may obtain a copy of the License at
ebrus 0:6bc4ac881c8e 7 *
ebrus 0:6bc4ac881c8e 8 * http://www.apache.org/licenses/LICENSE-2.0
ebrus 0:6bc4ac881c8e 9 *
ebrus 0:6bc4ac881c8e 10 * Unless required by applicable law or agreed to in writing, software
ebrus 0:6bc4ac881c8e 11 * distributed under the License is distributed on an "AS IS" BASIS,
ebrus 0:6bc4ac881c8e 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ebrus 0:6bc4ac881c8e 13 * See the License for the specific language governing permissions and
ebrus 0:6bc4ac881c8e 14 * limitations under the License.
ebrus 0:6bc4ac881c8e 15 */
ebrus 0:6bc4ac881c8e 16 #ifndef MBED_INTERFACE_H
ebrus 0:6bc4ac881c8e 17 #define MBED_INTERFACE_H
ebrus 0:6bc4ac881c8e 18
ebrus 0:6bc4ac881c8e 19 #include "device.h"
ebrus 0:6bc4ac881c8e 20
ebrus 0:6bc4ac881c8e 21 /* Mbed interface mac address
ebrus 0:6bc4ac881c8e 22 * if MBED_MAC_ADD_x are zero, interface uid sets mac address,
ebrus 0:6bc4ac881c8e 23 * otherwise MAC_ADD_x are used.
ebrus 0:6bc4ac881c8e 24 */
ebrus 0:6bc4ac881c8e 25 #define MBED_MAC_ADDR_INTERFACE 0x00
ebrus 0:6bc4ac881c8e 26 #define MBED_MAC_ADDR_0 MBED_MAC_ADDR_INTERFACE
ebrus 0:6bc4ac881c8e 27 #define MBED_MAC_ADDR_1 MBED_MAC_ADDR_INTERFACE
ebrus 0:6bc4ac881c8e 28 #define MBED_MAC_ADDR_2 MBED_MAC_ADDR_INTERFACE
ebrus 0:6bc4ac881c8e 29 #define MBED_MAC_ADDR_3 MBED_MAC_ADDR_INTERFACE
ebrus 0:6bc4ac881c8e 30 #define MBED_MAC_ADDR_4 MBED_MAC_ADDR_INTERFACE
ebrus 0:6bc4ac881c8e 31 #define MBED_MAC_ADDR_5 MBED_MAC_ADDR_INTERFACE
ebrus 0:6bc4ac881c8e 32 #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)
ebrus 0:6bc4ac881c8e 33
ebrus 0:6bc4ac881c8e 34 #ifdef __cplusplus
ebrus 0:6bc4ac881c8e 35 extern "C" {
ebrus 0:6bc4ac881c8e 36 #endif
ebrus 0:6bc4ac881c8e 37
ebrus 0:6bc4ac881c8e 38 #if DEVICE_SEMIHOST
ebrus 0:6bc4ac881c8e 39
ebrus 0:6bc4ac881c8e 40 /** Functions to control the mbed interface
ebrus 0:6bc4ac881c8e 41 *
ebrus 0:6bc4ac881c8e 42 * mbed Microcontrollers have a built-in interface to provide functionality such as
ebrus 0:6bc4ac881c8e 43 * drag-n-drop download, reset, serial-over-usb, and access to the mbed local file
ebrus 0:6bc4ac881c8e 44 * system. These functions provide means to control the interface suing semihost
ebrus 0:6bc4ac881c8e 45 * calls it supports.
ebrus 0:6bc4ac881c8e 46 */
ebrus 0:6bc4ac881c8e 47
ebrus 0:6bc4ac881c8e 48 /** Determine whether the mbed interface is connected, based on whether debug is enabled
ebrus 0:6bc4ac881c8e 49 *
ebrus 0:6bc4ac881c8e 50 * @returns
ebrus 0:6bc4ac881c8e 51 * 1 if interface is connected,
ebrus 0:6bc4ac881c8e 52 * 0 otherwise
ebrus 0:6bc4ac881c8e 53 */
ebrus 0:6bc4ac881c8e 54 int mbed_interface_connected(void);
ebrus 0:6bc4ac881c8e 55
ebrus 0:6bc4ac881c8e 56 /** Instruct the mbed interface to reset, as if the reset button had been pressed
ebrus 0:6bc4ac881c8e 57 *
ebrus 0:6bc4ac881c8e 58 * @returns
ebrus 0:6bc4ac881c8e 59 * 1 if successful,
ebrus 0:6bc4ac881c8e 60 * 0 otherwise (e.g. interface not present)
ebrus 0:6bc4ac881c8e 61 */
ebrus 0:6bc4ac881c8e 62 int mbed_interface_reset(void);
ebrus 0:6bc4ac881c8e 63
ebrus 0:6bc4ac881c8e 64 /** This will disconnect the debug aspect of the interface, so semihosting will be disabled.
ebrus 0:6bc4ac881c8e 65 * The interface will still support the USB serial aspect
ebrus 0:6bc4ac881c8e 66 *
ebrus 0:6bc4ac881c8e 67 * @returns
ebrus 0:6bc4ac881c8e 68 * 0 if successful,
ebrus 0:6bc4ac881c8e 69 * -1 otherwise (e.g. interface not present)
ebrus 0:6bc4ac881c8e 70 */
ebrus 0:6bc4ac881c8e 71 int mbed_interface_disconnect(void);
ebrus 0:6bc4ac881c8e 72
ebrus 0:6bc4ac881c8e 73 /** This will disconnect the debug aspect of the interface, and if the USB cable is not
ebrus 0:6bc4ac881c8e 74 * connected, also power down the interface. If the USB cable is connected, the interface
ebrus 0:6bc4ac881c8e 75 * will remain powered up and visible to the host
ebrus 0:6bc4ac881c8e 76 *
ebrus 0:6bc4ac881c8e 77 * @returns
ebrus 0:6bc4ac881c8e 78 * 0 if successful,
ebrus 0:6bc4ac881c8e 79 * -1 otherwise (e.g. interface not present)
ebrus 0:6bc4ac881c8e 80 */
ebrus 0:6bc4ac881c8e 81 int mbed_interface_powerdown(void);
ebrus 0:6bc4ac881c8e 82
ebrus 0:6bc4ac881c8e 83 /** This returns a string containing the 32-character UID of the mbed interface
ebrus 0:6bc4ac881c8e 84 * This is a weak function that can be overwritten if required
ebrus 0:6bc4ac881c8e 85 *
ebrus 0:6bc4ac881c8e 86 * @param uid A 33-byte array to write the null terminated 32-byte string
ebrus 0:6bc4ac881c8e 87 *
ebrus 0:6bc4ac881c8e 88 * @returns
ebrus 0:6bc4ac881c8e 89 * 0 if successful,
ebrus 0:6bc4ac881c8e 90 * -1 otherwise (e.g. interface not present)
ebrus 0:6bc4ac881c8e 91 */
ebrus 0:6bc4ac881c8e 92 int mbed_interface_uid(char *uid);
ebrus 0:6bc4ac881c8e 93
ebrus 0:6bc4ac881c8e 94 #endif
ebrus 0:6bc4ac881c8e 95
ebrus 0:6bc4ac881c8e 96 /** This returns a unique 6-byte MAC address, based on the interface UID
ebrus 0:6bc4ac881c8e 97 * If the interface is not present, it returns a default fixed MAC address (00:02:F7:F0:00:00)
ebrus 0:6bc4ac881c8e 98 *
ebrus 0:6bc4ac881c8e 99 * This is a weak function that can be overwritten if you want to provide your own mechanism to
ebrus 0:6bc4ac881c8e 100 * provide a MAC address.
ebrus 0:6bc4ac881c8e 101 *
ebrus 0:6bc4ac881c8e 102 * @param mac A 6-byte array to write the MAC address
ebrus 0:6bc4ac881c8e 103 */
ebrus 0:6bc4ac881c8e 104 void mbed_mac_address(char *mac);
ebrus 0:6bc4ac881c8e 105
ebrus 0:6bc4ac881c8e 106 /** Cause the mbed to flash the BLOD (Blue LEDs Of Death) sequence
ebrus 0:6bc4ac881c8e 107 */
ebrus 0:6bc4ac881c8e 108 void mbed_die(void);
ebrus 0:6bc4ac881c8e 109
ebrus 0:6bc4ac881c8e 110 #ifdef __cplusplus
ebrus 0:6bc4ac881c8e 111 }
ebrus 0:6bc4ac881c8e 112 #endif
ebrus 0:6bc4ac881c8e 113
ebrus 0:6bc4ac881c8e 114 #endif