![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RT_Thread学习之路
文章平均质量分 88
学习+分析
L加号
这个作者很懒,什么都没留下…
展开
-
RT_thread(九)线程间通信之信号
信号在 RT-Thread 中用作异步通信,POSIX 标准定义了 sigset_t 类型来定义一个信号集,然而 sigset_t 类型在不同的系统可能有不同的定义方式,在 RT-Thread 中,将 sigset_t 定义成了 unsigned long 型,并命名为 rt_sigset_t,应用程序能够使用的信号为 SIGUSR1(10)和 SIGUSR2(12)。信号阻塞,也就是信号被屏蔽,信号发送时,设置了信号的线程接收不到信号,也不会引发信号的作用:软中断。发生了异常,给处理异常的线程发送信号。.原创 2022-08-27 16:03:16 · 1009 阅读 · 0 评论 -
RT_thread(八)线程间通信之消息队列
消息队列是一种常用的线程通信方法,消息队列接收线程或者系统服务例程的不定长的信息,并且存储在自己的内存空间,其他线程可以读取消息队列中的信息。若消息队列为空时,读取线程将挂起在消息队列的等待读取链表若消息队列为满时,写入线程将挂起在消息队列的等待发送链表消息队列是一种异步的通信方式。如上图所示,线程和中断服务可以发送多条消息到消息队列,一个或多个线程也可以从消息队列中获得消息。当有多个消息发送到消息队列时,通常将先进入消息队列的消息先传给线程,也就是说,线程先得到的是最先进入消息队列的消息,即先进先原创 2022-06-03 00:01:49 · 1516 阅读 · 0 评论 -
RT_thread(七)线程间通信之邮箱
在裸机编程中,通信是使用全局变量,一些程序可能会因为一段操作改变全局变量的值,而另一些程序对这些全局变量进行读取,某些值会导致一些程序进行运行,从而达到多功能之间的协作。邮箱服务是实时操作系统中一种典型的线程间通信方法,比如线程1启动后,线程2要随之启动,就可以用邮箱传递信息1.create-delete 中有分配内存,释放内存,init-detach 中没有。与创建邮箱不同的是,静态邮箱对象的内存是在系统编译时由编译器分配的,一般放于读写数据段或未初始化数据段中,其余的初始化工作与创建邮箱时相同。2.原创 2022-06-01 22:49:27 · 2460 阅读 · 0 评论 -
RT_thread(六)线程间同步之事件集
文章目录事件集事件集工作机制事件集控制块事件操作初始化 / 脱离事件集创建 / 删除事件集发送事件接收事件集一个事件集可以包含多个事件,利用事件集可以完成一对多,多对多的线程间同步。例子:出游这一事件,组织者在等人(事件)张三:到了李四:到了王五:到了组织者表示都到了,出发事件集工作机制事件集主要用于线程间的同步,与信号量不同,它的特点是可以实现一对多,多对多的同步。一个线程对多个事件:任意一个事件唤醒线程,或多个事件唤醒线程多个线程对多个事件:多个事件可以用32位无符号整型变量表示原创 2022-05-28 21:59:20 · 405 阅读 · 0 评论 -
RT_thread(五)线程间同步之互斥量
文章目录互斥量一、互斥量工作机制1、优先级反转问题2.优先级继承机制3.示例图分析1.优先级反转2.优先级继承4代码分析1.互斥量控制块2互斥量管理图3初始化和脱离4创建和删除5 获取互斥量6释放互斥量互斥量互斥量又叫相互排斥的信号量,是一种特殊的二值信号量。互斥量类似于只有一个车位的停车场:当有一辆车进入的时候,将停车场大门锁住,其他车辆在外面等候。当里面的车出来时,将停车场大门打开,下一辆车才可以进入。一、互斥量工作机制互斥量的状态只有两种,开锁或闭锁。用互斥量处理不同线程对临界资源的同步访原创 2022-05-25 16:48:16 · 433 阅读 · 0 评论 -
RT_thread(四)线程间同步之信号量
文章目录线程间同步1.信号量1.信号量机制2.信号量控制块3.信号量管理方式1.判断是否使用信号量2.初始化和脱离3.创建和删除3.获取信号量4.释放信号量信号量使用例子线程间同步在多线程实时系统中,一项工作的完成往往可以通过多个线程协调的方式共同来完成,而通过这三种方式:信号量、互斥量、事件集可以保证多个线程之间同步。线程的同步方式有很多种,其核心思想都是:在访问临界区的时候只允许一个 (或一类) 线程运行。进入 / 退出临界区的方式有很多种:1)调用 rt_hw_interrupt_disab原创 2022-05-24 15:41:08 · 513 阅读 · 0 评论 -
RT_thread(三)时钟管理
RT_thread内核学习系列1.RT_thread(一)系统的启动rtthread_startup2.RT_thread(二)线程的操作文章目录重点一、时钟节拍(clock.c)1.时钟节拍tick是什么2.获得当前tick3.tick的重赋值4.时间换算二.定时器的管理(timer.c文件)1.定时器结构体2.定时器控制1.定时器机制1.RT-Thread 的定时器提供两类定时器机制2.RT-Thread 的定时器提供两种定时器模式2.定时器初始化和脱离3.定时器创建和删除4.初始化和创建、脱.原创 2022-05-16 18:13:56 · 265 阅读 · 0 评论 -
RT_thread(二)线程的操作
rtthread线程代码分析原创 2022-05-14 18:02:38 · 2167 阅读 · 0 评论 -
RT_thread(一)系统的启动rtthread_startup
简单分析了rtthread系统的启动代码原创 2022-05-12 23:30:33 · 1933 阅读 · 0 评论