-
Notifications
You must be signed in to change notification settings - Fork 2.1k
[TRACKING]: ztimer migration issues #17111
Copy link
Copy link
Open
Labels
Type: trackingThe issue tracks and organizes the sub-tasks of a larger effortThe issue tracks and organizes the sub-tasks of a larger effort
Description
This issue is meant to track nontrivial users of xtimer or periph_rt*, corner cases that could conflict with a migration to ztimer, or need to be resolved fur such a migration to eventually happen.
Modules depending on 64-bit xtimer Implementation #13667
See #13667 for a tracking issue.
There are two options of addressing this:
- remove the need for 64bit long-running timers (e.g: using
ZTIMER_MSECorZTIMER_SEC) - add
ztimer64which will provide the required missing API sys/ztimer64: initial PR #16928
Modules depending on xtimer_ticks_to_usec API
There are two options to address this:
- migrate use cases to not rely on ticks
- implement
xtimer_tickson top ofZTIMER_MSEC_BASEadd functions for conversion between ticks and usec like those in xtimer base onZTIMER_MSEC_BASE_FREQ
API Users:
- drivers/at30tse75x: used to spin can be covnerted to
ztimer_spindriver/at30tse75x: port to ztimer_usec #17137 - drivers/at8520e: timeout is set in seconds (max 256) -> can be converted to
ZTIMER_SECorZTIMER_MSECdrivers/ata8520e: migrate to ztimer #17105 - drivers/dose: use to make sure that sleep time is above
XTIMER_BACKOFF, not needed with ztimer. - drivers/nrf24l01p: used to spin, can be converted to
ZTIMER_USEC - drivers/xbee: wait 1 second with us precision -> 32 bit is enough (one function rewrite) drivers/xbee: migrate to ztimer_msec #17114
- drivers/nvram_spi: used to spin, can be converted to
ztimer_spin - drivers/rn2xx3: timeout is set in seconds (max 256) -> can be converted to
ZTIMER_SECorZTIMER_MSECdrivers/ata8520e: migrate to ztimer #17105 - drivers/si11rr: a usec timeout that can be updated to not use the ticks api
- paho-mqtt: read timeouts in ms -> use ZTIMER_MSEC : pkg/paho-mqtt: migrate to ztimer #17143
- sys/net/gnrc/netif: periodic wake up in us, can use
ZTIMER_USECgnrc/netif: convert to ztimer #17354 - sys/ps: runtime is measured in ticks -> use ZTIMER_USEC: schedstatistics: Convert to ztimer #17216
- sys/stdio_rtt: there is some polling functionality, probably can be adapted to use usec or even msec, since polling time is 50000 ticks stdio_rtt: Convert to ztimer #17122
- sys/stdio_semihosting: pollrate is in ms, can be switched to
ZTIMER_MSEC.
Ztimer conflicts
- ztimer_msec conflicts with direct usage of RTT #17060
- sys/net/gnrc/link_layer/lwmac: uses rtt, could use ZTIMER_MSEC - gnrc_lwmac: use ximer for recording radio duty over RTT #8953
- sys/net/gnrc/link_layer/gomach: uses
rttxtimer, could use ZTIMER_MSEC - simple deep sleep use cases where
rtcorrttare used to wake up the CPU - active clocks preventing sleep: event/timeout: fixed dependency on ZTIMER_USEC preventing low-power operation #16891
Ztimer other
-
ztimer->adjust_sleepandztimer->adjust_setautomatic configuration -
RTT_MIN_OFFSETis not 2 for all CPU's, shuuld be addapted for all - ztimer multiple backends pottential footgun sys/ztimer: Potential footgun when mixing timestamps of ztimer clocks #16698
- CPU/BOARDs timer width are hardcoded and do not always represent the actual timer backend size
TIMER_0_MAX_VALUE
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type: trackingThe issue tracks and organizes the sub-tasks of a larger effortThe issue tracks and organizes the sub-tasks of a larger effort