Commit Graph
495 Commits
Author SHA1 Message Date
Alexey Lapshin 0a7ace356d Merge branch 'change/remove-sys_dirent_h-include' into 'master'
change(newlib): prepare dirent.h to remove

Closes IDF-10675 and LLVM-330

See merge request espressif/esp-idf!41608
2025-09-02 13:42:18 +04:00
Alexey Lapshin bc4a9ad406 change(newlib): remove sys/dirent.h from newlib component 2025-08-30 19:52:33 +07:00
Alexey Lapshin 28ced4efad fix(config): actualize newlib Kconfig options 2025-08-28 12:25:09 +08:00
Marius Vikhammer 1f0152dd3c Merge branch 'feature/cdcacm_vfs_comp' into 'master'
feat(usb_cdc_console): moved usb-cdc ROM console to new component: esp_usb_cdc_rom_console

Closes IDF-13797

See merge request espressif/esp-idf!41040
2025-08-26 10:40:08 +08:00
Marius Vikhammer f25ae4800d Merge branch 'bufix/assert_func_buf_too_small' into 'master'
fix(newlib): added kconfig option for configurable buffer length for assert msgs

Closes IDFGH-16305

See merge request espressif/esp-idf!41394
2025-08-25 09:47:21 +08:00
Alexey Lapshin b266d829dd change(newlib): enable LIBC_OPTIMIZED_MISALIGNED_ACCESS by default 2025-08-22 13:46:43 +08:00
Alexey Lapshin 913d38ba14 fix(newlib): fix CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS for c2/c3/c6/h2/h21
PMP configurations for load and store addresses may
have different permissions (e.g., "R" vs. "RW").

Due to the timing alignment of internal signals, the address
permission check may be incorrectly applied during the second
part of a misaligned access transaction.

As a workaround, insert two instructions (e.g. ADDI/NOP) between
accessing to different memory regions. This spacing avoids the
false permission check caused by signal timing overlap.
2025-08-22 13:46:43 +08:00
Marius Vikhammer 56e0c11bb6 feat(usb_cdc_console): moved usb-cdc ROM console to new component: esp_usb_cdc_rom_console 2025-08-22 09:37:47 +08:00
Marius Vikhammer 42316ef7bf fix(newlib): added kconfig option for configurable buffer length for assert msgs
Closes https://github.com/espressif/esp-idf/issues/17454
2025-08-22 09:15:22 +08:00
Marek Fiala 9d35d63651 feat(cmake): Update minimum cmake version to 3.22 (whole repository) 2025-08-19 14:44:32 +02:00
Alexey Lapshin 4c481c863f feat(build): update gnu17->gnu23 and gnu++2b->gnu++26 2025-08-19 10:29:37 +07:00
Alexey Lapshin 33cc3511e8 fix(newlib): increase limit for misaligned access testcases 2025-08-13 15:17:33 +07:00
Alexey Lapshin 8f97220a48 feat(newlib): add test for newlib_nano with esp32-psram 2025-08-11 21:28:55 +07:00
Alexey Lapshin 4dc6cb3fa1 change(newlib): change CONFIG_NEWLIB* prefix to CONFIG_LIBC_NEWLIB* 2025-08-11 19:06:44 +07:00
Marius Vikhammer bf84ab652a change(test_utils): moved test_utils component to tools/test_apps/components/ 2025-07-21 14:05:50 +08:00
morris c4d7b1cfce refactor(uart)!: deprcated esp_rom_uart.h 2025-07-08 18:56:17 +08:00
Alexey Lapshin 0f2e45c1ad feat(newlib): add dummy implementations for statvfs/fstatvfs 2025-06-25 18:01:50 +07:00
Alexey Lapshin e82d51a9ee fix(picolibc): fix missed headers in sources 2025-06-25 18:01:50 +07:00
Alexey Lapshin e28af6a002 fix(newlib): use optimized misalign access functions from libc.a 2025-06-25 18:01:50 +07:00
Frantisek Hrbata 0afcc02c47 Merge branch 'fix/cmake_uninitialized_vars' into 'master'
fix(build): do not rely on uninitialized  variables and variables set in parent scope

See merge request espressif/esp-idf!39615
2025-06-20 08:30:30 +02:00
Marius Vikhammer 27f232a929 test(newlib): fixed failing C5 ECO2 newlib tests 2025-06-06 08:38:24 +02:00
Frantisek Hrbata b84e9b69ba fix(newlib/cmake): avoid using uninitialized ldfragments variable
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-06-04 19:50:27 +08:00
Sudeep Mohanty 196bd4368a Merge branch 'fix/usleep_returns_early' into 'master'
fix(newlib): Fixed an issue where usleep() could consume more CPU cycles

Closes IDFGH-14342

See merge request espressif/esp-idf!38812
2025-05-09 17:18:25 +08:00
Marius Vikhammer d03c3d3192 feat(core): added support for ROM and newlib on ESP32-H21 2025-05-09 09:51:09 +08:00
Sudeep Mohanty 1e616eeb84 fix(newlib): Fixed an issue where usleep() could consume more CPU cycles
The following changes are made in this commit:

1. This commit updates the implementation of usleep() to now always yield
   CPU time if undergoing a multi-tick sleep. This reduces the accuracy of
   usleep() but in turn allows the scheduler to schedule different tasks.

2. The commit also updates the MCPWM unit test which fails due to the
   change in the behavior of usleep().

Closes: https://github.com/espressif/esp-idf/pull/15132
2025-04-29 08:15:16 +02:00
Sudeep Mohanty ec07f61291 test(newlib): Added unit tests for usleep and sleep_for functions
This commit adds unit tests to verify the basic functionality of
usleep() and this_thread::sleep_for() std functions.
2025-04-23 17:23:36 +02:00
Stephen Noonan d5d7bb61e5 fix(newlib): usleep returning early
This commit updates usleep() to always sleep for the required sleep
period or more. This fixes a bug where the usleep() could sleep for less
than the request sleep period.

Closes https://github.com/espressif/esp-idf/pull/15132
2025-04-23 17:23:36 +02:00
Chen Jichang c34b4eb882 feat(esp32h4): enable ESP32H4 ci build 2025-03-28 14:41:28 +08:00
Alexey Lapshin fa0a2d997b Merge branch 'fix/newlib-include-missed-test' into 'master'
fix(newlib): include missed test for printf

See merge request espressif/esp-idf!38030
2025-03-27 20:04:27 +08:00
Alexey Lapshin 35531c6344 fix(newlib): include missed test for printf 2025-03-26 18:44:12 +07:00
Alexey Lapshin ec68cb3300 feat(newlib): riscv: add CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS config option
This option replaces implementations of functions from ROM:
  - memcpy
  - memcmp
  - memmove
  - str[n]cpy
  - str[n]cmp

The functions used in the firmware will be better optimized for misaligned
memory. Here are some measurements in CPU cycles for 4096-byte buffers:

  memcpy:  28676 -> 4128
  memcmp:  49147 -> 14259
  memmove: 33896 -> 8086
  strcpy:  32771 -> 17313
  strcmp:  32775 -> 13191
2025-03-26 17:27:24 +07:00
Chen Ji Chang 6474fd67ae Merge branch 'feat/h4_introduce_step8' into 'master'
feat(esp32h4): introduce hello world to ESP32H4 (stage8)

Closes IDF-9526 and IDF-12333

See merge request espressif/esp-idf!37545
2025-03-20 16:16:05 +08:00
Chen Jichang 44117b623d refactor(esp_rom): remove specific chip name when including rom header 2025-03-17 18:53:26 +08:00
Marius Vikhammer ff3126fa09 feat(newlib): added option for placing functions in flash if flash-auto-suspend 2025-03-14 10:41:51 +08:00
Marius Vikhammer 70371347dc Merge branch 'feature/newlib_iram_cleanup' into 'master'
feat(newlib): optimize IRAM usage

Closes IDF-7146

See merge request espressif/esp-idf!37647
2025-03-14 10:28:45 +08:00
Marius Vikhammer 46847b7be9 Merge branch 'bugfix/heap_in_flash' into 'master'
fix(heap): fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not working together with CONFIG_HEAP_TLSF_USE_ROM_IMPL

See merge request espressif/esp-idf!37692
2025-03-13 10:48:41 +08:00
Marius Vikhammer ab2718dc44 fix(newlib): fixed newlib malloc wrappers IRAM/flash placement
If HEAP_PLACE_FUNCTION_INTO_FLASH = y then we should also place
the newlib wrappers for the heap in to flash.
2025-03-12 11:19:25 +08:00
Marius Vikhammer 20bbd2af42 feat(newlib): add option for placing newlib lock API into flash 2025-03-11 09:33:58 +08:00
Marius Vikhammer 2fc73a05b3 feat(newlib): removed some unecessary IRAM attributes for newlib functions 2025-03-10 15:31:30 +08:00
Marius Vikhammer 12e9d6514a fix(console): fixed secondary console not working on all chips without VFS 2025-03-07 14:41:19 +08:00
igor.udot daf2d31008 test: format all test scripts 2025-03-05 12:08:48 +08:00
gaoxu 5ef4f20778 feat(esp32h21): disable unsupported build test 2025-02-06 15:47:51 +08:00
Alexey Lapshin 793e394f5a fix(newlib): add missing __atomic_test_and_set for RISCV chips wo 'a' extension
Before the change described in
https://gcc.gnu.org/pipermail/gcc-patches/2023-September/631393.html it
appeared that inlining built-in GCC function __atomic_test_and_set() was
incorrect. It resulted in a non-atomic write.
After the change now present in GCC, the IDF should include the function
__atomic_test_and_set() to successfully link the final binary.

Closes https://github.com/espressif/esp-idf/issues/15167
2025-01-15 13:57:58 +07:00
Marius Vikhammer 34c7d62855 refactor(hw_support): combine esp_hw_support rtc header to a single file 2024-12-30 10:09:34 +08:00
Ivan Grokhotkov 684d3e6d01 feat(newlib): add dummy implementations of pathconf, chmod, dirfd
Closes https://github.com/espressif/esp-idf/issues/14174
2024-12-03 15:32:57 +01:00
Alexey Lapshin 888b5f7e8d feat(newlib): add picolibc support 2024-12-02 21:35:56 +07:00
Frantisek Hrbata e16f711a99 change(newlib): use a general console name in the new line conversion options
Currently, the new line ending conversion options for stdin and stdout
are specifically described for UART, which is inaccurate since the
console could be connected to USB serial/CDC or have secondary output.
Use a generic console term instead of UART.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-18 15:42:29 +08:00
Frantisek Hrbata 2c3c0653d2 change(newlib): support line endings modification only with VFS
The configuration of newline endings for stdout and stdin is supported
only by the VFS drivers. The write and read syscalls in newlib
automatically convert LF to CRLF for stdout and CR to LF for stdin,
ignoring the configured newline settings. Therefore, make the options
for newline endings visible only when VFS is enabled.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-18 15:42:29 +08:00
Frantisek Hrbata 5351a83128 feat(newlib): change line endings on standard input and output
Currently, the newline conversions for the NEWLIB_STDOUT_LINE_ENDING and
NEWLIB_STDIN_LINE_ENDING options are only applied by VFS drivers.
Without VFS, newline conversion does not occur. Introduce the default
conversion of LF to CRLF on stdout and CF to LF on stdin for the default
read and write syscalls in newlib.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-18 15:42:29 +08:00
Konstantin Kondrashov 3318e0accd feat(pthread): Adds set/get sched param funcs
Closes https://github.com/espressif/esp-idf/issues/14821
Closes https://github.com/espressif/esp-idf/issues/8594
2024-11-12 17:23:03 +08:00