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.
This commit is contained in:
Lorenz Meier
2017-05-03 21:52:04 +02:00
parent dce28454c8
commit 65baf99832

View File

@@ -60,13 +60,7 @@ LogWriterFile::LogWriterFile(size_t buffer_size) :
bool LogWriterFile::init() bool LogWriterFile::init()
{ {
if (_buffer) { return true;
return true;
}
_buffer = new uint8_t[_buffer_size];
return _buffer;
} }
LogWriterFile::~LogWriterFile() LogWriterFile::~LogWriterFile()
@@ -91,6 +85,17 @@ void LogWriterFile::start_log(const char *filename)
return; return;
} else { } 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); PX4_INFO("Opened log file: %s", filename);
_should_run = true; _should_run = true;
_running = true; _running = true;