xous-api-ticktimer

Crates.ioxous-api-ticktimer
lib.rsxous-api-ticktimer
version0.9.61
sourcesrc
created_at2022-10-02 19:12:59.741738
updated_at2024-09-23 14:06:54.077346
descriptionProvide high-resolution, non-rollover system time
homepagehttps://betrusted.io/xous-book/
repositoryhttps://github.com/betrusted-io/xous-core/
max_upload_size
id678529
size13,030
bunnie (bunnie)

documentation

README

Xous API: ticktimer

The Xous ticktimer helps other processes track the passage of time through several mechanisms:

  • It can report the elapsed uptime since boot in milliseconds.
  • It can block a process for a specified number of milliseconds.
  • It can block a process until a condition is met (i.e., condvar)

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.

Commit count: 7672

cargo fmt