Crates.io | xous-api-ticktimer |
lib.rs | xous-api-ticktimer |
version | 0.9.61 |
source | src |
created_at | 2022-10-02 19:12:59.741738 |
updated_at | 2024-09-23 14:06:54.077346 |
description | Provide high-resolution, non-rollover system time |
homepage | https://betrusted.io/xous-book/ |
repository | https://github.com/betrusted-io/xous-core/ |
max_upload_size | |
id | 678529 |
size | 13,030 |
The Xous ticktimer
helps other processes track the passage of time through several mechanisms:
Processes that are blocked by ticktimer
are entirely de-scheduled and consume no CPU
quantum; the only overhead is a few instructions to check the processes' runnability
state in the kernel's simple round-robin thread scheduler. Thus sleep
and condvar
blocking states are very efficient.
ticktimer
's perception of time stops when a system goes into the suspend state;
thus on resume, the elapsed time picks up exactly where it left off. Wall-clock time
during suspend is tracked by the RTC module.
Xous currently has no notions of thread priority, but if it were to develop one,
the ticktimer
would be the logical place to implement such a feature, as it has
a full view of all the waiting and runnable threads, and it can influence which ones
should be unblocked at a given quantum.