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

相关推荐
不脱发的程序猿5 天前
MCU裸机程序如何移植到RTOS?
单片机·嵌入式硬件·rtos
望获linux6 天前
医疗实时操作系统方案:手术机器人的微秒级运动控制
人工智能·机器人·实时操作系统·rtos·嵌入式软件·医疗自动化
不脱发的程序猿6 天前
如何优化MCU中断响应时间
单片机·嵌入式硬件·rtos
602寝室长10 天前
RT-THREAD RTC组件中Alarm功能驱动完善
stm32·单片机·rt-thread·rtos
望获linux11 天前
实时操作系统:航空电子系统的安全基石还是创新枷锁?
人工智能·安全·机器人·操作系统·开源软件·rtos·飞行器
望获linux17 天前
北京亦庄机器人马拉松:人机共跑背后的技术突破与产业启示
linux·人工智能·机器人·操作系统·开源软件·rtos·具身智能
望获linux19 天前
望获实时Linux系统荣获人形机器人技术突破奖
linux·运维·机器人·操作系统·开源软件·rtos
望获linux25 天前
实时操作系统在服务型机器人中的关键作用
linux·机器人·操作系统·开源软件·rtos·具身智能
小白今天也很酷1 个月前
使用FreeRTOS解决单片机串口异步打印
单片机·嵌入式硬件·freertos·rtos·串口异步打印
集大周杰伦3 个月前
FreeRTOS 源码结构解析与 STM32 HAL 库移植实践(任务创建、删除篇)
stm32·freertos·实时操作系统·嵌入式开发·rtos·任务调度·任务控制块