This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 41ad60e47181b88da526654c44805584d7976e48 Author: Marco Casaroli <[email protected]> AuthorDate: Wed Nov 11 11:44:09 2026 +0100 Documentation/rp23xx: Describe the PSRAM heap with SMP. Say that the atomic operations work across the cores only in the SRAM, so with SMP the PSRAM can only be a separate heap, without locks or atomic variables in it. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marco Casaroli <[email protected]> --- Documentation/platforms/arm/rp23xx/index.rst | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Documentation/platforms/arm/rp23xx/index.rst b/Documentation/platforms/arm/rp23xx/index.rst index b1c4fcc8814..3cee327782f 100644 --- a/Documentation/platforms/arm/rp23xx/index.rst +++ b/Documentation/platforms/arm/rp23xx/index.rst @@ -134,13 +134,21 @@ The port offers three options for configuring the heaps to use the external PSRAM, described below. More custom configurations can be used with custom board initialization functions. +The atomic operations of the RP2350 work across the two cores only +in the internal SRAM (RP2350 datasheet, section 2.1.6). In the PSRAM +they exclude only the local core. So with `SMP` only the separate +heap is available (it is the default there), and a lock or an atomic +variable must not be allocated from the `psram` heap: with `SMP` an +atomic operation outside the SRAM never ends. + Use PSRAM and SRAM as a single main heap ---------------------------------------- This option is selected with `RP23XX_PSRAM_HEAP_SINGLE` and requires `MM_REGIONS > 1`, as the PSRAM memory region will be added to the heap. It is also necessary to disable -`MM_KERNEL_HEAP`, as there will only be a single heap. +`MM_KERNEL_HEAP`, as there will only be a single heap. It is +not available with `SMP`. This is the simplest configuration because it will unify the memories into a single main heap. This way you can see the `free` @@ -155,7 +163,8 @@ Use PSRAM as user heap, SRAM as kernel heap ------------------------------------------- This option is selected with `RP23XX_PSRAM_HEAP_USER` and -requires `MM_KERNEL_HEAP` to be set. +requires `MM_KERNEL_HEAP` to be set. It is not available with +`SMP`. The external PSRAM is allocated to the default heap, while the internal SRAM will be used for the kernel heap. This
