rt_thread的定时器系统分为软件定时和硬件定时,但是光看名字会觉得一个是硬件外设一个是软件定时,其实不然,硬件定时其实是说相关超时函数是在systick中断中执行的,而软件定时是在一个自带的定时线程中执行的,所以硬件定时只会被高级中断抢占,而软件定时可能会被更高优先级的线程抢占。在rthread中,每一个线程的结构体都有一个定时器,这个定时器的作用其实是用来delay或者ipc的timeout的,而这个定时器是以硬件定时器的方式运行,如果没有比如很多定时器且都是大段代码这样的特殊需求,建议都使用硬件定时器,因为一方面是精准些,一方面是软件定时器的列表rt_soft_timer_list是没有取用的外部接口的(当然可以自己在源文件里面改)
RT THREAD的定时器系统
最新推荐文章于 2024-08-04 22:51:24 发布