Christian Weiß / Mbed 2 deprecated Diplomarbeit_MW_CW

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mbed_debug.h Source File

mbed_debug.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Permission is hereby granted, free of charge, to any person obtaining a copy
00005  * of this software and associated documentation files (the "Software"), to deal
00006  * in the Software without restriction, including without limitation the rights
00007  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00008  * copies of the Software, and to permit persons to whom the Software is
00009  * furnished to do so, subject to the following conditions:
00010  *
00011  * The above copyright notice and this permission notice shall be included in
00012  * all copies or substantial portions of the Software.
00013  *
00014  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00015  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00019  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
00020  * SOFTWARE.
00021  */
00022 #ifndef MBED_DEBUG_H
00023 #define MBED_DEBUG_H
00024 #include "device.h"
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 #ifdef DEVICE_STDIO_MESSAGES
00031 #include <stdio.h>
00032 #include <stdarg.h>
00033 
00034 /** Output a debug message
00035  *
00036  * @param format printf-style format string, followed by variables
00037  */
00038 static inline void debug(const char *format, ...) {
00039     va_list args;
00040     va_start(args, format);
00041     vfprintf(stderr, format, args);
00042     va_end(args);
00043 }
00044 
00045 /** Conditionally output a debug message
00046  *
00047  * NOTE: If the condition is constant false (!= 1) and the compiler optimization
00048  * level is greater than 0, then the whole function will be compiled away.
00049  *
00050  * @param condition output only if condition is true (== 1)
00051  * @param format printf-style format string, followed by variables
00052  */
00053 static inline void debug_if(int condition, const char *format, ...) {
00054     if (condition == 1) {
00055         va_list args;
00056         va_start(args, format);
00057         vfprintf(stderr, format, args);
00058         va_end(args);
00059     }
00060 }
00061 
00062 #else
00063 static inline void debug(const char *format, ...) {}
00064 static inline void debug_if(int condition, const char *format, ...) {}
00065 
00066 #endif
00067 
00068 #ifdef __cplusplus
00069 }
00070 #endif
00071 
00072 #endif
00073