From 65baf9983232a5697b7748c8df52e4abb6e7f067 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Wed, 3 May 2017 21:52:04 +0200 Subject: [PATCH] Logger hotfix: Allocate buffer on logging This enables to use the RAM normally consumed by the log buffer to be used for calibration and other memory-intense tasks. These run typically only disarmed when logging is not enabled. --- src/modules/logger/log_writer_file.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/logger/log_writer_file.cpp b/src/modules/logger/log_writer_file.cpp index 7b052a58c5..a54f3a38b7 100644 --- a/src/modules/logger/log_writer_file.cpp +++ b/src/modules/logger/log_writer_file.cpp @@ -60,13 +60,7 @@ LogWriterFile::LogWriterFile(size_t buffer_size) : bool LogWriterFile::init() { - if (_buffer) { - return true; - } - - _buffer = new uint8_t[_buffer_size]; - - return _buffer; + return true; } LogWriterFile::~LogWriterFile() @@ -91,6 +85,17 @@ void LogWriterFile::start_log(const char *filename) return; } else { + + if (_buffer == nullptr) { + _buffer = new uint8_t[_buffer_size]; + + if (_buffer == nullptr) { + PX4_ERR("Can't create log buffer"); + _should_run = false; + return; + } + } + PX4_INFO("Opened log file: %s", filename); _should_run = true; _running = true;