diff --git a/src/main/cli/cli.c b/src/main/cli/cli.c index 33dbcf957..c98fd9195 100644 --- a/src/main/cli/cli.c +++ b/src/main/cli/cli.c @@ -4700,7 +4700,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 85b648a52..8a5f05a8a 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 4713e1c44..b26775e26 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 4f7572b9f..332444480 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 08bcfc6c1..ebf08198b 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 a3e38c12b..519779e11 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 92b8eda3f..b07e3fa88 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 580a99205..dd9675777 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 9d7f7b606..2002180da 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 6f3fc401f..c3e4293c8 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 47bb4cf93..27ab8774d 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 b316a7959..3e99ce8f5 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 447c0b345..dd69ec3c8 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 35031c675..5c506b2d7 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