81 Commits

Author SHA1 Message Date
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
Ivan Grokhotkov
401c10ecfb build system: re-add -Wno-format as private flag for some components 2022-08-03 16:42:47 +04:00
morris
45524408df coverity: fix uninit variable issue in driver
Related CID:
389832, 389838, 389880, 286743, 286752, 395156, 291011, 396001, 396002
2022-08-03 10:46:50 +08: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
Cao Sen Miao
a690a87829 spi_flash: Remove legacy spi_flash drivers 2022-07-01 11:01:34 +08:00
morris
e7295c3577 gptimer: added enable/disable functions 2022-05-06 18:18:39 +08:00
morris
f32a89826c clk_tree: added default clock source for peripheral 2022-04-14 15:44:56 +08:00
Darian Leung
57fd78f5ba freertos: Remove legacy data types
This commit removes the usage of all legacy FreeRTOS data types that
are exposed via configENABLE_BACKWARD_COMPATIBILITY. Legacy types can
still be used by enabling CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY.
2022-02-09 23:05:45 +08:00
morris
705788a13f unit_tests: replace legacy timer group with gptimer 2022-01-07 14:59:09 +08:00
Sudeep Mohanty
722a6b7cf4 docs: update programming guide for esp32s3 chip independent system chapters
This commit updates the chip independent system chapters of the
programming guide for esp32s3.

Signed-off-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
2021-11-23 12:48:10 +05:30
Darian Leung
9b3796d2f1 freertos: Add portTRY_ENTRY_CRITICAL() and deprecate legacy spinlock fucntions
Add TRY_ENTRY_CRITICAL() API to all for timeouts when entering critical sections.
The following port API were added:
- portTRY_ENTER_CRITICAL()
- portTRY_ENTER_CRITICAL_ISR()
- portTRY_ENTER_CRITICAL_SAFE()

Deprecated legacy spinlock API in favor of spinlock.h. The following API were deprecated:
- vPortCPUInitializeMutex()
- vPortCPUAcquireMutex()
- vPortCPUAcquireMutexTimeout()
- vPortCPUReleaseMutex()

Other Changes:
- Added portMUX_INITIALIZE() to replace vPortCPUInitializeMutex()
- The assembly of the critical section functions ends up being about 50 instructions longer,
  thus the spinlock test pass threshold had to be increased to account for the extra runtime.

Closes https://github.com/espressif/esp-idf/issues/5301
2021-11-22 13:28:39 +08:00
Roland Dobai
766aa57084 Build & config: Remove leftover files from the unsupported "make" build system 2021-11-11 15:32:36 +01:00