Commit Graph

1242 Commits

Author SHA1 Message Date
Alexey Gerenkov
9ca231e76e change(build): Use integrated assembler with Clang for RISCV chips 2024-09-18 21:40:39 +03: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
Sudeep Mohanty
0db5d725ef fix(freertos): Fixed critical section macro in vTaskPlaceOnEventListRestricted()
The vTaskPlaceOnEventListRestricted() did not use the correct macro when
exiting a kernel cirtical section. This does not affect the HW targets
but on the Linux port, this caused an issue as the critical nesting
count became negative, leading to deadlocks. This commit fixes the bug
and updates the linux port to prevent the nesting count from going
negative.
2024-08-09 08:45:23 +02:00
Marius Vikhammer
0bcee8518b fix(freertos): split idf_additions.c event groups to separate file 2024-08-09 11:19:40 +08:00
dvosully
025b336916 Make FreeRTOS configUSE_TIMERS optional in KConfig 2024-08-09 11:19:40 +08:00
Frantisek Hrbata
0fdb309d1e change: exclude CVEs that do not impact ESP-IDF components
cJSON:    CVE-2024-31755 - Resolved in cJSON v1.7.18
FreeRTOS: CVE-2024-28115 - Affects only ARMv7-M MPU ports, and ARMv8-M ports

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-08-01 12:24:47 +02:00
Konstantin Kondrashov
0bdf675992 fix(linux): Fix warnings for Linux target when COMPILER_STATIC_ANALYZER=y 2024-07-31 11:23:54 +03:00
Sudeep Mohanty
c3da2ace27 fix(freertos): Fixed memory leak issue in vTaskDeleteWithCaps()
vTaskDeleteWithCaps() leaked memory when a task uses the API to delete
itself. This commit adds a fix to avoid the memory leak.

Closes https://github.com/espressif/esp-idf/issues/14222
2024-07-26 16:58:18 +02:00
Sudeep Mohanty
7806aeb372 Merge branch 'fix/freertos_port_assert_in_isr_bug' into 'master'
fix(freertos): Incorrect assert in FreeRTOS port layer when not in ISR context

See merge request espressif/esp-idf!32324
2024-07-26 21:14:53 +08:00
Sudeep Mohanty
7bf349d20b test(freertos): Fixed flaky scheduling time test
This commit updates the scheduling time test to test for median
scheduling time values instead of average values.
2024-07-26 08:37:11 +02:00
Sudeep Mohanty
1012172436 fix(freertos): Incorrect assert in FreeRTOS port layer when not in ISR context
This commit fixes an issue where in the FreeRTOS port layer would cause
the portASSERT_IF_IN_ISR() assert check to fail even when the system is
not in an interrupt context.
2024-07-25 12:06:19 +02:00
wanlei
3cf069c7d8 feat(esp32c61): disable unsupported build test 2024-07-16 16:06:19 +08:00
laokaiyao
cb22b8aaf7 ci(esp32c5): enable c5 target test 2024-07-02 16:45:49 +08:00
Marius Vikhammer
fd18bb608b test(misc): enable misc tests that have been missed during bringup 2024-06-28 13:24:28 +08:00
Alexey Lapshin
ed6e497c6f feat(build): add COMPILER_STATIC_ANALYZER option 2024-06-18 14:25:37 +08:00
Darian Leung
5d75bfdb3c
feat(freertos/smp): Update SMP FreeRTOS files to V11.1.0
This commit updates the source files of Amazon SMP FreeRTOS to upstream
V11.1.0 (https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V11.1.0).

This version contains some new features and bugfixes. See upstream V11.1.0
release notes for more details.

Note: ESP-IDF specific changes to the source file have been preserved
2024-06-03 03:13:58 +08:00
Omar Chebib
82668dd3fe fix(riscv): make HWLP feature use direct saving of lazy saving 2024-05-21 17:27:46 +08:00
Omar Chebib
55acc5e5e7 feat(riscv): add support for PIE coprocessor and HWLP feature
FreeRTOS tasks may now freely use the PIE coprocessor and HWLP feature.
Just like the FPU, usiing these coprocessors result in the task being pinned
to the core it is currently running on.
2024-05-20 10:47:58 +08:00
Darian
2716976c72 Merge branch 'fix/freertos_scheduler_suspend_crit' into 'master'
fix(freertos/idf): Add missing critical sections to vTaskSuspendAll()

See merge request espressif/esp-idf!30829
2024-05-17 22:06:38 +08:00
Darian Leung
25efe5525d
refactor(freertos/idf): Add critical section requirements to function description
This commit adds a note regarding the critical section calling requires of some
internal functions.
2024-05-15 23:39:28 +08:00
Darian Leung
88a0227dbe
fix(freertos/idf): Add missing critical sections to vTaskSuspendAll()
vTaskSuspendAll() requires critical sections when building for SMP. Otherwise,
it is possible for a task to switch cores in between getting the core ID and
before incremented uxSchedulerSuspended.
2024-05-15 23:29:28 +08:00
Konstantin Kondrashov
aed84fa818 feat(efuse): Support Linux target 2024-05-15 16:54:45 +03:00
Jakob Hasse
9c965073d4 Merge branch 'feature/linux_backtraces' into 'master'
refactor(linux): Improved error reporting

See merge request espressif/esp-idf!30387
2024-04-25 15:57:07 +08:00
Jakob Hasse
4c5cded945 refactor(linux): Improved error reporting
* Without using GDB, segfaults and aborts are reported
  clearly now
* Without using GDB, segfaults produce a rudimentary
  backtrace now
2024-04-24 18:12:45 +02:00
Darian Leung
13c4a57a2d
fix(freertos): Fix vTaskList() parameter print order
xCoreID was previously printed as the last parameter priority to IDF v5.1, but
was changed to the third paramtere from v5.2 onwards. This commit restores the
correct ordering.

Closes https://github.com/espressif/esp-idf/issues/13675
2024-04-24 17:19:38 +08:00
Wu Zheng Hui
2c4097b4d2 Merge branch 'bugfix/fix_esp32p4_light_sleep_issues' into 'master'
fix(esp_hw_support): fix esp32p4 light sleep issues

Closes PM-96, PM-97, and IDF-9569

See merge request espressif/esp-idf!30089
2024-04-18 19:18:56 +08:00
wuzhenghui
270b9d22e4
fix(ci): fix CI unity test cases failure 2024-04-18 18:07:07 +08:00
Konstantin Kondrashov
40684a0e1c Merge branch 'feature/freertos_runtime_counter_support' into 'master'
feat(freertos): Runtime Counter support

Closes IDFGH-12057

See merge request espressif/esp-idf!30150
2024-04-18 18:01:34 +08:00
Konstantin Kondrashov
66e6a48efd feat(freertos): Runtime Counter support
Closes https://github.com/espressif/esp-idf/issues/13120
2024-04-18 10:26:38 +03:00
Jiang Jiang Jian
5f19a8797a Merge branch 'contrib/github_pr_13022' into 'master'
fix(freertos): Fix broken portable macro portTRY_ENTER_CRITICAL_SAFE()

Closes IDFGH-11943

See merge request espressif/esp-idf!30030
2024-04-17 10:41:10 +08:00
Omar Chebib
f6e935e013 fix(esp32c5): add CLIC interrupt controller support for the ESP32-C5 2024-04-16 10:38:14 +08:00
laokaiyao
65b1fd33d3 ci(esp32c5mp): disable the unsupported tests 2024-04-07 12:13:29 +08:00
Andy Lin
4f6deb9f61 fix(freertos): Fix broken portable macro portTRY_ENTER_CRITICAL_SAFE()
This commit fixes a bug where the portTRY_ENTER_CRITICAL_SAFE() for the
Xtensa and RISC-V FreeRTOS ports were broken as it did not correctly use
the timeout parameter.

Merges: https://github.com/espressif/esp-idf/pull/13022
2024-04-03 14:35:31 +02:00
wuzhenghui
7408732688
fix(freertos): Updated threshold for scheduling time test for esp32p4
This commit increases the pass threshold for the scheduling time test on
esp32p4.
2024-03-27 16:19:19 +08:00
Sudeep Mohanty
c6efc57e6e fix(freertos): Re-enabled FreeRTOS unit tests for esp32p4
This commit reenables the FreeRTOS unit tests to be run during CI
pipelines for esp32p4.
2024-03-25 09:03:09 +01:00
Sudeep Mohanty
68dbbf339d fix(freertos): Updated unstable FreeRTOS unit tests
This commit fixes some flaky FreeRTOS unit tests.
2024-03-25 09:03:09 +01:00
wanlei
a611e91b2f feat(esp32c61): new chip add system and esp_timer support 2024-03-21 11:31:15 +08:00