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中的队列还是有一点差异的。

相关推荐
养乐多得多2 个月前
FreeRTOS 信号量
stm32·嵌入式硬件·学习·freertos·rtos
物联网全栈工程猪2 个月前
实时操作系统(UCOS-III )实用教程
物联网·嵌入式·实时操作系统·rtos
sz66cm2 个月前
RTOS系统 -- 调试大法之FreeRTOS在M4上实现coredump功能
freertos·rtos·实时系统
sz66cm2 个月前
RTOS系统 -- ARM Cortex-M4 RPMSG之通道初始化函数
arm开发·rtos
低调包含3 个月前
RT-Thread和freeRTOS启动流程
c语言·arm开发·rtos
帅得不敢出门3 个月前
ESP32 esp-idf esp-adf环境安装及.a库创建与编译
stm32·单片机·rtos
@daiwei3 个月前
深入探究RTOS的任务调度
rtos·底层原理
零界探秘3 个月前
MAX30102驱动
单片机·嵌入式硬件·c·rtos·max30102
Spectre_Mercury3 个月前
基于cortex-M3的rtos原理(上)
freertos·cortex-m3·rtos
想和我重名?3 个月前
RT-thread内核对象的基础应用
单片机·rtt·rtos