...

Dependents:   2doejemplo Labo_TRSE_Drone

Fork of mbed by mbed official

Committer:
emilmont
Date:
Thu Nov 29 10:52:23 2012 +0000
Revision:
49:eeb8a2a33ec9
Parent:
debug.h@47:134def52cfa0
Child:
54:71b101360fb9
Rename "debug.h" to "mbed_debug.h" to avoid include clashes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emimon01 47:134def52cfa0 1 /* mbed Microcontroller Library
emimon01 47:134def52cfa0 2 * Copyright (c) 2006-2012 ARM Limited
emimon01 47:134def52cfa0 3 *
emimon01 47:134def52cfa0 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
emimon01 47:134def52cfa0 5 * of this software and associated documentation files (the "Software"), to deal
emimon01 47:134def52cfa0 6 * in the Software without restriction, including without limitation the rights
emimon01 47:134def52cfa0 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
emimon01 47:134def52cfa0 8 * copies of the Software, and to permit persons to whom the Software is
emimon01 47:134def52cfa0 9 * furnished to do so, subject to the following conditions:
emimon01 47:134def52cfa0 10 *
emimon01 47:134def52cfa0 11 * The above copyright notice and this permission notice shall be included in
emimon01 47:134def52cfa0 12 * all copies or substantial portions of the Software.
emimon01 47:134def52cfa0 13 *
emimon01 47:134def52cfa0 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
emimon01 47:134def52cfa0 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
emimon01 47:134def52cfa0 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
emimon01 47:134def52cfa0 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
emimon01 47:134def52cfa0 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
emimon01 47:134def52cfa0 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
emimon01 47:134def52cfa0 20 * SOFTWARE.
emimon01 47:134def52cfa0 21 */
emimon01 47:134def52cfa0 22 #ifndef MBED_DEBUG_H
emimon01 47:134def52cfa0 23 #define MBED_DEBUG_H
emimon01 47:134def52cfa0 24 #include "device.h"
emimon01 47:134def52cfa0 25
emimon01 47:134def52cfa0 26 #ifdef __cplusplus
emimon01 47:134def52cfa0 27 extern "C" {
emimon01 47:134def52cfa0 28 #endif
emimon01 47:134def52cfa0 29
emimon01 47:134def52cfa0 30 #ifdef DEVICE_STDIO_MESSAGES
emimon01 47:134def52cfa0 31 #include <stdio.h>
emimon01 47:134def52cfa0 32 #include <stdarg.h>
emimon01 47:134def52cfa0 33
emimon01 47:134def52cfa0 34 /** Output a debug message
emimon01 47:134def52cfa0 35 *
emimon01 47:134def52cfa0 36 * @param format printf-style format string, followed by variables
emimon01 47:134def52cfa0 37 */
emimon01 47:134def52cfa0 38 static inline void debug(const char *format, ...) {
emimon01 47:134def52cfa0 39 va_list args;
emimon01 47:134def52cfa0 40 va_start(args, format);
emimon01 47:134def52cfa0 41 vfprintf(stderr, format, args);
emimon01 47:134def52cfa0 42 va_end(args);
emimon01 47:134def52cfa0 43 }
emimon01 47:134def52cfa0 44
emimon01 47:134def52cfa0 45 /** Conditionally output a debug message
emimon01 47:134def52cfa0 46 *
emimon01 47:134def52cfa0 47 * NOTE: If the condition is constant false (!= 1) and the compiler optimization
emimon01 47:134def52cfa0 48 * level is greater than 0, then the whole function will be compiled away.
emimon01 47:134def52cfa0 49 *
emimon01 47:134def52cfa0 50 * @param condition output only if condition is true (== 1)
emimon01 47:134def52cfa0 51 * @param format printf-style format string, followed by variables
emimon01 47:134def52cfa0 52 */
emimon01 47:134def52cfa0 53 static inline void debug_if(int condition, const char *format, ...) {
emimon01 47:134def52cfa0 54 if (condition == 1) {
emimon01 47:134def52cfa0 55 va_list args;
emimon01 47:134def52cfa0 56 va_start(args, format);
emimon01 47:134def52cfa0 57 vfprintf(stderr, format, args);
emimon01 47:134def52cfa0 58 va_end(args);
emimon01 47:134def52cfa0 59 }
emimon01 47:134def52cfa0 60 }
emimon01 47:134def52cfa0 61
emimon01 47:134def52cfa0 62 #else
emimon01 47:134def52cfa0 63 static inline void debug(const char *format, ...) {}
emimon01 47:134def52cfa0 64 static inline void debug_if(int condition, const char *format, ...) {}
emimon01 47:134def52cfa0 65
emimon01 47:134def52cfa0 66 #endif
emimon01 47:134def52cfa0 67
emimon01 47:134def52cfa0 68 #ifdef __cplusplus
emimon01 47:134def52cfa0 69 }
emimon01 47:134def52cfa0 70 #endif
emimon01 47:134def52cfa0 71
emimon01 47:134def52cfa0 72 #endif