1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-14 03:50:02 +03:00

Fixed stack size monitoring.

This commit is contained in:
mikeller 2020-07-08 20:08:39 +12:00
parent f6b1c6a539
commit 81abf873da
14 changed files with 95 additions and 27 deletions

View file

@ -4699,7 +4699,7 @@ static void cliStatus(const char *cmdName, char *cmdline)
// Stack and config sizes and usages
cliPrintf("Stack size: %d, Stack address: 0x%x", stackTotalSize(), stackHighMem());
#ifdef STACK_CHECK
#ifdef USE_STACK_CHECK
cliPrintf(", Stack used: %d", stackUsedSize());
#endif
cliPrintLinefeed();

View file

@ -58,7 +58,7 @@ extern char _Min_Stack_Size; // declared in .LD file
* See the linker scripts for actual stack configuration.
*/
#ifdef STACK_CHECK
#ifdef USE_STACK_CHECK
static uint32_t usedStackSize;

View file

@ -257,7 +257,7 @@ void tasksInit(void)
const bool useBatteryAlerts = batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts || featureIsEnabled(FEATURE_OSD);
setTaskEnabled(TASK_BATTERY_ALERTS, (useBatteryVoltage || useBatteryCurrent) && useBatteryAlerts);
#ifdef STACK_CHECK
#ifdef USE_STACK_CHECK
setTaskEnabled(TASK_STACK_CHECK, true);
#endif
@ -408,7 +408,7 @@ task_t tasks[TASK_COUNT] = {
[TASK_TRANSPONDER] = DEFINE_TASK("TRANSPONDER", NULL, NULL, transponderUpdate, TASK_PERIOD_HZ(250), TASK_PRIORITY_LOW),
#endif
#ifdef STACK_CHECK
#ifdef USE_STACK_CHECK
[TASK_STACK_CHECK] = DEFINE_TASK("STACKCHECK", NULL, NULL, taskStackCheck, TASK_PERIOD_HZ(10), TASK_PRIORITY_IDLE),
#endif

View file

@ -111,7 +111,7 @@ typedef enum {
#ifdef USE_TRANSPONDER
TASK_TRANSPONDER,
#endif
#ifdef STACK_CHECK
#ifdef USE_STACK_CHECK
TASK_STACK_CHECK,
#endif
#ifdef USE_OSD

View file

@ -129,17 +129,17 @@ LoopFillZerofastram_bss:
bcc FillZerofastram_bss
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/*FPU settings*/
ldr r0, =0xE000ED88 /* Enable CP10,CP11 */

View file

@ -104,17 +104,17 @@ LoopFillZerobss:
bcc FillZerobss
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/*FPU settings*/
ldr r0, =0xE000ED88 /* Enable CP10,CP11 */

View file

@ -104,17 +104,17 @@ LoopFillZerobss:
bcc FillZerobss
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/*FPU settings*/
ldr r0, =0xE000ED88 /* Enable CP10,CP11 */

View file

@ -138,6 +138,19 @@ LoopFillZerofastram_bss:
cmp r2, r3
bcc FillZerofastram_bss
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/* Call the clock system intitialization function.*/
bl SystemInit
/* Call the application's entry point.*/

View file

@ -138,6 +138,19 @@ LoopFillZerofastram_bss:
cmp r2, r3
bcc FillZerofastram_bss
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/* Call the clock system initialization function.*/
bl SystemInit
/* Call the application's entry point.*/

View file

@ -138,6 +138,19 @@ LoopFillZerofastram_bss:
cmp r2, r3
bcc FillZerofastram_bss
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/* Call the clock system initialization function.*/
bl SystemInit
/* Call the application's entry point.*/

View file

@ -138,6 +138,19 @@ LoopFillZerofastram_bss:
cmp r2, r3
bcc FillZerofastram_bss
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/* Call the clock system initialization function.*/
bl SystemInit
/* Call the application's entry point.*/

View file

@ -133,6 +133,19 @@ LoopFillZerofastram_bss:
bcc FillZerofastram_bss
/*-----*/
/* Mark the heap and stack */
ldr r2, =_heap_stack_begin
b LoopMarkHeapStack
MarkHeapStack:
movs r3, 0xa5a5a5a5
str r3, [r2], #4
LoopMarkHeapStack:
ldr r3, = _heap_stack_end
cmp r2, r3
bcc MarkHeapStack
/* Call the clock system intitialization function.*/
bl SystemInit
/* Call static constructors */

View file

@ -90,7 +90,7 @@
#define USE_PARAMETER_GROUPS
#undef STACK_CHECK // I think SITL don't need this
#undef USE_STACK_CHECK // I think SITL don't need this
#undef USE_DASHBOARD
#undef USE_TELEMETRY_LTM
#undef USE_ADC

View file

@ -23,7 +23,10 @@
#define TARGET_BOARD_IDENTIFIER "SDF4"
#define USBD_PRODUCT_STRING "STM32F4DISCOVERY"
// These features are in here to get coverage in CI builds
#define USE_SPI_TRANSACTION
#define USE_STACK_CHECK
//LEDs
#define LED0_PIN PD12