任务管理
thread.hpp
System::Thread::Priority
功能
线程优先级定义
实现
typedef enum { IDLE, LOW, MEDIUM, HIGH, REALTIME } Priority;
void System::Thread::Create()
功能
创建线程,在裸机平台无效。
定义
template <typename FunType, typename ArgType>
void Create(FunType fun, ArgType arg, const char* name, size_t stack_depth, Priority priority);
返回值
- void
参数
- FunType void (fun*)(ArgType) 线程服务函数
- ArgType arg 线程参数
- const char* name 线程名称
- uint32_t stack_depth 堆栈深度
- Priority priority 线程优先级
用法
auto thread_fn = [](ArgType arg) {
...
};
this->thread_.Create(thread_fn, arg, "task_name", 256, Thread::MEDIUM);
System::Thread& System::Thread::Current(void)
功能
获取当前线程对象
返回值
- System::Thread& 当前线程对象
参数
- void
示例
System::Thread::Current().SleepMilliseconds(1000);
void System::Thread::Yield(void)
功能
切换到下一个就绪的线程
返回值
- System::Thread& 当前线程对象
参数
- void
示例
System::Thread::Current().SleepMilliseconds(1000);
void System::Thread::Delete(void)
功能
删除一个线程
返回值
- void
参数
- void
void System::Thread::Sleep(uint32_t ms)
功能
延时毫秒
返回值
- void
参数
- uint32_t ms 要延时的毫秒数
同类接口
void System::Thread::SleepMilliseconds(uint32_t ms)
void System::Thread::SleepSeconds(uint32_t ms)
void System::Thread::SleepMinutes(uint32_t s)
void System::Thread::SleepHours(uint32_t h)
void System::Thread::SleepDays(uint32_t d)
void System::Thread::SleepUntil(uint32_t ms, uint32_t& last_wakeup_time)
功能
延时至毫秒
返回值
- void
参数
- uint32_t ms 要延时的毫秒数
- uint32_t ms 上次唤醒时间
用法
auto thread_fn = [](ArgType arg){
uint32_t last_wakeup_time = 0U;
...
while(1){
...
/* 保证100hz运行 */
System::Thread::Current().SleepUntil(10, last_wakeup_time);
}
};
同类接口
void System::Thread::SleepUntilMilliseconds(uint32_t ms)
timer.hpp
System::Timer::Create(FunType fun, ArgType arg, uint32_t cycle)
定义
template <typename FunType, typename ArgType>
TimerHandle System::Timer::Create(FunType fun, ArgType arg, uint32_t cycle)
功能
创建一个定时任务,创建完成后立刻开始运行
返回值
- TimerHandle 任务句柄
参数
- void (*fun)(ArgType) 任务函数
- ArgType arg 任务参数
- uint32_t cycle 任务执行周期(ms)
void System::Timer::Delete(TimerHandle& timer)
功能
删除一个定时任务
返回值
- void
参数
- TimerHandle& timer 任务句柄
void System::Timer::Start(TimerHandle& timer)
功能
开始一个定时任务
返回值
- void
参数
- TimerHandle& timer 任务句柄
void System::Timer::Stop(TimerHandle& timer)
功能
暂停一个定时任务
返回值
- void
参数
- TimerHandle& timer 任务句柄
void System::Timer::SetCycle(TimerHandle& timer, uint32_t cycle)
功能
更改定时任务执行周期
返回值
- void
参数
- TimerHandle& timer 任务句柄
- uint32_t cycle 任务执行周期