sys/cpp11-compat: Remove xtimer deps#19369
Conversation
|
Any blockers? @josephnoir originally did this? |
| xtimer_now_timex(&before); | ||
| xtimer_t timer; | ||
| xtimer_set_wakeup(&timer, timex_uint64(timeout), thread_getpid()); | ||
| before = timex_from_uint64(ztimer64_now(ZTIMER64_USEC)); |
There was a problem hiding this comment.
Why is duration cast to timex_t (l176 to 179) ? (not to 64bit microseconds directly)
| before = timex_from_uint64(ztimer64_now(ZTIMER64_USEC)); | ||
| cv.wait_for(lk, chrono::seconds(timeout)); | ||
| xtimer_now_timex(&after); | ||
| after = timex_from_uint64(ztimer64_now(ZTIMER64_USEC)); |
There was a problem hiding this comment.
seems also like unforced use of timex
MrKevinWeiss
left a comment
There was a problem hiding this comment.
Note that there is still a dependency on timex for the type...
| xtimer_now_timex(&before); | ||
| xtimer_t timer; | ||
| xtimer_set_wakeup(&timer, timex_uint64(timeout), thread_getpid()); | ||
| before = timex_from_uint64(ztimer64_now(ZTIMER64_USEC)); |
| before = timex_from_uint64(ztimer64_now(ZTIMER64_USEC)); | ||
| cv.wait_for(lk, chrono::seconds(timeout)); | ||
| xtimer_now_timex(&after); | ||
| after = timex_from_uint64(ztimer64_now(ZTIMER64_USEC)); |
| timeout = s.count() * US_PER_SEC; | ||
| timeout += (duration_cast<microseconds>(timeout_duration - s)).count(); |
There was a problem hiding this comment.
| timeout = s.count() * US_PER_SEC; | |
| timeout += (duration_cast<microseconds>(timeout_duration - s)).count(); | |
| timeout = duration_cast<microseconds>(timeout_duration).count(); |
and remove line 176
There was a problem hiding this comment.
Right, I thought that microseconds overflow at 1 second but I guess that was done as a result of timex. Done.
kfessel
left a comment
There was a problem hiding this comment.
reads good, tested good
please squash,
while doing that please correct the commit messages to "*: Use ztimer64_usec instead of xtimer" as these are ports to ztimer64 (which requires no aquire and release and has the timer (and therefor clock) always running)
9b13727 to
4795965
Compare
|
Thanks! |
|
bors merge |
19369: sys/cpp11-compat: Remove xtimer deps r=MrKevinWeiss a=MrKevinWeiss ### Contribution description This replaces the `xtimer` calls with explicit `ztimer64` calls, since `xtimer` is somewhat deprecated. ### Testing procedure - Green murdock - I suppose the following `tests/` ``` c11_atomics_cpp_compat cpp11_condition_variable cpp11_mutex cpp11_thread cpp_ctors cpp_exclude cpp_ext irq_cpp rmutex_cp ``` - run `compile_and_test_for_board.py` and `compile_like_murdock.py` for the subset of tests. ### Issues/PRs references Co-authored-by: MrKevinWeiss <[email protected]>
|
Build failed: |
|
Hmm I don't like how it is bigger... |
|
it shrunk for stm32f7 (m7) and stm32f3(m4) and increased for stm32l0 (m0+) |
|
bors merge |
19369: sys/cpp11-compat: Remove xtimer deps r=MrKevinWeiss a=MrKevinWeiss ### Contribution description This replaces the `xtimer` calls with explicit `ztimer64` calls, since `xtimer` is somewhat deprecated. ### Testing procedure - Green murdock - I suppose the following `tests/` ``` c11_atomics_cpp_compat cpp11_condition_variable cpp11_mutex cpp11_thread cpp_ctors cpp_exclude cpp_ext irq_cpp rmutex_cp ``` - run `compile_and_test_for_board.py` and `compile_like_murdock.py` for the subset of tests. ### Issues/PRs references Co-authored-by: MrKevinWeiss <[email protected]>
|
Build failed: |
fbd2fcc to
95c238a
Compare
|
bors merge |
|
Build succeeded: |
|
thanks |
19411: cpu/gd32v: add riotboot support r=benpicco a=gschorcht ### Contribution description This PR provides `riotboot` support for GD32V. ### Testing procedure Use any GD32V board with a JTAG adapter and flash the bootloader: ```python PROGRAMMER=openocd BOARD=sipeed-longan-nano make -C bootloaders/riotboot flash ``` Flash slot 0 and set `RIOT_VERSION` to 1 ```python USEMODULE=stdio_uart FEATURES_REQUIRED=riotboot RIOT_VERSION=1 \ PROGRAMMER=openocd BOARD=sipeed-longan-nano make -C tests/shell riotboot/flash-slot0 ... ### Flashing Target ### Binfile detected, adding ROM base address: 0x08000000 Flashing with IMAGE_OFFSET: 0x08001000 ``` ```python > main(): This is RIOT! (Version: 1) test_shell. ``` Flash slot 1 and set `RIOT_VERSION` to 2 ```python USEMODULE=stdio_uart FEATURES_REQUIRED=riotboot RIOT_VERSION=2 \ PROGRAMMER=openocd BOARD=sipeed-longan-nano make -C tests/shell riotboot/flash-slot1 ... ### Flashing Target ### Binfile detected, adding ROM base address: 0x08000000 Flashing with IMAGE_OFFSET: 0x08010800 ``` ```python > main(): This is RIOT! (Version: 2) test_shell. ``` ### Issues/PRs references 19436: cpp11-compat: thread::sleep_for in microseconds r=benpicco a=kfessel ### Contribution description after reviewing #19369 i found that there is a conversion to nanoseconds just to convert it to microseconds some instrunctions later for ztimer64_usec to handle it this removes one of the conversions (convert once direct to microseconds) ### Testing procedure run the cpp tests ### Issues/PRs references #19369 19450: cpu/esp32: fix compilation issues with GCC 12.2 r=benpicco a=gschorcht ### Contribution description This PR provides the changes in `cpu/esp32` and `cpu/esp_common` to fix the compilation issues with GCC v12.2. It is required as the first step in the preparation of the upgrade to ESP-IDF version 5.1. **Please note**: Insead of fixing the ESP-IDF 4.4 code itself by a big bunch of patches to fix the compilation problems with GCC v12.2, it temporarily disables some warnings. The reason is that the ESP-IDF 5.1 requires GCC v12.2 and should be fixed for this compiler version by the vendor. ### Testing procedure Green CI The change were already tested with all ESP-specific modules like `esp_now`, `esp_wifi`, `esp_spi` and `esp_ble` for all supported ESP platforms. ### Issues/PRs references Prerequisite for RIOT-OS/riotdocker#227 Fixes issue #19421 19476: native/syscalls: rename real_clock_gettime to clock_gettime r=benpicco a=Teufelchen1 ### Contribution description When compiling RIOT for native using a recent LLVM and enabling ASAN, one might encounter "Duplicated symbol". This is due to a name clash with `real_clock_gettime()` in compiler-rt from [LLVM](llvm/llvm-project@f50246d), I renamed RIOTs `real_clock_gettime` and just default to the posix function `clock_gettime`. The wrapper existed, most likely, for consistency only. (The best solution would probably to convince the LLVM folks to declare their symbol as `static` and refactor a bit) ### Testing procedure Passing CI should be enough. Co-authored-by: Gunar Schorcht <[email protected]> Co-authored-by: Karl Fessel <[email protected]> Co-authored-by: Teufelchen1 <[email protected]>
19436: cpp11-compat: thread::sleep_for in microseconds r=benpicco a=kfessel ### Contribution description after reviewing #19369 i found that there is a conversion to nanoseconds just to convert it to microseconds some instrunctions later for ztimer64_usec to handle it this removes one of the conversions (convert once direct to microseconds) ### Testing procedure run the cpp tests ### Issues/PRs references #19369 Co-authored-by: Karl Fessel <[email protected]>
Contribution description
This replaces the
xtimercalls with explicitztimer64calls, sincextimeris somewhat deprecated.Testing procedure
tests/compile_and_test_for_board.pyandcompile_like_murdock.pyfor the subset of tests.Issues/PRs references