当前位置: 首页 > news >正文

1808_ChibiOS基本的架构介绍

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

         简单看了一下ChibiOS的架构介绍,感觉这种OS以及组件非常适合快速构建一个应用。这里做一个简单的资料整理。。

1. 不同于其他的OS,ChibiOS提供的不仅仅是一个调度器,而且还有丰富的OS组件。

2. ChibiOS提供了两种调度器,一个是RT另一个是NIL。后者与前者兼容,但是实现的机理不同,主要是为了提供更小的存储消耗。

3. 在设计上,提供了很多库以及抽象层的设计,可以让应用实现快速的搭建。而SB是一个沙盒功能,可以提供非安全的代码运行环境。

4. 在应用模型上,跟之前的笔记中这你的信息一致,还是一个单应用多线程的模型。线程彼此之间是没有隔离的,但是可以通过SB子系统处理一些不安全的应用。不同于通用OS,这个系统中的应用也没有加载的概念。

1. 这个图片是OS应用的一个大的架构图,里面包含了很多交互关系。其中,HAL移植的部分,应该对应着AUTOSAR中的MCAL的部分。这里的板子抽象的部分相比熟悉的AUTOSAR的架构图来说,位置是颠倒的。其实也很简单,AUTOSAR表达的是功能抽象,而这里表达的是一个访问的流程。

2. ChibiOS是提供启动代码的,但是这个架构里面的启动代码的位置有点特殊。是先到应用再到OS。我觉得可能这里可以从一个实际的编码的经验角度考虑,其实这个启动代码提供的是一个初始化的接口,这里先进行一些初始化再启动OS,这样的流程应该就理顺合理了。

1. 内核部分中可移植的部分以及通用的部分进行了分离,这似乎是大部分的OS采用的手段。

2. 针对每一个部分进行了介绍,从介绍中可以看到这个HAL Port Layer其实就是MCAL的概念。

3. 这里还增加了一个OS的抽象层,主要是为了HAL提供一些OS的功能。但是,这样的功能并不是百分百绑定OS的,其实换一个其他的OS或者说是裸机程序都能够提供一些这样的实现。

4. 编译器、芯片架构、MCU的型号等都可能影响软件的可移植性。

1. 不同架构或者芯片影响可移植性,很重要的一点可能在于中断。中断的代码语法、ISR本身的功能特性以及中断系统的架构不同等都可能会影响到移植性。另外,不同的开发环境中的库文件可能也不通用。

2. ChibiOS中的设备接口进行标准化的抽象,这个是我很喜欢也很想去体验一下的。

3. 常用的一些外设接口,都已经实现了标准化,这对于软件的快速开发来说非常友好。

4. 在软件实现的时候,不需要考虑过多的ISR的处理。不过,这方面的实现处理比较灵活。

5. 外设驱动的处理,在API曾经考虑了很多超时处理。

以上就是CHibiOS架构的一个简单的介绍,看完之后的确觉得这个OS比我以往接触到的任何嵌入式OS都更加让我觉得心动。

http://www.lryc.cn/news/189057.html

相关文章:

  • 曦力音视频转换工具Xilisoft Video Converter Ultimate mac中文版
  • Spring MVC 五:DispatcherServlet初始化之 mvc:annotation-driven
  • uniapp EventChannel 页面跳转参数事件传递navigateBack,navigateTo 成功后通知事件区别
  • 【C++ Primer Plus学习记录】指针——使用delete释放内存
  • 2023 NOIP A层联测9 - 风信子 题解
  • 岩土工程安全监测无线振弦采集仪在无线组网的关键要点
  • 代码随想录Day14 LeetCodeT110平衡二叉树 T257二叉树的所有路径 T404 左叶子之和
  • C语言自定义类型_枚举联合(3)
  • asp.net网上销售系统VS开发mysql数据库web结构c#编程Microsoft Visual Studio计算机毕业设计
  • 【Windows】RPC调用过程实例详解
  • 动手学强化学习第2章多臂老虎机
  • 钡铼BL124EC实现EtherCAT转Ethernet/IP的优势
  • 使用IntelliJ Idea必备的插件!
  • 代码随想录算法训练营第23期day19| 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
  • 第四章 字符串part02 28. 实现strStr() 459. 重复的子字符串
  • 设计模式 - 状态模式
  • 【vim 学习系列文章 9 -- .vim 脚本文件开发学习】
  • NAT模式和桥接模式的区别
  • 应对出海安全合规挑战,兆珑科技为什么选择了亚马逊云科技?
  • Allegro基本规则设置指导书之Spacing规则设置
  • 使用【Blob、Base64】两种方式显示【文本、图片、视频】 使用 video 组件播放视频
  • 深度学习_1_基本语法
  • c#设计模式-行为型模式 之 中介者模式
  • 小程序uView2.X框架upload组件上传方法总结+避坑
  • 人脸检测及追踪回顾
  • 虚拟环境和包
  • springboot配置文件读取
  • 纵享丝滑!Cesium + ffmpegserver 生成高质量动态视频【逐帧生成】
  • Linux下C++编程-进度条
  • C语言常见题目(1)交换两个变量的值,数的逆序输出,猜数游戏,两个数比较大小等