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

相关推荐
切糕师学AI3 天前
NuttX RTOS是什么?
嵌入式·rtos
aspirestro三水哥4 天前
6.4非POSIXskin进程间通信
rtos·xenomai
aspirestro三水哥5 天前
6.2POSIX线程间通信
rtos·xenomai
鸿蒙小白龙6 天前
OpenHarmony轻量系统(Hi3861)RTOS API开发详解
openharmony·rtos·liteos·轻量系统
无聊到发博客的菜鸟15 天前
STM32 手册寄存器属性
stm32·单片机·嵌入式·rtos·寄存器
aspirestro三水哥15 天前
5.3RTDM用户层驱动
rtos·xenomai
无聊到发博客的菜鸟15 天前
STM32 RTC时钟不准的问题
stm32·嵌入式·rtc·rtos
aspirestro三水哥18 天前
4.7POSIX进程与线程实例
rtos·xenomai
无聊到发博客的菜鸟18 天前
使用STM32对SD卡进行性能测试
stm32·单片机·rtos·sd卡·fatfs
切糕师学AI20 天前
Azure RTOS ThreadX 简介
microsoft·嵌入式·azure·rtos