1813_ChibiOS的RT系统层

news2024/11/20 4:42:27

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

         在ChibiOS中有一个RT系统层的部分,也就是内核的系统层。这个在其他的OS中是没有看到的,这里针对这一部分做一个简单的认识。

1. 这个系统层包括几个方面:初始化、放弃或中止、中断处理、关键区、功耗管理、实时的计数器。

2. 初始化的部分,主要就是C语言的main函数中调用的OS的初始化的接口。

1. abort的接口,除了能够让OS停止之外,还能够通过参数传递异常的原因。

2. 中断的处理涉及到处理程序、前后的处理过程接口、快速中断以及中断的使能、挂起以及关闭等功能。

1. 不可冲突的线程关键区、不可重入的ISR关键区需要保护,这个是很容易理解的。

2. 除了上面的部分,还有一段需要做专门的保护,那就是可冲突的通用部分,也需要考虑作为关键区来处理。

         功耗管理其实也算不上是OS直接的功能,因为很多功耗的部分是通过其他的手段来实施的。但是OS提供了一个无tick的模式,这种模式下是可以降低一部分功耗的。

1. 实时计数器的两个重要的作用:第一,精确的延时处理;第二,带有超时处理的短暂循环。

2. 有时候,延时控制的一个保障是增加一部分延时时间。这样,很多设计中可能会设计的延时时间超过需求。但是OS的线程是可以中断的,各种切换也会消耗一些时间。因此,有时候这些资源消耗可以考虑成是延时时间功能的一个保障。

3. 这部分还提供了计数器与各种时间单位的转换关系。

         看完这部分,其实我看到的功能中在FreeRTOS的设计中基本上也是全都可以看到的。可能ChibiOS中还会有更加详细的描述,不过根据我对FreeRTOS的简单了解,我了解到的FreeRTOS中对这部分功能的支持其实是多于这一份文档中的功能描述的。其实,也可以了解,其实大部分的OS设计或许是殊途同归。不过,我之所以觉得ChibiOS好玩,还是因为它其实是考虑了更多的接口层甚至中间件的设计。折让这个产品可以更好地在设计中得以应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1112178.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

送水订水商城小程序的作用是什么

无论瓶装水还是桶装水在市场中的需求度总是很高,相关送水公司或零售水企业也不少,消费者的购物方式一般是品牌直售或通过经销商,零售水则是超市/商场等场景。随着人们健康品质生活提升,家庭或办公等场所对桶装水或瓶装水的需求日益…

启山智软商城源码新官网震撼上线

欢迎来到我们全新升级的启山智软官网! 启山智软一直致力于提供最优质的产品和服务,不断为客户创造更多价值。为了更好地展示我们的品牌形象和产品特色,我们进行了全新的网站升级。新官网拥有更加美观、简洁、直观的界面设计,更加智…

洗地机哪个品牌最好最实用?口碑最好的洗地机

当代人的家庭清洁方式,都悄摸摸的用上了智能扫地机或者洗地机,但是扫地机机器人对于一些顽固污渍的清洁能力略差,人不在家里的时候总担心会碰到啥东西卡机,所以,洗地机更适合对于清洁有高要求的人群,毕竟自…

开发过程中的八种确认方法

确认是确保做了正确的事情,方向不偏。确认可以在项目前期做,也可以在项目后期做,提倡持续确认、质量左移。在前期主要是检测需求的质量,在后期是检测完成的系统是否真的是客户所需。开发过程中常见的八种确认手段有: 1…

【APUE】进程

目录 一、进程标识符 pid 1.1 类型 pid_t 1.2 命令 ps 1.3 getpid && getppid 二、进程的产生 2.1 fork 简介 2.2 fork 实例 1 2.3 fork 实例 2 2.4 vfork 三、进程的消亡及释放资源 3.1 wait 3.2 waitpid 3.3 应用:进程分配初探 四、exec…

基于SSM的疫情期间高校师生外出请假管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

十八、字符串(1)

本章概要 字符串的不可变 的重载与 StringBuilder 意外递归字符串操作 字符串操作毫无疑问是计算机程序设计中最常见的行为之一。 在 Java 大展拳脚的 Web 系统中更是如此。在本章中,我们将深入学习在 Java 语言中应用最广泛的 String 类,并研究与之相关…

功率放大器在材料测试中的应用有哪些

功率放大器在材料测试中有广泛的应用,尤其在材料的物理、电子和热学性质等方面的研究中起到了重要的作用。下面Aigtek安泰将详细介绍功率放大器在材料测试中的一些主要应用。 电学特性测试:功率放大器用于材料的电学特性测试,如电导率、介电常…

划词搜索IP插件

插件背景 浏览器插件可以让用户根据个人工作及日常需求来定制浏览器的功能和界面。当用户在网页上看到一些IP地址时,或许会好奇它们的来源和归属。传统的做法是,用户需要复制这个IP地址,然后跳转到埃文科技旗下的http://IPUU.net网站进行查询…

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于BiLSTM-…

MMoE: 基于多门专家混合的多任务学习任务关系建模

文章链接:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 发表会议: KKD 2018 (Knowledge Discovery and Data Mining,数据挖掘领域顶会) 目录 1.背景介绍Recommendation SystemMulti-…

wps excel js编程

定义全局变量 const a "dota" function test() {Debug.Print(a) }获取表格中单元格内容 function test() {Debug.Print("第一行第二列",Cells(1,2).Text)Debug.Print("A1:",Range("A1").Text) }写单元格 Range("C1").Val…

【UE】两步实现“从UI中拖出Actor放置到场景中”

效果 步骤 1. 创建两个actor蓝图 在两个蓝图中分别添加立方体和球体形状的静态网格体组件,注意移动性设置为“可移动” 设置碰撞预设为“NoCollsion” 2. 先创建一个控件蓝图 打开控件蓝图,在画布面板中添加两个按钮 为按钮添加“按压时”和“松开时”的…

手工测试的迷茫:除了重复劳动,到底还有什么?

我是在2008年毕业的,三本的学校,不上不下的专业水平,毕业的时候,恰好遇到了金融危机。校园招聘里阴差阳错的巧合,让我走上了软件测试工程师的道路。 入职第一天,来了个高大上的讲师,记得他是这…

easyphoto 妙鸭相机

AIGC专栏7——EasyPhoto 人像训练与生成原理详解-CSDN博客如何训练一个高品质的人像Lora与应用高品质Lora的链路对于写真生成而言非常重要。由《LoRA: Low-Rank Adaptation of Large Language Models》 提出的一种基于低秩矩阵的对大参数模型进行少量参数微调训练的方法&#x…

【牛客网】HJ91.走方格的方案数

题目 思路 考虑特殊情况,假设行数为m1,列数为n 则最短路径为mn 假设行数为m,列数n1,则最短路径为mn 考虑普遍情况 假设行数为m,列数为n 则总路经数为行数为m-1列数为n和行数为m列数为n-1的两个的和 根据上述条件,可以考虑使用递归的方式进行解决 代码 import java.util.Scan…

springmvc视图格式——模板引擎freemarker输出HTML文本

目录 1. freemarker 介绍创建测试工程2.2.2) 配置文件2.2.3) 创建模型类2.2.4) 创建模板2.2.5) 创建controller2.2.6) 创建启动类2.2.7) 测试 2.3) freemarker基础2.3.1) 基础语法种类2.3.2) 集合指令(List和Map)2.3.3) if指令2.3.4) 运算符2.3.5) 空值处…

Java设计模式 | 基于订单批量支付场景,对策略模式和简单工厂模式进行简单实现

基于订单批量支付场景,对策略模式和简单工厂模式进行简单实现 文章目录 策略模式介绍实现抽象策略具体策略1.AliPayStrategy2.WeChatPayStrategy 环境 使用简单工厂来获取具体策略对象支付方式枚举策略工厂接口策略工厂实现 测试使用订单实体类对订单进行批量支付结…

VS code中使用code Runner插件直接运行Typescript

使用VS code运行ts 运行问题 我们知道,在VS code中运行.ts文件,是不能直接运行的,需要在修改代码之后,都重复执行两个命令,才能运行ts代码 tsc 文件名.ts (tsc 文件名.ts -w 可以监视ts文件(监视模…

【数字人】5、RAD-NeRF | 通过解耦 audio-spatial 编码来实现基于 NeRF 的高效数字人合成

文章目录 一、背景二、方法2.1 问题定义2.2 Decomposed audio-spatial encoding module2.3 Pseudo-3D Deformable Module 用于控制 torso2.4 训练细节 三、效果3.1 实验设置3.2 对比 论文:Real-time Neural Radiance Talking Portrait Synthesis via Audio-spatial …