92 Commits

Author SHA1 Message Date
Fu Hanxi ddc7e0cdf7 ci: move qemu test cli args alongside test scripts
remove redundant host_test marker
2026-03-26 10:56:15 +01:00
Marius Vikhammer 5f914189c2 ci(core): removed common_components from core test-apps dependencies 2026-01-26 11:47:23 +08:00
igor.udot 4c26ab876b ci: update build-test-rules to use common_components 2026-01-23 10:14:09 +08:00
morris 291554cd09 refactor(global): remove completed todos in the codebase 2025-12-15 22:40:15 +08:00
Marius Vikhammer cd741e995f test(system): restructured system build test test-apps 2025-10-27 09:25:07 +08: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
Darian Leung 589d5b132d feat(esp_ringbuf): Add vRingbufferReset
Function has similar behavior to xQueueReset() where...
    - Buffer is emptied
    - Blocked sender is unblocked

Aslo added associated unit test cases.
2025-09-03 10:55:23 +02:00
Konstantin Kondrashov 3ef17fe231 feat(esp_ringbuf): Fixes full no-split buffer frees item incorrectly
Closes https://github.com/espressif/esp-idf/issues/17466#issuecomment-3209730773
2025-08-27 14:02:20 +03:00
Marek Fiala 9d35d63651 feat(cmake): Update minimum cmake version to 3.22 (whole repository) 2025-08-19 14:44:32 +02: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 8b40eabce8 fix(ringbuf): xRingbufferReceive() crashes for allow-split buffers
This commit adds an assert check to xRingbufferReceive() and
xRingbufferReceiveFromISR() functions to prevent them from being used to
retrieve items from an allow-split buffer. Corresponding documentation
has also been updated.
2025-03-19 14:33:11 +01:00
igor.udot daf2d31008 test: format all test scripts 2025-03-05 12:08:48 +08:00
Konstantin Kondrashov 8155e60edf feat(esp_ringbuf): Update ring buffer doc
Closes https://github.com/espressif/esp-idf/issues/15298
2025-02-06 17:44:14 +02:00
Sudeep Mohanty e81925a681 fix(esp_ringbuf): Fixed no-split ringbuf issue where acquire pointer wraps around
This commit fixes an issue with no-split ring buffers where in the the
buffer did not receive items correctly if the acquire pointer wraps
around before items are sent to it.
2024-12-05 13:06:00 +05:30
Marius Vikhammer 088c742764 fix(ringbuf): fixed logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER
ESP_STATIC_ANALYZER_CHECK was added to remove some static analyzer warning about
null pointer dereferences that should never happen, but the logic was wrong.

We return pdFALSE if prvReceiveGeneric was called with any of the input pointers
as NULL, but pvItem2 and xItemSize2 will only be non-null for split buffers.

Closes https://github.com/espressif/esp-idf/issues/14905
2024-11-19 11:12:39 +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
Sudeep Mohanty 6a82497bdc fix(esp_ringbuf): Fixed a bug where in a no-split buffer received items prematurely
This commit fixes a bug in the no-split buffer which could receive an
item prematurely if the space on the buffer is acquired until the buffer
is full. The commit also adds a unit test for this scenario.

Closes https://github.com/espressif/esp-idf/issues/14568
2024-09-18 13:39:52 +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
Song Ruo Jing 76102f3b0c Merge branch 'bugfix/esp_ringbuf_32_bit_alignment' into 'master'
fix(ringbuf): allow xRingbufferCreateWithCaps to pass in non-32-bit aligned size

Closes DOC-7446

See merge request espressif/esp-idf!33081
2024-08-27 15:46:28 +08:00
Song Ruo Jing 1e6d843e65 fix(ringbuf): allow xRingbufferCreateWithCaps to pass in non-32-bit aligned size 2024-08-26 15:45:14 +08:00
Marius Vikhammer 0d140f38ea fix(system): fixed warnings related to ununsed var if asserts disabled 2024-08-26 10:25:04 +08:00
Jakob Hasse dfbed83426 refactor(esp_ringbuf): Adjusted unit tests so some of them run on Linux 2024-08-12 15:29:41 +02:00
Fu Hanxi 952b0e349e ci: fix .build-test-rules.yml since esp32s2 tests unabled 2024-08-09 14:56:52 +08:00
Alexey Lapshin ed6e497c6f feat(build): add COMPILER_STATIC_ANALYZER option 2024-06-18 14:25:37 +08:00
Guillaume Souchere fe2e1b05ac change(esp_ringbuf): Format pytest_esp_ringbuf.py 2024-03-15 11:22:00 +01:00
fl0wl0w 90d1dcfd76 feat(freertos): Introduced new Kconfig option CONFIG_FREERTOS_NUMBER_OF_CORES
This commit replaces the use of portNUM_PROCESSORS and configNUM_CORES
macros in all of ESP-IDF. These macros are needed to realize an SMP
scenario by fetching the number of active cores FreeRTOS is running on.
Instead, a new Kconfig option, CONFIG_FREERTOS_NUMBER_OF_CORES, has been
added as a proxy for the FreeRTOS config option, configNUMBER_OF_CORES.
This new commit is now used to realize an SMP scenario in various places
in ESP-IDF.

[Sudeep Mohanty: Added new Kconfig option CONFIG_FREERTOS_NUMBER_OF_CORES]

Signed-off-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
2024-02-09 09:11:28 +01:00
Sudeep Mohanty defd3ec220 fix(esp_ringbuf): Updated esp_ringbuf to follow astyle format
This commit updates the esp_ringbuf component to follow astyle
formatting.
2024-01-26 15:20:19 +01:00
Marius Vikhammer b3dd5cb243 docs(ringbuf): fixed mistake in vRingbufferGetInfo API parameter doc 2024-01-15 16:18:49 +08:00
Marius Vikhammer 8fe0f99368 change(system): enabled pthread, ringbuf and event tests 2023-12-21 11:09:42 +08:00
morris 369e423dad change(esp_ringbuf): specify build test dependency 2023-11-07 10:40:00 +08:00
Zim Kalinowski 3589478a9e fix(esp_ringbuffer): Enable build on Linix 2023-10-24 11:30:03 +02:00
Zim Kalinowski fa1a3ce0b5 Merge branch 'refactor/components_linux_compatible' into 'master'
Exclude all currently incompatible components from Linux build

Closes IDF-8318 and IDF-5996

See merge request espressif/esp-idf!25598
2023-10-18 20:17:49 +08:00
Zim Kalinowski 929ba5d414 Merge branch 'bugfix/ringbuf-fix-linux-build' into 'master'
fix(ringbuf): Fixed linux build

See merge request espressif/esp-idf!25771
2023-10-17 23:23:40 +08:00
Jakob Hasse 548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
Chen Yudong 2e11919f70 fix(ci): change build-test-rules files folder 2023-09-20 19:17:06 +08:00
Zim Kalinowski 578d092595 fix(ringbuf): Fixed linux build 2023-09-07 15:33:50 +02:00
Marius Vikhammer 91aaf8b1a0 ci(qemu): temporarily allow qemu tests to fail 2023-07-13 11:16:38 +08:00
Darian Leung 4a15db126a fix(esp_ringbuf): Fix "USE_AFTER_FREE" coverity issue
Fix false positive in coverity where it thinks memory buffers are freed for
statically created ring buffers, leading to a "USE_AFTER_FREE" warning in
vRingbufferDeleteWithCaps().
2023-07-04 21:53:46 +01:00
Darian Leung 7d983fe5a3 esp_ringbuf: Add xRingbufferCreateWithCaps()
This commit adds APIS to create a ring buffer with specific memory caps. The
following APIs have been added:

- xRingbufferGetStaticBuffer()
- xRingbufferCreateWithCaps()
- vRingbufferDeleteWithCaps()
2023-06-26 15:05:29 +08:00
Darian Leung b104b52b0e ringbuf: Fix ordering of StaticRingbuffer_t
When building on linux/host compilers (e.g., GCC), the compiler may add padding
depending on the size and order of the member types.

This commit fixes the ordering or the StaticRingbuffer_t such that it matches
the internal Ringbuffer_t. The "_Static_assert" is always enabled for all
compilers.

Closes https://github.com/espressif/esp-idf/issues/11726
2023-06-25 15:30:19 +08:00
Zim Kalinowski 3050af45a1 ringbuf: enable qemu tests 2023-06-20 13:57:22 +02:00
Marius Vikhammer 1a5e47bd07 ci: fixed test apps overriding pytest configs 2023-04-26 11:07:35 +08:00
Sudeep Mohanty dac48f2a40 esp_ringbuf: Added functions to linker.lf file which can be placed in Flash
This commit adds symbols from the ringbuf.c file which can be placed in
Flash in order to free up IRAM space.
2023-04-03 08:57:56 +02:00
Darian Leung a8b9314353 esp_ringbuf: Clarify behavior when sending items of 0 size
Ring buffers permit sending items of 0 size where:

- No-split/allow-split buffers will send an item (i.e., header) but the item
will have a 0 sized data section
- Byte buffers will simply return pdTRUE

This commit fixes an incorrect assert w.r.t 0 item size in
xRingbufferSendAcquire() and also adds a note to the API descriptions regarding
0 item sizes. A test case has also been added.
2023-02-28 23:56:45 +08:00
Darian Leung 443d87c2ff esp_ringbuf: Replace internal semaphores with task event lists
This commit replaces the existing TX/RX semaphores with FreeRTOS task event
lists (similar to how FreeRTOS queues implement task blocking). Using task
event lists allows the ring buffer object to be smaller and various ring buffer
functions to be faster. The ring buffer queue set impelementation was also
updated as a result.
2023-02-28 23:56:45 +08:00
Marius Vikhammer 25abc7f6d8 ci: update idf-core related tests for C6 2023-02-13 13:01:57 +08:00
Sudeep Mohanty 6feab513e4 esp_ringbuf: migrated esp_ringbuf component tests to pytest framework
This commit migrates the esp_ringbuf tests to the pytest framework.
2022-10-11 11:31:04 +02:00
Darian c0f5e123c5 Merge branch 'contrib/github_pr_9497' into 'master'
Move xSemaphoreGive out of configASSERT (GitHub PR)

Closes IDFGH-7988

See merge request espressif/esp-idf!19522
2022-08-12 17:43:46 +08:00
tgotic 4837ba9b84 rename xHoldSemaphore to result 2022-08-05 10:19:47 +02:00
tgotic 480253d659 Move xSemaphoreGive out of configASSERT
xSemaphoreGive won't be executed in configASSERT and semaphore will stay locked if NDEBUG (idf v5) or CONFIG_FREERTOS_ASSERT_DISABLE (idf v3, v4) are defined.
2022-08-04 16:41:18 +02:00