diff options
| author | hathach <[email protected]> | 2026-08-11 17:07:44 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2026-09-04 04:21:57 +0700 |
| commit | d2de029fd9def460d66e87fd1088cc49ed0f4574 (patch) | |
| tree | 758b6e95047333d9bc3709954200be8b8b7f6976 | |
| parent | 95ec96b2962ebe57a43902495fd76e40dfb5558d (diff) | |
sysview: per-family RTT buffer defaults, 65536 on RAM-rich parts
The dual-role dogfood measured the 4096 fallback losing 96.7% of ISR exit
contexts on mimxrt1064_evk and 99.1% on metro_m4_express; a local-board run
measured stm32u575nucleo losing ~19% of the whole stream under a 12 s
cdc_msc workload. The default was too small for any real capture on fast
parts and every user had to rediscover that per board.
Families now declare SYSVIEW_BUFFER_SIZE_DEFAULT in family.cmake (the
SYSVIEW_RAM_BASE_DEFAULT pattern): imxrt, nrf, rp2040, samd5x_e5x, stm32f4,
stm32f7, stm32h7 and stm32u5 set 65536, the measured-safe value.
-DSYSVIEW_BUFFER_SIZE still beats everything; small-RAM parts keep the 4096
fallback and their per-board overrides (stm32f072disco's 2048 verified
still honoured). lpc55 measured 34 lost events on the same route, an order
of magnitude lighter, so it keeps the fallback rather than inheriting a
default on thin evidence.
| -rw-r--r-- | hw/bsp/family_support.cmake | 11 | ||||
| -rw-r--r-- | hw/bsp/imxrt/family.cmake | 4 | ||||
| -rw-r--r-- | hw/bsp/nrf/family.cmake | 4 | ||||
| -rw-r--r-- | hw/bsp/rp2040/family.cmake | 4 | ||||
| -rw-r--r-- | hw/bsp/samd5x_e5x/family.cmake | 4 | ||||
| -rw-r--r-- | hw/bsp/stm32f4/family.cmake | 4 | ||||
| -rw-r--r-- | hw/bsp/stm32f7/family.cmake | 4 | ||||
| -rw-r--r-- | hw/bsp/stm32h7/family.cmake | 4 | ||||
| -rw-r--r-- | hw/bsp/stm32u5/family.cmake | 4 |
9 files changed, 42 insertions, 1 deletions
diff --git a/hw/bsp/family_support.cmake b/hw/bsp/family_support.cmake index 2aac00eb5..adb4cde13 100644 --- a/hw/bsp/family_support.cmake +++ b/hw/bsp/family_support.cmake @@ -505,7 +505,16 @@ function(family_configure_common TARGET RTOS) "(it's a mandatory dependency, fetched regardless of family)") endif () if (NOT DEFINED SYSVIEW_BUFFER_SIZE) - set(SYSVIEW_BUFFER_SIZE 4096) # overflows under bulk USB load -- raise per board + # -DSYSVIEW_BUFFER_SIZE always wins. Otherwise a family may declare its own default + # (SYSVIEW_BUFFER_SIZE_DEFAULT in family.cmake, the SYSVIEW_RAM_BASE_DEFAULT pattern): + # RAM-rich families set 65536, the dual-role dogfood's measured-safe value -- at the + # global 4096 fallback mimxrt1064_evk lost 96.7% of ISR exit contexts at only ~109 Hz. + # Small-RAM parts keep the 4096 fallback and override per board (see boards.md). + if (DEFINED SYSVIEW_BUFFER_SIZE_DEFAULT) + set(SYSVIEW_BUFFER_SIZE ${SYSVIEW_BUFFER_SIZE_DEFAULT}) + else () + set(SYSVIEW_BUFFER_SIZE 4096) + endif () endif () if (NOT DEFINED SYSVIEW_RAM_BASE) # A family whose SRAM does not start at the Cortex-M-canonical 0x20000000 (SEGGER's diff --git a/hw/bsp/imxrt/family.cmake b/hw/bsp/imxrt/family.cmake index 009b15da3..132e3bd5a 100644 --- a/hw/bsp/imxrt/family.cmake +++ b/hw/bsp/imxrt/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + include_guard() set(MCUX_CORE ${TOP}/hw/mcu/nxp/mcuxsdk-core) diff --git a/hw/bsp/nrf/family.cmake b/hw/bsp/nrf/family.cmake index fba5e6e69..579716378 100644 --- a/hw/bsp/nrf/family.cmake +++ b/hw/bsp/nrf/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + include_guard() set(NRFX_PATH ${TOP}/hw/mcu/nordic/nrfx) diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake index 57be416a2..281fa64b6 100644 --- a/hw/bsp/rp2040/family.cmake +++ b/hw/bsp/rp2040/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + cmake_minimum_required(VERSION 3.13) include_guard(GLOBAL) diff --git a/hw/bsp/samd5x_e5x/family.cmake b/hw/bsp/samd5x_e5x/family.cmake index bb022ab76..4e259ae0a 100644 --- a/hw/bsp/samd5x_e5x/family.cmake +++ b/hw/bsp/samd5x_e5x/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + include_guard() include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake) diff --git a/hw/bsp/stm32f4/family.cmake b/hw/bsp/stm32f4/family.cmake index 0d3d9ec93..b2aa60973 100644 --- a/hw/bsp/stm32f4/family.cmake +++ b/hw/bsp/stm32f4/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + include_guard() set(ST_FAMILY f4) diff --git a/hw/bsp/stm32f7/family.cmake b/hw/bsp/stm32f7/family.cmake index d405753d4..342a59374 100644 --- a/hw/bsp/stm32f7/family.cmake +++ b/hw/bsp/stm32f7/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + include_guard() set(ST_FAMILY f7) diff --git a/hw/bsp/stm32h7/family.cmake b/hw/bsp/stm32h7/family.cmake index 8b6086356..e2a7376e0 100644 --- a/hw/bsp/stm32h7/family.cmake +++ b/hw/bsp/stm32h7/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + include_guard() set(ST_FAMILY h7) diff --git a/hw/bsp/stm32u5/family.cmake b/hw/bsp/stm32u5/family.cmake index c580892b8..2a3a583da 100644 --- a/hw/bsp/stm32u5/family.cmake +++ b/hw/bsp/stm32u5/family.cmake @@ -1,3 +1,7 @@ +# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size +# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md) +set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536) + include_guard() set(ST_FAMILY u5) |
