1820_ChibiOS中的同步消息

全部学习汇总: ++GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com)++

  1. 看到这里提到的这个模型,我在想是不是我一直没有搞定的多核可以利用这个机制来解决。如果是多核,ChibiOS的这种机制是否依然奏效?这是一个后续需要去弄清楚的问题。

  2. 之前看消息传递过程的说明的时候理解错了,我当时理解的是消息从即将切出去的线程传递出来,可以传递给即将切入进去的线程,但是这个切入进去的线程只是未来切入的一个概念。现在看来不是,而我自己的这个理解其实深思靠不住,如果按我理解的这样就没有所谓的切入概念了。

  3. 消息的传递可以基于优先级也可以基于FIFO。

  4. 大概看了一下,这个消息其实跟FreeRTOS中的队列消息类似。但是,ChibiOS的很多设计理念是围绕线程展开的,而FreeRTOS中可能是数据。因此,理解的角度上可能会有不同。

  1. 线程可以既是客户端也是服务器端,这让我想到了,其实这个机制可以做一个中转机制。

  2. 消息的类型都是msg_t,可以发编码也可以发复杂的数据指针。

  3. RT内核中定义的3个编码:MSG_OK、MSG_TIMEOUT、MSG_RESET。

  1. 这一页给出的例子可以看出来,消息的传递有时候不仅仅是为了功能服务的缺失而传递,有时候是为了连接不同的软件抽象层。

  2. 可重入的库可以以线程代码的方式封装到线程,这样有几个有点:第一,多线程无序考虑互斥;第二,只需要给server线程分大的堆栈空间;第三,代码会议固定的优先级运行,也就是封装线程的优先级。

看了接口描述,本来自己假想了一下使用模型,没想到考虑错了。这里的server模板,主要分为4步:第一,server请求消息;第二,获取消息;第三,处理;第四,返回通知。

客户端与server几乎是一样的模板,消息内容与处理方式略有不同。看到这里之后,我觉得有一点疑惑:这样的模板如何支持队列化处理?

初始化部分的消息发送,纯粹是一个信息的传递。

这就是ChibiOS中的消息,与FreeRTOS中的队列还是有一点差异的。

相关推荐
嵌新程1 个月前
day03(单片机高级)RTOS
stm32·单片机·嵌入式硬件·freertos·rtos·u575
PegasusYu1 个月前
STM32CUBEIDE FreeRTOS操作教程(九):eventgroup事件标志组
stm32·教程·rtos·stm32cubeide·free-rtos·eventgroup·时间标志组
努力的里1 个月前
【STM32开发】-FreeRTOS开发入手学习
stm32·学习·freertos·rtos
PegasusYu2 个月前
STM32CUBEIDE FreeRTOS操作教程(八):queues多队列
freertos·rtos·队列·stm32cubeide·free-rtos·queues·多队列
「QT(C++)开发工程师」2 个月前
FreeRTOS | 原理介绍和资源get(第十四天)
stm32·单片机·嵌入式硬件·嵌入式·rtos
螺丝钉的扭矩一瞬间产生高能蛋白2 个月前
Linux与RTOS的区别
linux·c语言·stm32·单片机·嵌入式·rtos
硬汉嵌入式3 个月前
CMSIS-RTOS V2封装层专题视频,一期视频将常用配置和用法梳理清楚,适用于RTX5和FreeRTOS(2024-09-28)
rtos·h7-tool
PegasusYu3 个月前
STM32CUBEIDE FreeRTOS操作教程(五):mutex互斥信号量
stm32·mutex·rtos·信号量·stm32cubeide·free-rtos·互斥信号量
养乐多得多5 个月前
FreeRTOS 信号量
stm32·嵌入式硬件·学习·freertos·rtos
物联网全栈工程猪5 个月前
实时操作系统(UCOS-III )实用教程
物联网·嵌入式·实时操作系统·rtos