From 35857f535d42b8e42f40675abea1de31e5ff16aa Mon Sep 17 00:00:00 2001 From: slurdge Date: Thu, 11 Jun 2020 11:14:53 +0200 Subject: [PATCH] Compute the max usage --- armsrc/appmain.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 7ba6158c7..b9225bed5 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -71,6 +71,8 @@ uint8_t ToSend[TOSEND_BUFFER_SIZE]; int ToSendMax = -1; +extern uint32_t _stack_start, _stack_end; + static int ToSendBit; struct common_area common_area __attribute__((section(".commonarea"))); @@ -359,6 +361,12 @@ static void SendStatus(void) { #endif printConnSpeed(); DbpString(_BLUE_("Various")); + for (uint32_t *p = &_stack_start; ; ++p) { + if (*p != 0xdeadbeef) { + Dbprintf(" Max stack usage.........%d", (&_stack_end - p)*4); + break; + } + } Dbprintf(" DBGLEVEL................%d", DBGLEVEL); Dbprintf(" ToSendMax...............%d", ToSendMax); Dbprintf(" ToSendBit...............%d", ToSendBit); @@ -2052,15 +2060,15 @@ static void PacketReceived(PacketCommandNG *packet) { } } -extern uint32_t _stack_start; - void __attribute__((noreturn)) AppMain(void) { SpinDelay(100); BigBuf_initialize(); - _stack_start = 0xdeadbeef; - + for (uint32_t * p = &_stack_start; p < (&_stack_end) - 0x80; ++p) { + *p = 0xdeadbeef; + } + if (common_area.magic != COMMON_AREA_MAGIC || common_area.version != 1) { /* Initialize common area */ memset(&common_area, 0, sizeof(common_area));