From a4aa76f0acda3cf5c3f79731a4a2d57ab6cf8f80 Mon Sep 17 00:00:00 2001 From: Eric Katzfey <53063038+katzfey@users.noreply.github.com> Date: Mon, 30 Jan 2023 09:03:40 -0800 Subject: [PATCH] VOXL2 board updates and new Kconfig option for ROOTFSDIR - also includes a couple of miscellaneous changes to VOXL2 support to show Qurt messages on px4 console and put logs in the proper spot --- Kconfig | 7 +++ .../src/drivers/icm42688p/ICM42688P.cpp | 2 +- boards/modalai/voxl2/default.px4board | 1 + boards/modalai/voxl2/target/voxl-px4.config | 2 - .../include/px4_platform_common/defines.h | 4 +- platforms/qurt/include/qurt_log.h | 8 +++- platforms/qurt/src/px4/CMakeLists.txt | 1 + platforms/qurt/src/px4/qurt_log.cpp | 48 +++++++++++++++++++ 8 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 platforms/qurt/src/px4/qurt_log.cpp diff --git a/Kconfig b/Kconfig index 5050e3e7d7..0bcdf14ff9 100644 --- a/Kconfig +++ b/Kconfig @@ -73,6 +73,13 @@ menu "Toolchain" help relative path to the ROMFS root directory + config BOARD_ROOTFSDIR + string "Root directory" + depends on PLATFORM_POSIX + default "." + help + Configure the root directory in the file system for PX4 files + config BOARD_IO string "IO board name" default "px4_io-v2_default" diff --git a/boards/modalai/voxl2-slpi/src/drivers/icm42688p/ICM42688P.cpp b/boards/modalai/voxl2-slpi/src/drivers/icm42688p/ICM42688P.cpp index 24e18e4a1f..daf593d80c 100644 --- a/boards/modalai/voxl2-slpi/src/drivers/icm42688p/ICM42688P.cpp +++ b/boards/modalai/voxl2-slpi/src/drivers/icm42688p/ICM42688P.cpp @@ -414,7 +414,7 @@ bool ICM42688P::Configure() return success; } -static bool interrupt_debug = true; +static bool interrupt_debug = false; static uint32_t interrupt_debug_count = 0; static const uint32_t interrupt_debug_trigger = 800; static hrt_abstime last_interrupt_time = 0; diff --git a/boards/modalai/voxl2/default.px4board b/boards/modalai/voxl2/default.px4board index eb8474533d..f261ea253c 100644 --- a/boards/modalai/voxl2/default.px4board +++ b/boards/modalai/voxl2/default.px4board @@ -17,3 +17,4 @@ CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y CONFIG_SYSTEMCMDS_UORB=y CONFIG_SYSTEMCMDS_VER=y CONFIG_ORB_COMMUNICATOR=y +CONFIG_BOARD_ROOTFSDIR="/data/px4" diff --git a/boards/modalai/voxl2/target/voxl-px4.config b/boards/modalai/voxl2/target/voxl-px4.config index 45edf0bfff..e84e24275f 100755 --- a/boards/modalai/voxl2/target/voxl-px4.config +++ b/boards/modalai/voxl2/target/voxl-px4.config @@ -19,5 +19,3 @@ fi muorb start qshell icm42688p start -s - -qshell modal_io start diff --git a/platforms/common/include/px4_platform_common/defines.h b/platforms/common/include/px4_platform_common/defines.h index 913481bfee..c0aad3e869 100644 --- a/platforms/common/include/px4_platform_common/defines.h +++ b/platforms/common/include/px4_platform_common/defines.h @@ -40,6 +40,8 @@ #pragma once #include +#include + /**************************************************************************** * Defines for all platforms. @@ -95,7 +97,7 @@ __BEGIN_DECLS extern long PX4_TICKS_PER_SEC; __END_DECLS -#define PX4_ROOTFSDIR "." +#define PX4_ROOTFSDIR CONFIG_BOARD_ROOTFSDIR #define PX4_STORAGEDIR PX4_ROOTFSDIR diff --git a/platforms/qurt/include/qurt_log.h b/platforms/qurt/include/qurt_log.h index 5e57e80313..92b7b748b7 100644 --- a/platforms/qurt/include/qurt_log.h +++ b/platforms/qurt/include/qurt_log.h @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (C) 2022 ModalAI, Inc. All rights reserved. + * Copyright (C) 2022-2023 ModalAI, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,7 +39,9 @@ __BEGIN_DECLS -//Defining hap_debug +extern void qurt_log_to_apps(int level, const char *message); + +// Defining hap_debug void HAP_debug(const char *msg, int level, const char *filename, int line); static __inline void qurt_log(int level, const char *file, int line, @@ -51,6 +53,8 @@ static __inline void qurt_log(int level, const char *file, int line, vsnprintf(buf, sizeof(buf), format, args); va_end(args); HAP_debug(buf, level, file, line); + + qurt_log_to_apps(level, buf); } __END_DECLS diff --git a/platforms/qurt/src/px4/CMakeLists.txt b/platforms/qurt/src/px4/CMakeLists.txt index e078485716..e685b8d42a 100644 --- a/platforms/qurt/src/px4/CMakeLists.txt +++ b/platforms/qurt/src/px4/CMakeLists.txt @@ -37,6 +37,7 @@ set(QURT_LAYER_SRCS tasks.cpp px4_qurt_impl.cpp main.cpp + qurt_log.cpp ) add_library(px4_layer diff --git a/platforms/qurt/src/px4/qurt_log.cpp b/platforms/qurt/src/px4/qurt_log.cpp new file mode 100644 index 0000000000..239f9e52b8 --- /dev/null +++ b/platforms/qurt/src/px4/qurt_log.cpp @@ -0,0 +1,48 @@ +/**************************************************************************** + * + * Copyright (c) 2023 ModalAI, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ +#include +#include + +// This function will send a debug or error message up to the apps proc +// so that it can be displayed and logged. Otherwise the messages are only +// available with the mini-dm tool that requires adb (i.e. USB cable attached) +extern "C" void qurt_log_to_apps(int level, const char *message) +{ + uORBCommunicator::IChannel *ch = uORB::Manager::get_instance()->get_uorb_communicator(); + + if (ch != nullptr) { + if (level >= _PX4_LOG_LEVEL_ERROR) { ch->send_message("slpi_error", strlen(message) + 1, (uint8_t *) message); } + + else { ch->send_message("slpi_debug", strlen(message) + 1, (uint8_t *) message); } + } +} \ No newline at end of file