Commit Graph

1277 Commits

Author SHA1 Message Date
Marius Vikhammer bc3cff98df Merge branch 'fix/freertos_delete_block_tasks_test_v5.4' into 'release/v5.4'
test(freertos): Added stability fixes to the delete blocked tasks test (v5.4)

See merge request espressif/esp-idf!44486
2025-12-25 09:34:13 +08:00
Sudeep Mohanty 8dfab8cb9b test(freertos): Added stability fixes to the delete blocked tasks test 2025-12-23 09:45:11 +01:00
Sudeep Mohanty 20ec56e6e4 test(freertos): Fix race condition in suspend-resume tests
This commit fixes a race condition in suspend-resume tests where in
a test task could escape deletion and result in a memory leak after test
completion.
2025-12-23 09:39:34 +01:00
Erhan Kurubas 118b424dd1 change(freertos): add task count and pointer width to OpenOCD debug table 2025-12-18 00:20:14 +08:00
Erhan Kurubas 5e4529d8c5 feat(freertos): add list offsets to the openocd_params 2025-12-18 00:20:14 +08:00
Sudeep Mohanty dbf677816c test(freertos): Added miscellaneous stability fixes to unit tests
This commit adds fixes for freertos unit tests for a more deterministic
run and avoid occational failures.
2025-11-05 13:42:02 +05:30
Marius Vikhammer 30b10c6d87 docs(freertos): fixed stack watermark documentation bytes vs words issue
Upstream freertos reports stack sizes in words, while IDF-kernel uses bytes.
2025-10-23 09:37:18 +08:00
Marius Vikhammer 75f2d74569 ci(system): enabled and cleanup misc system test-apps build-test-rules 2025-08-18 10:24:07 +08:00
morris 6926e5c94a Merge branch 'fix/fix_xip_psram_ptr_check_v5.4' into 'release/v5.4'
psram: fixed psram ptr check issue under xip_psram condition for ESP32P4 (v5.4)

See merge request espressif/esp-idf!39733
2025-06-30 10:29:38 +08:00
wanckl ea03622621 ci(esp32c61): remove c61 support from readme on 5.4 2025-06-17 15:09:40 +08:00
John Boiles fb51a125af fix(freertos): Use ESP_EARLY_LOGE in vPortTLSPointersDelCb for RISCV
Using ESP_LOG* in this function causes a crash
2025-06-09 10:34:04 +08:00
Omar Chebib 827f6bca2b fix(freertos): optimize HWLP context switch by disabling it when unused 2025-05-09 11:38:33 +08:00
Omar Chebib d973153488 fix(freertos): workaround a hardware bug related to HWLP coprocessor
This commit manually sets the HWLP context to dirty when a Task that needs it is scheduled it.
2025-05-09 11:38:33 +08:00
wuzhenghui 33aca83c63 change(ci): remove esp32c5 from readme since esp32c5 skipped CI build 2025-04-25 17:13:27 +08:00
Sudeep Mohanty 8f2f1abdd5 test(freertos): Added a unit test for tickless idle tick jump scenario
This commit adds a unit test to test that tickless idle mode does not
cause an unexpected jump in tick count after tickless idle mode is
exited.
2025-04-22 16:32:08 +08:00
Sudeep Mohanty 3e18049461 fix(freertos): Fixed tickless idle tick count accounting
This commit fixes an issue where the FreeRTOS kernel does not account
for the pended ticks occuring during automatic light-sleep mode and
hence causing a jump in the tick count at a later stage in the
application lifetime.

Closes: https://github.com/espressif/esp-idf/issues/15642
2025-04-22 16:32:08 +08:00
Sudeep Mohanty 30f8649fb8 feat(freertos): Enable Amazon FreeRTOS SMP kernel for esp32c5 and esp32c61
This commit enables the Amazon SMP port for FreeRTOS for the esp32c5 and
esp32c61 targets.
2025-03-27 11:17:47 +01:00
Omar Chebib 54f257b909 fix(freertos): fix a bug in prvTaskDeleteWithCaps related to coprocessors
When a coprocessor is used, the stack pointer is altered. It must be restored
before freeing the memory allocated to the task.
2025-02-19 10:22:23 +08:00
Laukik Hase 5328dcd00c change(build): Add a new CMake flag NON_OS_BUILD for non-FreeRTOS builds 2024-10-21 19:03:30 +05:30
Sudeep Mohanty 1fe57a5d8e fix(freertos): Fixed SMP race condition in xStreamBufferSend()
This commit fixes a race condition in dual-core SMP mode where in the
xStreamBufferSend() makes the xTaskWaitingToSend NULL but it may
have already been evaluated to not be NULL by xStreamBufferReceive()
running on another core and eventually leading to a crash in tasks.c.
2024-10-16 19:39:42 +08:00
Sudeep Mohanty 03d76006b8 fix(freertos): Fixed SMP race condition in stream_buffers.c
This commit fixes a race condition in dual-core SMP mode where in the
xStreamBufferReceive() makes the xTaskWaitingToReceive NULL but it may
have already been evaluated to not be NULL by xStreamBufferSend()
running on another core and eventually leading to a crash in tasks.c.
2024-10-11 14:31:06 +02:00
Sudeep Mohanty a97a7b0962 Merge branch 'fix/priority_inv_when_remove_from_unordered_event_list' into 'master'
fix(freertos): Fixed priority inversion when setting event group bits

Closes IDF-8160

See merge request espressif/esp-idf!33953
2024-10-11 17:49:08 +08:00
Sudeep Mohanty eeafd12f37 Merge branch 'feat/add_freertos_port_layer_mocks' into 'master'
feat(freertos): Add FreeRTOS port layer mocks for CMock tests

See merge request espressif/esp-idf!34021
2024-10-11 17:47:51 +08:00
morris aebf700919 refactor(freertos): rename SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY and move to freertos 2024-10-09 13:32:03 +08:00
Sudeep Mohanty 0e5adc1b9c feat(freertos): Add FreeRTOS port layer mocks for CMock tests
This commit adds mocks for the FreeRTOS linux port layer for tests which
mock the FreeRTOS component and use port layer APIs.
2024-10-08 12:08:24 +02:00
Sudeep Mohanty fc84220d90 test(freertos): Added unit test for event groups to test priority inversion
This commit adds a FreeRTOS unit test to verify that event groups do not
cause priority inversion when unblocking a higher priority task.
2024-10-08 09:36:45 +02:00
Sudeep Mohanty bd4de3c8a3 fix(freertos): Fixed priority inversion when setting event group bits
This commit fixes a priority inversion when a lower priority task set
event group bits to unblock a higher priority task but the lower
priority task continued to run.
2024-10-08 09:36:45 +02:00
Marius Vikhammer 4bf8d49159 fix(system): fixed potential double exception when booting on xtensa
Due to old windows from the startup flow being present after
switching to running freertos tasks  windowoverflow exceptions
could potentially try to save windows to the startup stack.

During this overflow they also values previously saved on the
startup stack to find earlier frames' stacks.
Since the start up stack was already recycled these values were
invalid and would cause a crash.

Closes https://github.com/espressif/esp-idf/issues/14406Y
2024-09-27 09:34:00 +08:00
Sudeep Mohanty c01512f4b0 Merge branch 'fix/assert_fail_in_xtaskdeletewithcaps' into 'master'
Fixed occational assert failure in vTaskDeleteWithCaps()

Closes IDFGH-13294

See merge request espressif/esp-idf!33468
2024-09-20 16:19:40 +08:00
Sudeep Mohanty 86c1ad216c Merge branch 'task/enable_freertos_tests_for_h2' into 'master'
test(freertos): Enabled FreeRTOS unit tests for esp32h2

See merge request espressif/esp-idf!33571
2024-09-19 16:42:22 +08:00
Alexey Gerenkov 81f4ef73c3 Merge branch 'feature/update-esp-clang-to-esp-18.1.2_20240815' into 'master'
feat(tools): update esp-clang version to esp-18.1.2_20240912

Closes LLVM-333

See merge request espressif/esp-idf!32895
2024-09-19 03:49:46 +08:00
Alexey Gerenkov 9ca231e76e change(build): Use integrated assembler with Clang for RISCV chips 2024-09-18 21:40:39 +03:00
Sudeep Mohanty 01f521f3a0 test(freertos): Enabled FreeRTOS unit tests for esp32h2 2024-09-18 12:51:24 +02:00
Sudeep Mohanty c36674eaa8 fix(freertos): Fixed assert failure in vTaskDeleteWithCaps
This commit fixes an assert failure in vTaskDeleteWithCaps() when
multiple un-pinned tasks are created with stack in the external memory
and such tasks delete themselves.

Closes https://github.com/espressif/esp-idf/issues/14222
2024-09-18 11:11:04 +02:00
Sudeep Mohanty 02cd0253a1 test(freertos): Added a test for vTaskDeleteWithCaps when stack is in ext RAM
This commit adds a stress tests for creating multiple tasks with
xTaskCreateWithCaps such that the stack is allocated in external SPIRAM.
Then the tasks self-delete. This is done iteratively as stress test.
2024-09-18 10:39:24 +02:00
Sudeep Mohanty 812fbb7874 test(freertos): Enabled FreeRTOS unit tests for esp32c61 2024-09-17 14:17:01 +02:00
David Čermák 4dd715922f Merge branch 'fix/freertos_sim_nonblock_select' into 'master'
fix(freertos): Made select function non-blocking on Linux target (GitHub PR)

Closes IDFGH-13569 and IDFGH-13498

See merge request espressif/esp-idf!33331
2024-09-12 16:57:58 +08:00
Xiaoyu Liu 3d403a4ba8 refactor(intr): unify riscv freertos set/clear intr mask from isr apis
refactor(intr): find a potential bug that clic intr mask need extra nop ops
2024-09-11 18:26:07 +08:00
David Cermak f7129481ed fix(freertos): Update select on Linux target to handle edge cases
* Handle not found "select()" symbol if dlsym() return NULL
* Handle minimum wait time if remaining time < designated minimum sleep
time
2024-09-09 16:52:51 +02:00
Alexey Lapshin 725b9ec81e fix(freertos): fix GCC 14 analyzer warnings 2024-09-08 13:53:52 +07:00
snake-4 8a39db3fae fix(freertos): Made select function non-blocking on Linux target
The select function wrapper was rewritten to be non-blocking
on Linux systems, as it was stealing all the CPU time
from lower priority tasks when called from a higher priority task.
This is because the FreeRTOS scheduler does not know
that the task thread is sleeping during the system call.

This issue manifests all "slow" system calls on the Linux target,
but handling the case of select fixes the problems for most ESP-IDF components.

The FreeRTOS POSIX port documentation lists this as a known issue,
so user code is responsible handling this case if other system calls are used,
even if unknowingly.

This closes GH issue #14395 "select() blocks the FreeRTOS scheduler on Linux target"
2024-09-04 15:15:26 +02:00
Fu Hanxi 3c30341cfd ci: fix test_freertos markers 2024-09-03 09:34:09 +02:00
wanckl 4e095f4b9f ci(esp32c61): enable c61 generic target test 2024-09-02 19:26:12 +08:00
Marius Vikhammer bdb36f133a Merge branch 'docs/freertos_stack_size' into 'master'
docs(freertos): update freertos comments to reflect that stack size is in bytes

Closes IDFGH-10342

See merge request espressif/esp-idf!32946
2024-08-26 16:19:01 +08:00
Marius Vikhammer a04bedc4ce Merge branch 'bugfix/assert_ndebug' into 'master'
feat(newlib): add option to disable eval of expression in assert() when NDEBUG set

Closes IDFGH-479 and IDFGH-8692

See merge request espressif/esp-idf!32887
2024-08-26 15:42:31 +08:00
Marius Vikhammer 0d140f38ea fix(system): fixed warnings related to ununsed var if asserts disabled 2024-08-26 10:25:04 +08:00
Sudeep Mohanty a110f09d5e Merge branch 'task/enable_fpu_in_isr_for_esp32s3' into 'master'
feat(freertos): Enabled Kconfig option to allow FPU usage in ISR for esp32s3

Closes IDFGH-13365

See merge request espressif/esp-idf!32746
2024-08-23 20:18:18 +08:00
Marius Vikhammer 9bff8ad50e docs(freertos): update freertos comments to reflect that stack size is in bytes
Closes https://github.com/espressif/esp-idf/issues/11600
2024-08-20 09:26:09 +08:00
Marius Vikhammer 6cbee5c7f6 Merge branch 'contrib/github_pr_13578' into 'master'
Make FreeRTOS configUSE_TIMERS optional in KConfig (GitHub PR)

Closes IDFGH-12576

See merge request espressif/esp-idf!32576
2024-08-13 10:06:51 +08:00
Sudeep Mohanty bfa3c55250 feat(freertos): Enabled Kconfig option to allow FPU usage in ISR for esp32s3
This commit enables the Kconfig option to allow FPU usage in an ISR
context for the esp32s3.
2024-08-10 13:20:02 +02:00