Commit Graph

60 Commits

Author SHA1 Message Date
Alexey Lapshin
b3ae652f21 feat(build): add CONFIG_COMPILER_CXX_ATOMIC_LOCK_POLICY option
libstdc++ selects between a lock-free and a mutex-based policy for
std::shared_ptr reference counting based on this macro. Enabling this
option forces the lock-free policy, which avoids pulling in the
mutex-based implementation and can reduce code size.

Note: the lock-free policy avoids embedding a mutex in each control
block, saving about 88 bytes per shared_ptr, and improves performance
by using atomic operations instead of mutex locking.

Note: this option changes the ABI of libstdc++ atomic/shared_ptr
helpers. It can be incompatible when linking against prebuilt
libraries that were compiled without it, leading to link errors or
undefined runtime behavior. Only enable it if all C++ objects and
libraries in the build use the same setting.
2026-07-23 18:20:25 +07:00
Marius Vikhammer
d21dc8ca2e feat(freertos): added option for automatically placing task stacks in PSRAM
When CONFIG_FREERTOS_PLACE_TASK_STACKS_IN_EXT_RAM is enabled freertos will
now automatically allocate task stacks to PSRAM.
2026-06-04 16:06:52 +08:00
Shen Mengjing
0aeccc1adf docs: Update CN translations for ram-usage.rst and log.rst 2026-04-22 14:36:22 +08:00
Guillaume Souchere
0cba1db0ed fix(esp_log): add Kconfig to optionally bypass esp_rom_vprintf
In Log V2, ESP_LOG macros are using the runtime
constrained-environment path in esp_log_vprintf() reference
esp_rom_vprintf as the fallback formatter. On chips where ets_vprintf
is not in ROM (all targets except ESP32-S2 and ESP32-C2), this pulls
~1.2 KB of printf implementation into IRAM.

Add a new Kconfig option LOG_API_CONSTRAINED_ENV_SAFE (default y) that
controls whether this IRAM-resident fallback is used:

Also update the logging and RAM-usage documentation accordingly.

Closes https://github.com/espressif/esp-idf/issues/18346
2026-04-07 12:00:51 +02:00
Marius Vikhammer
60320ff0e9 docs: update picolibc as default C library, remove experimental references
Made-with: Cursor
2026-03-11 11:24:53 +08:00
Shen Mengjing
df1af52cc4 docs: Sync the CN transation and EN source 2026-02-24 10:58:19 +08:00
Guillaume Souchere
0c570d860d feat(esp_event): Add option to allocate event loop in external RAM 2026-01-08 10:38:43 +01:00
Euripedes Rocha Filho
448714b056 remove(mqtt): Moves esp-mqtt to component manager
esp-mqtt is now a managed component at espressif/mqtt
2025-11-11 09:21:37 +01:00
C.S.M
c81cf3bdf6 refactor(spi_flash): Remove spi_flash rom driver patch config option 2025-10-22 10:37:19 +08:00
Marius Vikhammer
926817e872 docs(freertos): fixed stack watermark documentation bytes vs words issue
Upstream freertos reports stack sizes in words, while IDF-kernel uses bytes.
2025-09-10 08:50:16 +08:00
Alexey Lapshin
b266d829dd change(newlib): enable LIBC_OPTIMIZED_MISALIGNED_ACCESS by default 2025-08-22 13:46:43 +08:00
Zhang Shuxian
5b11b017a9 docs: Update CN translation for IRAM-related docs 2025-08-19 11:35:02 +08:00
Sudeep Mohanty
fe2ee39a99 feat(esp_ringbuf): Place Ring buffer in flash by default
The following updates have been made in this commit:
- The commit places ring buffer code in flash memory by default.
- CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH has been removed.
- CONFIG_RINGBUF_IN_IRAM is added and can be used to restore the
  previous memory placement.
2025-08-07 19:56:30 +08:00
Sudeep Mohanty
26c19928a9 feat(freertos): Place FreeRTOS in flash by default
The following updates have been made in this commit:
- The commit places FreeRTOS code in flash memory by default.
- CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH has been removed.
- CONFIG_FREERTOS_IN_IRAM is unhidden and can be used to restore the
  previous memory placement.
- A test has been added for users to conduct performance impact testing
  based on memory placement configurations.
2025-08-07 19:56:30 +08:00
Marius Vikhammer
a89fc6d905 Merge branch 'docs/core_docs_new_targets' into 'master'
docs(core): updated core docs for new targets

Closes IDF-10159, IDF-10162, IDF-10171, IDF-12148, IDF-12150, IDF-12151, IDF-12152, IDF-12156, and IDF-12157

See merge request espressif/esp-idf!37860
2025-03-20 19:56:18 +08:00
shenmengjing
c60cf668cf docs: Sync CN ram-usage.rst and EN source 2025-03-20 11:08:23 +08:00
Marius Vikhammer
034f677563 docs(misc): update system docs for new chips 2025-03-20 09:01:11 +08:00
Marius Vikhammer
20bbd2af42 feat(newlib): add option for placing newlib lock API into flash 2025-03-11 09:33:58 +08:00
C.S.M
8f371a5004 docs(spi_flash): Add docs for spi_flash IRAM usage 2025-02-26 18:29:35 +08:00
Zhang Shuxian
d518d110c0 docs: Review the CN translation for Picolibc 2024-12-11 16:24:17 +08:00
Alexey Lapshin
888b5f7e8d feat(newlib): add picolibc support 2024-12-02 21:35:56 +07:00
Erhan Kurubas
b4f366f56f change(esp_system): do not include openocd stub bins by default 2024-11-12 14:04:17 +01:00
renpeiying
46770a50a6 docs: standardize the names of bootloaders in esp-idf 2024-10-23 11:29:24 +08:00
Erhan Kurubas
f4eec4da48 feat(esp_system): preload openocd stub binaries and reserve memory for debugging 2024-09-26 20:16:04 +02:00
Erhan Kurubas
9b38f87781 Revert "Merge branch 'add_openocd_stub_bins' into 'master'"
This reverts merge request !31504
2024-08-09 22:49:43 +02:00
Erhan Kurubas
c7931b0782 feat(esp_system): preload openocd stub binaries and reserve memory for debugging 2024-08-08 23:25:26 +02:00
Guillaume Souchere
d98b0c497a docs(performance): Add esp32p4/c5 relevant information to the performance guides
in speed.rst:
- add startup time increase info when spiram test is enabled
- add startup time increase info when spiram is enabled and
  poisoning comprehensive is enabled
- add L2 cache variable size info to optimize IRAM space / cache misses
- update sections refencing bluetooth/wifi built-in tasks to not show
  related info for p4 targets.
- Add IDF_TARGET_RF_TYPE for esp32c5

in ram-usage.rst:
- add L2 cache variable size info to maximize RAM space

Remove the files from esp32c5.txt and esp32p4.txt
that are no longer in need of update.
2024-05-20 09:40:05 +02:00
shenmengjing
a55e6c0eb6 docs: Update the CN Translation for ram-usage.rst 2024-04-30 23:32:22 +08:00
Alexey Lapshin
e1946b6446 feat(docs): update reducing stack size article 2024-04-30 23:32:22 +08:00
laokaiyao
fc000cd7b7 ci(doc): enable doc build for esp32c5 2024-04-18 19:39:29 +08:00
Jiang Jiang Jian
59417a4049 Merge branch 'feature/free_bt_memory' into 'master'
feat(bt): Frees BLE memory when no longer in use

See merge request espressif/esp-idf!22795
2023-10-12 18:35:15 +08:00
zhaokeke
a39869416c feat(bt): Frees BLE memory when no longer in use
It will free libble.a & libbt all txt, data and bss segment memory.
This memory is combined into one large memory and put into the heap
pool.
2023-10-08 16:08:47 +08:00
Darian Leung
9968a48c36 refactor(freertos/task_snapshot): Make task snapshot private
Task snapshot API were never intended to be called from user code. This commit
makes task snapshot a private API thus moves `#include "freertos/task_snapshot.h"`
to `#include "esp_private/freertos_debug.h"`.

Task snapshot related Kconfig options have also been hidden.

Note: Added 'freertos_common' mapping to ldgen mapping execptions lists due to
inlining of 'freertos_debug.h' functions.
2023-10-07 13:14:55 +08:00
zhangwenxu
60bb5b0d99 feat(openthread): Add support to allocate message pool from PSRAM 2023-09-14 15:14:07 +08:00
caixinying-git
d47457b29b docs: provide CN translation for api-guides/performance/ram-usage.rst 2023-07-25 19:04:41 +08:00
Vikram
e3584c5dd0 Added description to disable coredump logs to ram_usage.rst
Signed-off-by: Vikram <vikram.dattu@espressif.com>
2023-06-28 06:46:32 +00:00
wanlei
15e8c04f7b spi: change linker file let spi hal able to out from iram 2023-04-21 18:58:36 +08:00
Suren Gabrielyan
36a5f898ba docs: migrated documentetation from github.io to docs.espressif.com 2023-04-19 12:33:40 +04:00
Marius Vikhammer
6acd082cc8 Merge branch 'docs/iram_sram_config' into 'master'
docs: update CONFIG_ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM docs to better reflect the limitations

See merge request espressif/esp-idf!23158
2023-04-17 11:51:05 +08:00
Guillaume Souchere
48932ce910 Merge branch 'feature/heap-in-flash' into 'master'
heap: Add a configuration that places all the heap component in flash

Closes IDF-7143 and IDF-2853

See merge request espressif/esp-idf!23050
2023-04-13 14:38:15 +08:00
Marius Vikhammer
dcb8b719d3 docs: update CONFIG_ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM docs to better reflect the limitations 2023-04-13 10:45:38 +08:00
Guillaume Souchere
110aac240d heap: Add a configuration that places all the heap component and related functionalities in flash when enabled
Add test configuration to run all tests with heap component in the flash.
Add reference to this new configuration in performance section of the documentation.
2023-04-12 08:11:24 +02:00
Marius Vikhammer
5cbd311ecf system: add kconfig option for using parts of SRAM1 for IRAM
Using parts of SRAM1 for IRAM allows apps with more statically allocated IRAM

Closes https://github.com/espressif/esp-idf/issues/9824
2023-04-07 07:12:58 +00:00
Jakob Hasse
a44671c11a doc: remove left-over legacy event loop docs 2023-03-17 15:37:26 +08:00
Armando
75629ee6a8 spi_flash: added programming guide for ESP-IDF vs ESP-ROM flash driver 2023-03-09 14:55:13 +08:00
Sudeep Mohanty
372d2310c9 docs: Updated api_guides/performance chapters for esp32c6 and esp32h2
This commit updates the api_guides/performance chapters for esp32c6 and
esp32h2.
2023-02-16 09:08:46 +01:00
Kapil Gupta
30a2558450 esp_wifi: Merge wpa_supplicant and esp_wifi Kconfig 2023-02-11 07:38:45 +08:00
Cao Sen Miao
0f8f13d21d spi_flash: only link flash vendor which is officially supported to save IRAM 2023-02-09 10:28:54 +08:00
Ivan Grokhotkov
07fe9caba0 docs: mention that increasing ESP32_REV_MIN can reduce IRAM size 2022-11-03 11:08:01 +01:00
Marius Vikhammer
fd37129651 esp_ringbuf: placement in flash is no longer controlled by CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH
esp-ringbuf funtion placement is now controlled by its own configs:
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH and CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH

Closes https://github.com/espressif/esp-idf/issues/9198
2022-07-11 09:24:20 +08:00