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 个月前
万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用
rtos·arinc653
flashier1 个月前
ESP32学习笔记_FreeRTOS(5)——Mutex
c语言·笔记·学习·esp32·rtos
一只搬砖的猹1 个月前
小米vela系统(基于开源nuttx内核)——openvela开源项目
linux·开源·小米·rtos·nuttx·openvela·apache2.0
一只搬砖的猹1 个月前
小米vela系统(基于开源nuttx内核)——如何使用信号量进行PV操作
嵌入式硬件·内核·小米·rtos·信号量·线程通信·vela系统
一只搬砖的猹1 个月前
项目实战——使用python脚本完成指定OTA或者其他功能的自动化断电上电测试
linux·单片机·嵌入式硬件·python自动化·rtos·嵌入式软件·ota
PegasusYu2 个月前
STM32CUBEIDE FreeRTOS操作教程(十二):std dynamic memory 标准动态内存
stm32·freertos·rtos·stm32cubeide·free-rtos·标准动态内存·dynamic memeory
清炒孔心菜2 个月前
RTOS 基础知识
rtos
嵌新程3 个月前
day03(单片机高级)RTOS
stm32·单片机·嵌入式硬件·freertos·rtos·u575
PegasusYu3 个月前
STM32CUBEIDE FreeRTOS操作教程(九):eventgroup事件标志组
stm32·教程·rtos·stm32cubeide·free-rtos·eventgroup·时间标志组
努力的里3 个月前
【STM32开发】-FreeRTOS开发入手学习
stm32·学习·freertos·rtos