Merged in kloper/nuttx/atmega2560 (pull request #46)

debug macros for AVR (take #2): Introduce arch-specific debug macro hooks
This commit is contained in:
Gregory Nutt
2016-01-09 07:17:22 -06:00
2 changed files with 27 additions and 6 deletions
+6
View File
@@ -376,6 +376,12 @@ config ARCH_STDARG_H
ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then
the stdarg.h header file will stay out-of-the-way in include/nuttx/. the stdarg.h header file will stay out-of-the-way in include/nuttx/.
config ARCH_DEBUG_H
bool "debug.h"
default n
---help---
The debug.h contains architecture dependent debugging primitives
endmenu # Customize Header Files endmenu # Customize Header Files
menu "Debug Options" menu "Debug Options"
+21 -6
View File
@@ -43,6 +43,10 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#include <nuttx/compiler.h> #include <nuttx/compiler.h>
#ifdef CONFIG_ARCH_DEBUG_H
# include <arch/debug.h>
#endif
#include <syslog.h> #include <syslog.h>
/**************************************************************************** /****************************************************************************
@@ -94,6 +98,17 @@
# define EXTRA_ARG # define EXTRA_ARG
#endif #endif
/*
* The actual logger function may be overridden in arch/debug.h if needed.
*/
#ifndef __arch_syslog
# define __arch_syslog syslog
#endif
#ifndef __arch_lowsyslog
# define __arch_lowsyslog lowsyslog
#endif
/* Debug macros will differ depending upon if the toolchain supports /* Debug macros will differ depending upon if the toolchain supports
* macros with a variable number of arguments or not. * macros with a variable number of arguments or not.
*/ */
@@ -104,30 +119,30 @@
#ifdef CONFIG_DEBUG #ifdef CONFIG_DEBUG
# define dbg(format, ...) \ # define dbg(format, ...) \
syslog(LOG_ERR, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__) __arch_syslog(LOG_ERR, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
# ifdef CONFIG_ARCH_LOWPUTC # ifdef CONFIG_ARCH_LOWPUTC
# define lldbg(format, ...) \ # define lldbg(format, ...) \
lowsyslog(LOG_ERR, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__) __arch_lowsyslog(LOG_ERR, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
# else # else
# define lldbg(x...) # define lldbg(x...)
# endif # endif
# ifdef CONFIG_DEBUG_VERBOSE # ifdef CONFIG_DEBUG_VERBOSE
# define vdbg(format, ...) \ # define vdbg(format, ...) \
syslog(LOG_DEBUG, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__) __arch_syslog(LOG_DEBUG, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
# ifdef CONFIG_ARCH_LOWPUTC # ifdef CONFIG_ARCH_LOWPUTC
# define llvdbg(format, ...) \ # define llvdbg(format, ...) \
lowsyslog(LOG_DEBUG, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__) __arch_lowsyslog(LOG_DEBUG, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
# else # else
# define llvdbg(x...) # define llvdbg(x...)
# endif # endif
# else # else /* CONFIG_DEBUG_VERBOSE */
# define vdbg(x...) # define vdbg(x...)
# define llvdbg(x...) # define llvdbg(x...)
# endif # endif /* CONFIG_DEBUG_VERBOSE */
#else /* CONFIG_DEBUG */ #else /* CONFIG_DEBUG */