Heap allocate the drivetrain to preserve stack
We were overflowing the stack because the drivetrain code had grown to
use enough memory to cause problems. Switch to heap allocating the
object since it can be pre-allocated regardless.
Change-Id: I5264ea976239174dd86302b065e9ea5e27321424
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/y2017/control_loops/drivetrain/drivetrain_main.cc b/y2017/control_loops/drivetrain/drivetrain_main.cc
index 444838c..4db7b95 100644
--- a/y2017/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2017/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2017/control_loops/drivetrain/drivetrain_base.h"
@@ -15,7 +16,7 @@
::aos::ShmEventLoop event_loop(&config.message());
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop, ::y2017::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2017::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
&localizer);