diff --git a/src/main/cli/cli.c b/src/main/cli/cli.c index 611a2260ef..fd361d2324 100644 --- a/src/main/cli/cli.c +++ b/src/main/cli/cli.c @@ -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(); diff --git a/src/main/drivers/stack_check.c b/src/main/drivers/stack_check.c index 85b648a52a..8a5f05a8a9 100644 --- a/src/main/drivers/stack_check.c +++ b/src/main/drivers/stack_check.c @@ -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; diff --git a/src/main/fc/tasks.c b/src/main/fc/tasks.c index 4713e1c448..b26775e26b 100644 --- a/src/main/fc/tasks.c +++ b/src/main/fc/tasks.c @@ -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 diff --git a/src/main/scheduler/scheduler.h b/src/main/scheduler/scheduler.h index 4f7572b9f1..3324444802 100644 --- a/src/main/scheduler/scheduler.h +++ b/src/main/scheduler/scheduler.h @@ -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 diff --git a/src/main/startup/startup_stm32f40xx.s b/src/main/startup/startup_stm32f40xx.s index 08bcfc6c19..ebf08198b0 100644 --- a/src/main/startup/startup_stm32f40xx.s +++ b/src/main/startup/startup_stm32f40xx.s @@ -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 */ diff --git a/src/main/startup/startup_stm32f411xe.s b/src/main/startup/startup_stm32f411xe.s index a3e38c12be..519779e115 100644 --- a/src/main/startup/startup_stm32f411xe.s +++ b/src/main/startup/startup_stm32f411xe.s @@ -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 */ diff --git a/src/main/startup/startup_stm32f446xx.s b/src/main/startup/startup_stm32f446xx.s index 92b8eda3f0..b07e3fa88e 100644 --- a/src/main/startup/startup_stm32f446xx.s +++ b/src/main/startup/startup_stm32f446xx.s @@ -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 */ diff --git a/src/main/startup/startup_stm32f722xx.s b/src/main/startup/startup_stm32f722xx.s index 580a99205e..dd96757779 100644 --- a/src/main/startup/startup_stm32f722xx.s +++ b/src/main/startup/startup_stm32f722xx.s @@ -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.*/ diff --git a/src/main/startup/startup_stm32f745xx.s b/src/main/startup/startup_stm32f745xx.s index 9d7f7b6063..2002180daf 100644 --- a/src/main/startup/startup_stm32f745xx.s +++ b/src/main/startup/startup_stm32f745xx.s @@ -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.*/ diff --git a/src/main/startup/startup_stm32f746xx.s b/src/main/startup/startup_stm32f746xx.s index 6f3fc401f9..c3e4293c83 100644 --- a/src/main/startup/startup_stm32f746xx.s +++ b/src/main/startup/startup_stm32f746xx.s @@ -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.*/ diff --git a/src/main/startup/startup_stm32f765xx.s b/src/main/startup/startup_stm32f765xx.s index 47bb4cf93c..27ab8774d8 100644 --- a/src/main/startup/startup_stm32f765xx.s +++ b/src/main/startup/startup_stm32f765xx.s @@ -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.*/ diff --git a/src/main/startup/startup_stm32h743xx.s b/src/main/startup/startup_stm32h743xx.s index b316a79591..3e99ce8f53 100644 --- a/src/main/startup/startup_stm32h743xx.s +++ b/src/main/startup/startup_stm32h743xx.s @@ -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 */ diff --git a/src/main/target/SITL/target.h b/src/main/target/SITL/target.h index 447c0b3459..dd69ec3c8b 100644 --- a/src/main/target/SITL/target.h +++ b/src/main/target/SITL/target.h @@ -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 diff --git a/src/main/target/STM32F4DISCOVERY/target.h b/src/main/target/STM32F4DISCOVERY/target.h index 35031c6752..5c506b2d73 100644 --- a/src/main/target/STM32F4DISCOVERY/target.h +++ b/src/main/target/STM32F4DISCOVERY/target.h @@ -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