From 64778b9540e3801447c6253436896e6b0f90a051 Mon Sep 17 00:00:00 2001 From: Andreas Antener Date: Sun, 4 Dec 2016 19:05:57 +0100 Subject: [PATCH] Load monitor: added parameter to disable stack check --- src/modules/load_mon/load_mon.cpp | 20 +++++++++++++++++--- src/modules/systemlib/system_params.c | 8 ++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/modules/load_mon/load_mon.cpp b/src/modules/load_mon/load_mon.cpp index 7a4982cd26..8e43f6ed24 100644 --- a/src/modules/load_mon/load_mon.cpp +++ b/src/modules/load_mon/load_mon.cpp @@ -118,6 +118,7 @@ private: orb_advert_t _cpuload_pub; hrt_abstime _last_idle_time; perf_counter_t _stack_perf; + bool _stack_check_enabled; }; LoadMon::LoadMon() : @@ -132,8 +133,17 @@ LoadMon::LoadMon() : _cpuload{}, _cpuload_pub(nullptr), _last_idle_time(0), - _stack_perf(perf_alloc(PC_ELAPSED, "stack_check")) -{} + _stack_perf(perf_alloc(PC_ELAPSED, "stack_check")), + _stack_check_enabled(false) +{ + /* Parameter for stack checking */ + param_t _param_stack_check = param_find("SYS_STCK_EN"); + int ret_val = 0; + param_get(_param_stack_check, &ret_val); + _stack_check_enabled = ret_val > 0; + + PX4_INFO("stack check enabled: %s", _stack_check_enabled ? "yes" : "no"); +} LoadMon::~LoadMon() { @@ -190,7 +200,11 @@ void LoadMon::_compute() _cpuload.ram_usage = _ram_used(); #ifdef __PX4_NUTTX - _stack_usage(); + + if (_stack_check_enabled) { + _stack_usage(); + } + #endif if (_cpuload_pub == nullptr) { diff --git a/src/modules/systemlib/system_params.c b/src/modules/systemlib/system_params.c index ca809e8554..1a51f4551d 100644 --- a/src/modules/systemlib/system_params.c +++ b/src/modules/systemlib/system_params.c @@ -153,3 +153,11 @@ PARAM_DEFINE_INT32(SYS_PARAM_VER, 1); * @group System */ PARAM_DEFINE_INT32(SYS_LOGGER, 0); + +/** + * Enable stack checking + * + * @min 0 + * @group System + */ +PARAM_DEFINE_INT32(SYS_STCK_EN, 0);