Skip to content

Commit a06a7fe

Browse files
committed
Fix stack debug mode and reuse unit constants
Corrected `debug_stack.h` so detailed stack address output is shown when assertions are enabled, instead of disabled. Also replaced hardcoded `1024` and `1000` literals with shared unit constants by adding `k1KiB` to `utils_units.h` and using `common::units::k1KiB`/`kMsPerSecond` for clearer, consistent unit handling.
1 parent 1c54da1 commit a06a7fe

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

common/include/common/utils/utils_units.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ inline constexpr uint32_t kUsPerSecond = 1'000'000U;
3636
inline constexpr uint32_t kNsPerUs = 1'000U;
3737
inline constexpr uint32_t kNsPerMs = 1'000'000U;
3838
inline constexpr uint32_t kNsPerSecond = 1'000'000'000U;
39+
40+
inline constexpr uint32_t k1KiB = 1024;
41+
3942
} // namespace common::units
4043

4144
#endif // COMMON_UTILS_UTILS_UNITS_H_

common/include/firmware/debug/debug_stack.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
#include "timing.h"
3434
#include "firmware/debug/debug_config.h"
35+
#include "common/utils/utils_units.h"
3536

3637
extern unsigned char stack_low;
3738
extern unsigned char _sp; // NOLINT
@@ -78,11 +79,11 @@ inline void Print() {
7879
printf("\x1b[34m");
7980
}
8081

81-
if constexpr (!config::kAssertionsEnabled) {
82-
printf("Stack: Size %uKB, [%p:%p:%p], Used: %u, Free: %u [%u]", static_cast<unsigned>(kSizeBytes / 1024U), reinterpret_cast<const void*>(start_address), reinterpret_cast<const void*>(ptr),
82+
if constexpr (config::kAssertionsEnabled) {
83+
printf("Stack: Size %uKB, [%p:%p:%p], Used: %u, Free: %u [%u]", static_cast<unsigned>(kSizeBytes / common::units::k1KiB), reinterpret_cast<const void*>(start_address), reinterpret_cast<const void*>(ptr),
8384
reinterpret_cast<const void*>(end_address), static_cast<unsigned>(kUsedBytes), static_cast<unsigned>(kFreeBytes), static_cast<unsigned>(kFreePct));
8485
} else {
85-
printf("Stack: Size %uKB, Used: %u, Free: %u", static_cast<unsigned>(kSizeBytes / 1024U), static_cast<unsigned>(kUsedBytes), static_cast<unsigned>(kFreeBytes));
86+
printf("Stack: Size %uKB, Used: %u, Free: %u", static_cast<unsigned>(kSizeBytes / common::units::k1KiB), static_cast<unsigned>(kUsedBytes), static_cast<unsigned>(kFreeBytes));
8687
}
8788
printf("\x1b[39m\n");
8889
}
@@ -95,7 +96,7 @@ inline void Run() {
9596

9697
static uint32_t s_millis_previous;
9798
const auto kMillis = timing::Millis();
98-
if (kMillis - s_millis_previous >= 1000U) {
99+
if (kMillis - s_millis_previous >= common::units::kMsPerSecond) {
99100
s_millis_previous = kMillis;
100101
Print();
101102
}

0 commit comments

Comments
 (0)