From eaef0db7d6c90f4060006f2bb45008b45c1da5c9 Mon Sep 17 00:00:00 2001 From: Mark Charlebois Date: Tue, 19 May 2015 11:53:19 -0700 Subject: [PATCH] Logging fixes and enhancements Made the logging macros generic so they can be used for multiple targets. Fixed toolchain_native.mk so err.h is included from src/systemlib for posix. Reduced debug output for uORB. Signed-off-by: Mark Charlebois --- makefiles/toolchain_native.mk | 1 + src/modules/uORB/uORBDevices_posix.cpp | 2 +- src/platforms/px4_log.h | 48 ++++++++----------- .../qurt/px4_layer/px4_qurt_tasks.cpp | 20 ++------ 4 files changed, 27 insertions(+), 44 deletions(-) diff --git a/makefiles/toolchain_native.mk b/makefiles/toolchain_native.mk index 7c42ee4ba1..0b8223bfd0 100644 --- a/makefiles/toolchain_native.mk +++ b/makefiles/toolchain_native.mk @@ -122,6 +122,7 @@ endif ARCHDEFINES += -DCONFIG_ARCH_BOARD_$(CONFIG_BOARD) \ -D__PX4_LINUX -D__PX4_POSIX \ -Dnoreturn_function= \ + -I$(PX4_BASE)/src/modules/systemlib \ -I$(PX4_BASE)/src/lib/eigen \ -I$(PX4_BASE)/src/platforms/posix/include \ -I$(PX4_BASE)/mavlink/include/mavlink \ diff --git a/src/modules/uORB/uORBDevices_posix.cpp b/src/modules/uORB/uORBDevices_posix.cpp index e3530926e1..c80824d39b 100644 --- a/src/modules/uORB/uORBDevices_posix.cpp +++ b/src/modules/uORB/uORBDevices_posix.cpp @@ -443,7 +443,7 @@ uORB::DeviceMaster::DeviceMaster(Flavor f) : _flavor(f) { // enable debug() calls - _debug_enabled = true; + //_debug_enabled = true; } diff --git a/src/platforms/px4_log.h b/src/platforms/px4_log.h index 2dd849f24a..07438a4ec4 100644 --- a/src/platforms/px4_log.h +++ b/src/platforms/px4_log.h @@ -38,39 +38,35 @@ #pragma once -#if defined(__PX4_QURT) +#define __px4_log_omit(level, ...) { } -__BEGIN_DECLS -extern void qurt_log(const char *fmt, ...); -__END_DECLS - -#include - -#define qurt_log(...) {printf(__VA_ARGS__); printf("\n");} -#define PX4_DBG(...) qurt_log(__VA_ARGS__) -#define PX4_DEBUG(...) qurt_log(__VA_ARGS__) -#define PX4_INFO(...) qurt_log(__VA_ARGS__) -#define PX4_WARN(...) qurt_log(__VA_ARGS__) -#define PX4_ERR(...) { qurt_log("ERROR file %s line %d:", __FILE__, __LINE__); qurt_log(__VA_ARGS__); } - -#elif defined(__PX4_LINUX) -#include - -#define linux_log(level, ...) { \ +#define __px4_log(level, ...) { \ printf("%-5s ", level);\ printf(__VA_ARGS__);\ printf("\n");\ } -#define linux_log_verbose(level, ...) { \ +#define __px4_log_verbose(level, ...) { \ printf("%-5s ", level);\ printf(__VA_ARGS__);\ printf(" (file %s line %d)\n", __FILE__, __LINE__);\ } + +#if defined(__PX4_QURT) +#include + +#define PX4_DEBUG(...) __px4_log_omit("DEBUG", __VA_ARGS__); +#define PX4_INFO(...) __px4_log("INFO", __VA_ARGS__); +#define PX4_WARN(...) __px4_log_verbose("WARN", __VA_ARGS__); +#define PX4_ERR(...) __px4_log_verbose("ERROR", __VA_ARGS__); + +#elif defined(__PX4_LINUX) +#include + //#define PX4_DEBUG(...) { } -#define PX4_DEBUG(...) { linux_log("DEBUG", __VA_ARGS__); } -#define PX4_INFO(...) { linux_log("INFO", __VA_ARGS__); } -#define PX4_WARN(...) { linux_log_verbose("WARN", __VA_ARGS__); } -#define PX4_ERR(...) { linux_log_verbose("ERROR", __VA_ARGS__); } +#define PX4_DEBUG(...) __px4_log_omit("DEBUG", __VA_ARGS__); +#define PX4_INFO(...) __px4_log("INFO", __VA_ARGS__); +#define PX4_WARN(...) __px4_log_verbose("WARN", __VA_ARGS__); +#define PX4_ERR(...) __px4_log_verbose("ERROR", __VA_ARGS__); #elif defined(__PX4_ROS) @@ -80,7 +76,6 @@ __END_DECLS #define PX4_ERR(...) ROS_WARN(__VA_ARGS__) #elif defined(__PX4_NUTTX) - #include #define PX4_DBG(...) @@ -90,9 +85,6 @@ __END_DECLS #else -#define PX4_DBG(...) -#define PX4_WARN(...) -#define PX4_INFO(...) -#define PX4_ERR(...) +#error "Target platform unknown" #endif diff --git a/src/platforms/qurt/px4_layer/px4_qurt_tasks.cpp b/src/platforms/qurt/px4_layer/px4_qurt_tasks.cpp index bbd1366ec2..d688f1104a 100644 --- a/src/platforms/qurt/px4_layer/px4_qurt_tasks.cpp +++ b/src/platforms/qurt/px4_layer/px4_qurt_tasks.cpp @@ -104,7 +104,7 @@ px4_task_t px4_task_spawn_cmd(const char *name, int scheduler, int priority, int unsigned long structsize; char * p = (char *)argv; - printf("Creating %s\n", name); + PX4_DEBUG("Creating %s\n", name); pthread_t task; pthread_attr_t attr; struct sched_param param; @@ -128,7 +128,7 @@ px4_task_t px4_task_spawn_cmd(const char *name, int scheduler, int priority, int taskdata->argc = argc; for (i=0; iargv[i] = (char *)offset; strcpy((char *)offset, argv[i]); offset+=strlen(argv[i])+1; @@ -165,17 +165,7 @@ px4_task_t px4_task_spawn_cmd(const char *name, int scheduler, int priority, int rv = pthread_create (&task, &attr, &entry_adapter, (void *) taskdata); if (rv != 0) { - if (rv == EPERM) { - //printf("WARNING: NOT RUNING AS ROOT, UNABLE TO RUN REALTIME THREADS\n"); - rv = pthread_create (&task, NULL, &entry_adapter, (void *) taskdata); - if (rv != 0) { - PX4_ERR("px4_task_spawn_cmd: failed to create thread %d %d\n", rv, errno); - return (rv < 0) ? rv : -rv; - } - } - else { - return (rv < 0) ? rv : -rv; - } + return (rv < 0) ? rv : -rv; } for (i=0; i