rt_thread_sleep/delay() 的参数 tick,单位为 1 个系统时钟节拍(OS tick)。 rt_thread_mdelay() 的参数 ms,单位为 1ms。 函数的返回值为 RT_EOK。 使得线程进入休眠,即调用这三个函数中的一个,也是让出 CPU 权限的一种方式,可以让低优先级的线程能够得到执行。 如果高优先级的线程没有让出 CPU 的操作...
调度器如果主动去执行rt_thread_delay或者rt_thread_mdelay会发生什么事情? 我们知道,我们如果要让线程释放资源,只需要调用上述两个函数,就可以切换到其他线程,同时我们的理解上常常会认为这个就是一个等待延时函数,从而当做延时函数来使用,实际上来说,当在调度锁中执行这个delay函数,实际上是无效的,也就是说,无论de...
#include<rtthread.h>#define THREAD_PRIORITY 25#define THREAD_STACK_SIZE 512#define THREAD_TIMESLICE 5staticrt_thread_ttid1=RT_NULL;/* 线程 1 的入口函数 */staticvoidthread1_entry(void*parameter){rt_uint32_tcount=0;while(1){/* 线程 1 采用低优先级运行,一直打印计数值 */rt_kprintf("thread...
启动线程:rt_thread_startup 获得当前线程:rt_thread_self 使线程让出处理器资源:rt_thread_yield(相同优先级,让出时间片) 使线程睡眠:rt_thread_sleeprt_thread_delayrt_thread_mdelay 挂起和恢复:rt_thread_suspendrt_thread_resume 控制线程:rt_thread_control 空闲钩子函数:rt_thread_idle_sethookrt_thread_i...
RT-Thread线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程,系统线程是由RT-Thread内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除,每个线程都有重要的属性,如线程控制块、线程栈、入口...
社区新人的RT-Thread学习笔记2——时钟管理,本文记录RT-Thread的时钟相关知识,包括时钟节拍、RT-Thread定时器工作机制以及定时器的管理方式
本文使用了rt-thread自带的钩子函数和显示函数进行了实验,从rt-thread自带的延时函数rt_thread_delay()函数入手,对rt-thread系统的调度器进行分析。主要参考资料是野火的rt-thread手册和rt-thread官方文档,汇编部分的指令是参考的cortex-M3权威
睡眠:rt_thread_sleep 、 rt_thread_delay 和 rt_thread_mdelay 等函数可使当前线程挂起指定时间,时间结束后线程重新进入就绪状态。 挂起和恢复:rt_thread_suspend 函数挂起线程, rt_thread_resume 函数恢复被挂起的线程。 控制:rt_thread_control 函数可用于动态更改线程的优先级等属性。
RT-Thread 线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程。系统线程是由RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器...
RT-Thread Version V4.02 Hardware Type/Architectures STM32F103 Develop Toolchain RT-Thread Studio Describe the bug [Bug] rt_thread_mdelay 不是延时的ms,是systick的时钟周期的和rt_thread_delay函数没区别 Other additional context /** This function will let cu