Expand description
§esp-radio task scheduler interface.
esp-radio requires a task scheduler to operate. This crate allows the task scheduler to be
tailored to specific software platforms (such as ArielOS). Trying to use multiple scheduler
crates in a firmware project will not build.
If you want to use esp-radio without any OS, you can use the esp-rtos
crate as the task scheduler.
§Implementing a scheduler driver
This crate abstracts the capabilities of FreeRTOS. The scheduler must implement the following capabilities:
- A preemptive task scheduler:
Scheduler - Semaphores:
semaphore::SemaphoreImplementation - Queues:
queue::QueueImplementation - Timers (functions that are executed at a specific time):
timer::TimerImplementation
Modules§
Macros§
- register_
queue_ implementation - register_
semaphore_ implementation - register_
timer_ implementation - scheduler_
impl - Set the Scheduler implementation.
Traits§
- Scheduler
- The scheduler interface.
Functions§
- current_
task - Returns a pointer to the current task.
- current_
task_ thread_ semaphore - Returns a pointer to the current thread’s semaphore.
- initialized
- Returns whether the task scheduler has been initialized.
- max_
task_ priority - Returns the maximum priority a task can have.
- now
- Returns the current timestamp, in microseconds.
- schedule_
task_ ⚠deletion - Schedules the given task for deletion.
- task_
create ⚠ - Creates a new task with the given initial parameter and stack size.
- usleep
- Puts the current task to sleep for the specified number of microseconds.
- yield_
task - Yields control to another task.
- yield_
task_ from_ isr - Yields control to another task for an interrupt.