Commit Graph
100 Commits
Author SHA1 Message Date
Guillaume Souchere 13d44cbba6 fix(heap): Do not consider newly registered heap in minimum free size calcualtion
After startup is done and app_main is reached, all calls to
heap_caps_add_region_with_caps (adding a new heap to the list of registered
heaps) will not affect the minimum free heap size value.

For heaps created before startup, this won't apply and their size will
end up being taken into account in the calculation of the minimum.
2026-05-29 07:56:58 +02:00
Guillaume Souchere 3e293035e3 fix(esp_system): PSRAM stack crash in esp_restart_noos on RISC-V chips
On RISC-V chips with SPIRAM support (esp32c5, esp32c61, esp32h4, esp32p4,
esp32s31), esp_restart_noos() was disabling the cache while the current
stack pointer could still be in external RAM. Any stack access after cache
disable (function call, local variable spill) would then fault with
"Cache disabled but cached memory region accessed".

Xtensa chips (esp32, esp32s2, esp32s3) already had this guard via the
SET_STACK macro. Add the equivalent for RISC-V:

- Add rv_utils_set_sp() to riscv/rv_utils.h (plain "mv sp, %0" with a
  memory clobber; no window register management needed on RISC-V)
- In each affected system_internal.c, under
  CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM, check whether the current
  SP is in PSRAM and if so switch it to the top of internal BSS before
  any cache disable or writeback operation
- Fix xTaskCreateStaticPinnedToCore() stack size argument in the
  spiram_stack test (was passing bytes instead of word count)
- Mark the null-pointer write in func_do_exception() as volatile to
  prevent the compiler from optimizing it away
- Extend the [spiram_stack] tests to RISC-V by sharing fibonacci() and
  the task/finish helpers across architectures, guarding only the
  Xtensa-specific WINDOWBASE/WINDOWSTART prints
2026-05-15 14:00:36 +08:00
Guillaume Souchere 0f55e74956 fix(heap): Remove unused variable in test_malloc_caps.c 2026-05-12 13:22:06 +02:00
Guillaume Souchere 9950431dfa fix(esp_rom): Set poison check hook for tlsf_walk_pool patch 2026-05-12 08:54:27 +02:00
Guillaume Souchere 3d53abc3a7 feat(console): Add max_cmdline_args to esp_console_repl_config_t 2026-05-11 08:16:03 +02:00
Guillaume Souchere ed9eefd94b fix(mbedtls): compile esp_mem.c in IDF component lib instead of builtin target
esp_mem.c in the builtin target via
target_sources(builtin PRIVATE ...) called from the parent CMakeLists.
This cross-directory source injection causes CMake's Ninja generator on
Windows to produce unstable TARGET_PDB/RSP_FILE paths across
reconfigures, changing the ninja command hash and forcing a re-archive
of libmbed-builtin.a on every cmake run — even when no source changed.
This broke test_rebuild_source_files.

Fix by adding esp_mem.c to the IDF mbedtls component library
(mbedtls_srcs) instead. The final ELF link uses --start-group, so
builtin's platform.o resolves esp_mbedtls_mem_calloc/free from the
component library regardless of archive order. esp_mem.c is IDF-specific
code (heap_caps_calloc, sdkconfig.h) and belongs in the port layer, not
in any submodule target.
2026-05-04 09:02:53 +02:00
Guillaume Souchere 67b258d55a Merge branch 'fix/console-deinit-test-threshold' into 'master'
fix(console): Update the leak threashold after struct update in intr_alloc.c

See merge request espressif/esp-idf!42809
2025-10-24 04:28:12 +02:00
Guillaume Souchere 018cd86846 fix(console): Update the leak threashold after struct update in intr_alloc.c 2025-10-22 09:24:40 +02:00
Guillaume Souchere 75305c2719 Merge branch 'feat/make-use-of-exec-cap-compile-time-error' into 'master'
feat(heap): Make MALLOC_CAP_EXEC illegal use a compile time error

Closes IDFGH-14014 and IDF-11690

See merge request espressif/esp-idf!34903
2025-10-06 13:34:16 +02:00
Guillaume Souchere 7a24a8aef6 Merge branch 'fix/console-coverity-findings' into 'master'
fix(console): Remove dead code findings from coverity

Closes IDF-13098 and IDF-13134

See merge request espressif/esp-idf!42324
2025-10-01 08:39:12 +02:00
Guillaume Souchere b6b7337f5b fix(console): Remove dead code findings from coverity 2025-09-30 09:31:34 +02:00
Guillaume Souchere 0f3f44be62 feat(heap): Add hidden Kconfig option to allow exec cap 2025-09-29 10:45:33 +08:00
Guillaume Souchere da9d8a143a feat(heap): Report prohibited usage of MALLOC_CAPS_EXEC at compile time
Add a condition on the definition of the MALLOC_CAP_EXEC macro to
prevent it from being defined if ESP_SYSTEM_MEMPROT_FEATURE or
ESP_SYSTEM_PMP_IDRAM_SPLIT is enabled, thus throwing a compile time
error when using it.

Closes https://github.com/espressif/esp-idf/issues/14837
2025-09-29 10:45:32 +08:00
Guillaume Souchere 4c589d6282 Merge branch 'feat/add-ringbuf-reset' into 'master'
feat(esp_ringbuf): Add vRingbufferReset

Closes IDFGH-16385

See merge request espressif/esp-idf!41717
2025-09-24 10:11:07 +02:00
Guillaume Souchere cdef6dce44 Merge branch 'feat/allow-adc-unit-2-ulp' into 'master'
feat(ulp): Allow usage of ADC unit 2 on RISCV co processor

Closes IDFGH-16376

See merge request espressif/esp-idf!41863
2025-09-23 10:00:16 +02:00
Guillaume Souchere 1798034d3f feat(tools): Remove old copy of Catch2 in tools 2025-09-23 08:49:58 +02:00
Guillaume Souchere c03987ca49 feat(esp_ringbuf): Update vRingbufferReset to return an error
when items are not sent, complete or returned, make the function
return an error instead of checking the state in an assert.
2025-09-23 08:42:09 +02:00
Guillaume Souchere 1e0463673b feat(ulp): Allow usage oof ADC unit 2 on RISCV co processor 2025-09-22 12:38:37 +02:00
Guillaume Souchere ce9563d85c Merge branch 'fix/argtable3-coverity-findings' into 'master'
fix(console): Add input validation in arg_utils.c functions

Closes IDF-13986 and IDF-13987

See merge request espressif/esp-idf!41736
2025-09-22 09:45:44 +02:00
Guillaume Souchere f8cb539e29 feat(heap): Update test to CMake and use Catch2 component 2025-09-18 10:07:08 +02:00
Guillaume Souchere 903d613a4e feat(esp_gdbstub): Update test to CMake and use Catch2 component 2025-09-18 10:07:08 +02:00
Guillaume Souchere dea3fd2ceb fix(console): Add input validation in arg_utils.c functions 2025-09-04 08:33:44 +02:00
Guillaume Souchere 5ee5280195 fix(esp_vfs_console): Update placement of cdcacm_xx_cb when ETS print enabled 2025-08-06 12:13:24 +02:00
Guillaume Souchere 361c1b1fd6 Merge branch 'fix/linenoise-arrow-usage' into 'master'
fix(linenoise): Read escape sequences one character at a time

Closes IDFGH-15849

See merge request espressif/esp-idf!40601
2025-07-18 08:57:15 +02:00
Guillaume Souchere b46f4689bd fix(linenoise): Read escape sequences one character at a time 2025-07-16 08:28:22 +02:00
Guillaume Souchere fd9b2fab3a Merge branch 'fix/tcm-mem-not-considered-in-esp_ptr_eexecutable' into 'master'
fix(memory-utils): Check TCM in esp_ptr_internal and esp_ptr_byte_accessible

Closes IDFGH-15339 and IDFGH-15337

See merge request espressif/esp-idf!39388
2025-06-19 10:09:40 +02:00
Guillaume Souchere 2f4c5d278e Merge branch 'feat/remove-unecessray-condition-in-usj-read' into 'master'
fix(driver): remove unecessary if conditions in the read function

Closes IDF-13166

See merge request espressif/esp-idf!39523
2025-06-17 14:19:38 +02:00
Guillaume Souchere 740762c997 feat(usb_serial_jtag): Update vfs read to be POSIX compliant
The function now returns with available data in blocking mode
instead of waiting for the requested size to be available before
returning.
2025-06-13 07:58:22 +02:00
Guillaume Souchere 81b93828cf Merge branch 'change/update-esp-event-register-doxygen' into 'master'
change(esp-event): Update the doxygen comment of esp_event_handler_register

Closes IDF-13368

See merge request espressif/esp-idf!39819
2025-06-12 15:01:41 +02:00
Guillaume Souchere 2a17297d66 change(esp-event): Update the doxygen comment of esp_event_handler_register
Add a comment to specify what happens when registering a handler several times
to the same event.
2025-06-12 08:23:20 +02:00
Guillaume Souchere 139df47cf3 feat(usb_cdc): Update vfs read() to comply with POSIX standards 2025-06-06 11:41:26 +02:00
Guillaume Souchere 24048d8267 feat(usb_serial_tag_vfs): Add test for read exit conditions
Add a test to make sure the VFS read does not return on reception
of the \n character
2025-06-05 12:14:50 +02:00
Guillaume Souchere a3270694f0 fix(driver): remove unecessary if conditions in the read function
This changes affect usb_serial_jtag_vfs and cdcacm_vfs read functions.
This commit removes the exit condition on reception of \n character.
2025-06-03 12:04:14 +02:00
Guillaume Souchere 83f28973be Merge branch 'docs/document-task-tracking' into 'master'
docs(heap): Document heap task tracking

Closes IDF-12684

See merge request espressif/esp-idf!38247
2025-04-30 16:27:36 +08:00
Guillaume Souchere 0627576982 docs(heap): Document heap task tracking
Populate the heap_debug.rst section on heap task tracking with the
description of the reworked task tracking.
2025-04-29 10:11:58 +02:00
Guillaume Souchere 826c69f13b Merge branch 'feat/heap-get-size-from-any-pointer' into 'master'
feat(heap): add API to get allocated size from any pointer

Closes IDF-12764

See merge request espressif/esp-idf!34531
2025-04-28 15:53:37 +08:00
Guillaume Souchere 8a987d9288 feat(heap): Update get allocated size function to take any pointer 2025-04-25 09:50:15 +02:00
Guillaume Souchere 4019e77441 Merge branch 'feat/heap-update-to-latest-tlsf' into 'master'
fix(heap): Update to latest TLSF fix

See merge request espressif/esp-idf!38301
2025-04-24 16:10:58 +08:00
Guillaume Souchere 1de60605c1 Merge branch 'fix/console-deinit-deadlock-default-read' into 'master'
fix(console): Default read_func to the read function

See merge request espressif/esp-idf!38299
2025-04-09 18:44:56 +08:00
Guillaume Souchere 76f777c0e5 feat(heap): Update to latest TLSF
- this new version of TLSF uses uintptr_t instead of unsigned int
  casting in tlsf_malloc_addr to allow proper use of the function
  on 64bit targets.
2025-04-08 10:51:11 +02:00
Guillaume Souchere bd7814c93a fix(console): Default read_func to the read function
To make sure the static function pointer read_func is never NUL,
set its default value to th read function instead of setting it
to NULL pointer.
2025-04-08 08:52:47 +02:00
Guillaume Souchere 24df1d2128 Merge branch 'fix/example-tusb-msc-console-exit' into 'master'
fix(tinyusb): Update console exit mechanism in tusb_msc example

Closes IDF-12791

See merge request espressif/esp-idf!38172
2025-04-04 14:05:55 +08:00
Guillaume Souchere e4e2a83e2f Merge branch 'fix/console-deinit-deadlock' into 'master'
fix(console): Deadlock on console deletion

Closes IDFGH-9188, IDFGH-8520, and IDF-6906

See merge request espressif/esp-idf!30920
2025-04-04 13:56:03 +08:00
Guillaume Souchere 8f0e9f038b fix(tinyusb): Update console exit mechanism in tusb_msc example 2025-04-03 10:06:59 +02:00
Guillaume Souchere 30f8b59ed0 feat(console): Make console deinit optional 2025-04-03 10:06:01 +02:00
Guillaume Souchere 8a89dc0b9c feat(vfs): Add linux target support for esp_vfs_eventfd 2025-04-03 10:06:01 +02:00
Guillaume Souchere 203b3b5a4e fix(console): Memory leaks after deinit 2025-04-03 10:06:01 +02:00
Guillaume Souchere 5b2f2e05f3 fix(console): add ability to unblock linenoise, to fix deadlock
Closes https://github.com/espressif/esp-idf/pull/10580
Closes https://github.com/espressif/esp-idf/issues/9974
2025-04-03 10:06:00 +02:00
Guillaume Souchere 6ef7ad67d4 Merge branch 'feat/per-task-peak-usage' into 'master'
feat(heap): Add per task peak heap usage feature

Closes IDF-1811 and IDFGH-11277

See merge request espressif/esp-idf!26462
2025-03-26 15:20:04 +08:00
Guillaume Souchere d429b1fdbb feat(examples): Update heap task tracking examples
update example to showcasee the new API of heap task tracking

- Add basic heap task traacking example
- Add advanced example for task tracking
2025-03-25 10:22:30 +01:00
Guillaume Souchere daf8f9edb6 feat(heap): Add feature to get peak heap usage
This feature keeps track of the per task peak memory usage.

- Update the heap_task_tracking example to make use of the new feature
Cleanup the implementation:
- multi_heap_get_free_size() is never used, remove it.
- Minor update in heap_caps_update_per_task_info_xx() funcitons.
- Update settting on block owner in heap_caps.c to work with the
get peak usage feature.

- Update heap_caps_update_per_task_info_free() to detect when it
is called to delete the memory allocated for a task TCB. Mark
the corresponding task in the statistic list as deleted.

- Add a Kconfig option dependant on HEAP_TASK_TRACKING being enabled
that force the deletion of the statistics related to deleted task
when set to true.

- In task tracking feature, add a current and peak memory usage
to the heap_stat_t structure to keep track of the current and
peak memory usage of the given task across all heaps.

- Fix missing block owner when allocating memory for heaps_array
in heap_caps_init.

- Keep the original implementation of the task tracking
for backward compatibility reasons.
2025-03-24 12:08:48 +01:00
Guillaume Souchere 063d673fae Merge branch 'fix/memory-utils-esp_ptr_in_rtc_dram_fast' into 'master'
fix(esp_hw_support): esp_ptr_in_rtc_iram_fast check to return false

Closes IDFCI-2717

See merge request espressif/esp-idf!36930
2025-03-13 20:05:46 +08:00
Guillaume Souchere 8c50df00ff fix(esp_hw_support): esp_ptr_in_rtc_iram_fast check to return false
esp_ptr_in_rtc_iram_fast logic should be executed if
SOC_RTC_FAST_MEM_SUPPORTED is set but it should also be executed
if IRAM and DRAM region mapping is the same. Remove the
SOC_RTC_IRAM_LOW != SOC_RTC_DRAM_LOW part of the check.

Update heap component to use the modify function appropriately.
2025-03-11 12:06:32 +01:00
Guillaume Souchere 7e93f4b5ed Merge branch 'fix/memory-utils-ptr-executable' into 'master'
fix(memory-utils): Missing case in esp_ptr_executable logic

Closes IDF-12458

See merge request espressif/esp-idf!36904
2025-02-19 15:27:11 +08:00
Guillaume Souchere 92d575379f fix(memory-utils): Missing case in esp_ptr_executable logic
esp_ptr_executable does not consider that the PSRAM and FLASH
memory mapping are not always matching.

Added a "pointer is in PSRAM" specific check in the logic to
fix the issue.
2025-02-13 07:56:58 +01:00
Guillaume Souchere 5a0e1615d9 Merge branch 'fix/usb-cdc-non-blocking-read' into 'master'
fix(esp_vfs_console): USB CDC read when non blocking

See merge request espressif/esp-idf!36469
2025-02-05 14:30:15 +08:00
Guillaume Souchere ae7c8691d9 fix(esp_vfs_console): USB CDC read when non blocking
In non blocking mode, the read function is expected
to return weather data is available for reading or not.

In case data are available but the size does not match
the expected size, the function read should return whatever
data is available.

Previously, the function was returning -1 with errno set
to EWOULDBLOCK even if the size of data in the buffer was
less than the requested size. It would only return the
available data if the size in the buffer was greater or equal
to the requested size.

The implementation of cdcacm_read is modified to return the avilable
data from the buffer even is the size is lesser than the requested
size.
2025-01-30 08:51:54 +01:00
Guillaume Souchere 82f558b47a Merge branch 'fix/esp-event-profiling' into 'master'
fix(esp_event): Fix event loop profiling in handler_execute function

Closes IDFGH-14245

See merge request espressif/esp-idf!35735
2025-01-30 15:42:21 +08:00
Guillaume Souchere 15f6775f5d fix(esp_event): Handler unregistration by itself issue
when esp_event_handler_unregister_with_internal cannot take
the loop mutex (e.g., when the handler unregisters itself),
create an event with a special base identifier and add it to
the queue of the corresponding loop to postpone the removal
of the handler from the list at a time when the loop mutex can be
successfully taken.
2025-01-29 13:37:27 +01:00
Guillaume Souchere d8d3c50b3f fix(esp_event): Fix event loop profiling in handler_execute function
handler_execute function is looking to match the handler only in the
list of loop events but does not look in the base event handler list
nor the id event handler list. So unless the event handler is
registered to be triggered for all event bases and all event ids of
an event loop, its profiling fields (invoked and time) are not updated
when it is called.

This commit updates the search for the matching handler to also look
in base event list and ID event list.

Closes https://github.com/espressif/esp-idf/issues/15041
2025-01-29 13:17:00 +01:00
Guillaume Souchere 4d11fe5847 Merge branch 'fix/memory-utils-unused-var' into 'master'
fix(esp_hw_support): Unused variables in memory_utils functions

See merge request espressif/esp-idf!36295
2025-01-15 14:05:01 +08:00
Guillaume Souchere e2b7cce13c fix(esp_hw_support): Unused variables in memory_utils functions 2025-01-10 11:05:50 +01:00
Guillaume Souchere c80ba4023d Merge branch 'fix/heap-allocate-in-rtc-iram' into 'master'
fix(heap): MALLOC_CAP_EXEC does not allocate in RTC IRAM

Closes IDFGH-14012

See merge request espressif/esp-idf!34750
2024-12-12 18:51:52 +08:00
Guillaume Souchere a995a5339b fix(heap): MALLOC_CAP_EXEC does not allocate in RTC IRAM
This commit fixes the issue when trying to allocate memory
with the MALLOC_CAP_EXEC in RTC memory. Prior to the fix,
the heap allocator was returning an address in RTC DRAM.

To fix this issue:
- modified memory_layout.c of the concerned targets to fill the iram_address
field in the rtc entry of the soc_memory_region array properly.
- modified heap component  related functions to return IRAM address when
an allocation in RTC memory with MALLOC_CAP_EXEC is requested.

Closes https://github.com/espressif/esp-idf/issues/14835
2024-12-09 09:34:56 +01:00
Guillaume Souchere 1fa268c7ef Merge branch 'feat/usb-cdc-select' into 'master'
feat(usb_cdc): Add select functionality to the driver

Closes IDF-10281

See merge request espressif/esp-idf!31686
2024-11-27 13:37:37 +08:00
Guillaume Souchere e4501b375a Merge branch 'fix/memprot-config-used-in-memory-layouts' into 'master'
fix(heap): Fix wrong config to enable MALLOC_CAP_EXEC in memory_layout.c

Closes IDFGH-14013

See merge request espressif/esp-idf!35098
2024-11-26 16:05:10 +08:00
Guillaume Souchere 9eeee92d6b Merge branch 'fix/esp-log-put-function-in-iram' into 'master'
fix(log): Modified linker script to move functions from flash to iram

Closes IDFGH-13682 and IDFGH-13838

See merge request espressif/esp-idf!34038
2024-11-26 14:29:43 +08:00
Guillaume Souchere 181c903b0b feat(usb_cdc): Add select functionality 2024-11-26 06:12:37 +01:00
Guillaume Souchere 793382107f fix(heap): Fix wrong config to enable MALLOC_CAP_EXEC in memory_layout.c
In esp32c2 and esp32c61 memory_layout.c files, the config used to allow
MALLOC_CAP_EXEC was CONFIG_ESP_SYSTEM_MEMPROT_FEATURE when
CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT should be used.

Closes https://github.com/espressif/esp-idf/issues/14836
2024-11-25 11:46:02 +01:00
Guillaume Souchere d73ed3f1d8 fix(log): fix file name for esp_log_level_get_timeout 2024-11-25 11:39:38 +01:00
Guillaume Souchere ab3d179f53 Merge branch 'feat/sort-heaps-by-size' into 'master'
feat(heap): Sort list of registered heap by increasing size

Closes IDFGH-12587

See merge request espressif/esp-idf!33572
2024-11-25 14:44:19 +08:00
Guillaume Souchere 2a9a41886c feat(heap): Sort list of registered heap by increasing size
For a given group of heaps sharing the same capabilities, it is
best to use smaller heaps first when performing "small" allocations
to keep the bigger heaps untouched. This prevents the scenario where
a series of small allocations would crowd the bigger heaps making
any bigger allocation fail for lack of space.

Closes https://github.com/espressif/esp-idf/issues/13588
2024-11-21 11:02:19 +01:00
Guillaume Souchere 0564e9d488 Merge branch 'docs/update-heap-corruption-section' into 'master'
docs(heap_debug): Add missing information

See merge request espressif/esp-idf!32972
2024-11-20 17:25:39 +08:00
Guillaume Souchere 8e06c4ca6a docs(heap_debug): Add missing information
- Place the section on alloc failed hook at a better place
- Add reference to the different poisoning configs at the beginning
  of the heap corruption detectino section
- Update the information concerning heap tracing
- Update the heap tracing log examples
- Fix heap tracing standalone code:
  - Update the logging format in heap_trace_dump_base
  - Add freed field in trace stucture to keep this info even
    when no call stack is available
2024-11-19 10:25:40 +01:00
Guillaume Souchere b6be76f53b Merge branch 'fix/typo-esp-rom' into 'master'
fix(esp_rom): Fix comment typos

Closes IDFGH-13635

See merge request espressif/esp-idf!34849
2024-11-13 13:42:03 +08:00
Guillaume Souchere 7b72c32fec Merge branch 'feat/usb-serial-jtag-select' into 'master'
feat(usb_serial_jtag): Add select functionality to the driver

Closes IDF-7415 and IDFGH-8509

See merge request espressif/esp-idf!30919
2024-09-24 19:28:51 +08:00
Guillaume Souchere a43cb17b4d Merge branch 'feat/heap-update-spiram-tests' into 'master'
feat(heap): Update heap tests on external memory

Closes IDF-11257

See merge request espressif/esp-idf!33737
2024-09-24 14:28:47 +08:00
Guillaume Souchere 83d00b154a feat(usb_serial_jtag): Add select functionality to the driver
Implement the select() function in the USB serial JTAG driver.
Add test for the select functionality.

closes https://github.com/espressif/esp-idf/issues/9964
2024-09-23 12:42:07 +02:00
Guillaume Souchere 00c727427c feat(heap): Update heap tests on external memory
Create a specific group "psram" to only run meaningful
tests on the sdkconfig.ci.psram and sdkconfig.ci.psram_all_ext
configuration.

Add test testing that external memory is prioritized when using
MALLOC_CAP_DEFAULT.
2024-09-23 11:32:22 +02:00
Guillaume Souchere 19d512ebee Merge branch 'feat/heap-support-esp32c61' into 'master'
feat(heap): Add support for esp32c61

Closes IDF-9858 and IDF-10989

See merge request espressif/esp-idf!33556
2024-09-20 16:01:20 +08:00
Guillaume Souchere 80eee8214e Merge branch 'feat/support-ringbuffer-esp32c61' into 'master'
feat(ringbuffer): Enable tests for esp32c61

Closes IDF-9266

See merge request espressif/esp-idf!33551
2024-09-19 17:56:00 +08:00
Guillaume Souchere 8ff8b520f3 Merge branch 'feat/update-to-latest-tlsf' into 'master'
feat(heap): Update component to latest TLSF

See merge request espressif/esp-idf!33193
2024-09-19 17:55:38 +08:00
Guillaume Souchere f0903aef6b feat(heap): Add test support for esp32c61 2024-09-19 09:53:45 +02:00
Guillaume Souchere a1b8fc9635 feat(ringbuffer): Enable tests for esp32c61
Add ring buffer support for esp32c61
2024-09-18 08:39:17 +02:00
Guillaume Souchere 200241b9aa feat(heap): Add support for esp32c61 2024-09-16 14:44:57 +02:00
Guillaume Souchere ccd8486462 feat(heap): Update component to latest TLSF
The new TLSF architecture has changed. tlsf.h public API
header is now moved into an include folder. tlsf_common.h
is removed from the repo.

This commit updates the heap component and respective
esp_rom patches to take into account this new
architecture.
2024-09-16 09:02:44 +02:00
Guillaume Souchere 6f37ff7a8f Merge branch 'fix/bootloader-factory-reset-test-app-pin-range' into 'master'
fix(bootloader): Update pin range for factory reset and app test configurations

Closes IDFGH-13623

See merge request espressif/esp-idf!33342
2024-09-06 17:21:38 +08:00
Guillaume Souchere ab4e658af6 fix(bootloader): Update pin range for factory reset and app test
Update the range for pin selection of BOOTLOADER_NUM_PIN_APP_TEST
and BOOTLOADER_NUM_PIN_FACTORY_RESET based on the selected target.

Closes https://github.com/espressif/esp-idf/issues/14508
2024-09-06 07:18:46 +02:00
Guillaume Souchere 9bae186123 Merge branch 'fix/usb-serial-jtag-hangs-on-init' into 'master'
fix(console): USB Serial JTAG freezes when input received before the driver is installed

Closes IDFGH-12989

See merge request espressif/esp-idf!31553
2024-07-01 15:24:26 +08:00
Guillaume Souchere 87b1e45564 fix(console): USB Serial JTAG freezes when input received before init
When data was sent through USB Serial JTAG before the
driver was installed, the bus was malfunctioning. This
was because the interrupt bit for data reception was cleared
regardless of whether data was received or not. Consequently,
usb_serial_jtag_isr_handler_default was not triggered and the
data was never read causing the bus to malfunction.

This commit is modifying usb_serial_jtag_driver_install to
prevent clearing USB_SERIAL_JTAG_INTR_SERIAL_OUT_RECV_PKT and
USB_SERIAL_JTAG_INTR_SERIAL_IN_EMPTY thus allowing the callback
usb_serial_jtag_isr_handler_default to trigger for possible data
exchanged prior to the call to usb_serial_jtag_driver_install.

This commit also modified the while logic in linenoiseProbe to
discard any data that doesn't match the expected chaaracter sequences
to prevent random input from interfering with evaluating whether the
terminal supports escape sequences or not.

See https://github.com/espressif/esp-idf/issues/13940
2024-06-26 06:32:13 +02:00
Guillaume Souchere f7d2423826 Merge branch 'feat/update-memory-layout-c5-mp' into 'master'
feat(heap): support heap and update memory layout on esp32c5-mp target

Closes IDF-9641 and IDF-9358

See merge request espressif/esp-idf!30640
2024-05-22 19:00:21 +08:00
Guillaume Souchere 4b9b8be42b Merge branch 'feat/heap-trace-stop-recording-allocs-but-not-free' into 'master'
feat(heap-trace): Add a pause state to the heap tracing

Closes IDFGH-12836

See merge request espressif/esp-idf!30962
2024-05-22 15:03:48 +08:00
Guillaume Souchere 63b8143e32 docs(heap_debug): Docuement the heap_trace_alloc_pause function
Document the newly introduced heap_trace_alloc_pause function in
the heap tracing section.
2024-05-21 11:37:37 +02:00
Guillaume Souchere 3f366d6e8b feat(heap-trace): Add a pause state to the heap tracing
This commit adds a feature to pause the heap tracing in the
sense that in this state, the heap tracing will no longer
record the new allocations but will continue to monitor
the free() in order to keep track of the status of the
allocations present in the list of records.

See https://github.com/espressif/esp-idf/issues/13803
2024-05-21 10:59:01 +02:00
Guillaume Souchere d5e4f419f3 change(heap): Remove todo of closed ticket in memory_layout.c files
Leftover closed ticket removed from memory_layout.c on
the following targets:
- esp32c5
- esp32c6
- esp32h2
2024-05-21 10:40:22 +02:00
Guillaume Souchere 32559d51d6 change(heap): Update soc_memory_regions on esp32c5
The array of memory regions is simplyfied by using the
macro defined in soc.h (for beta3 and mp respectively).
2024-05-21 10:40:22 +02:00
Guillaume Souchere 78f4474416 fix(soc): Fix ROM stack start for esp32c5-mp
Update the value SOC_ROM_STACK_START to the expected
value from bootloader.ld memory map.
2024-05-21 10:40:22 +02:00
Guillaume Souchere 300deed514 Merge branch 'doc/update-performance-guides-p4-c5' into 'master'
docs(performance): Add P4 and C5 information in the performance guides

Closes IDF-7761 and IDF-9494

See merge request espressif/esp-idf!30362
2024-05-21 14:02:19 +08: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
Guillaume Souchere 1b452481b8 Merge branch 'fix/prompt-erased-by-backspace-in-dumbmode' into 'master'
fix(console): bug where backspace erases the prompt in dumb mode

Closes IDFGH-12508

See merge request espressif/esp-idf!30313
2024-04-19 17:30:58 +08:00