首页 > 其他分享 >1824_ChibiOS的OS库

1824_ChibiOS的OS库

时间:2023-11-14 12:32:32浏览次数:27  
标签:RT OS 功能 NIL OSLIB 1824 线程 ChibiOS


GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com)

1824_ChibiOS的OS库_信号量

1. 对于ChibiOS来说,OSLIB是一个可选的部分。

2. 这部分有些功能之前是在内核中的,但是由于内核是两种,RT以及NIL,这里面的代码是有一些会重复的。这样,重复的一部分功能也被拆分了出来。

3. 满足什么条件的功能或者内容会放在OSLIB中呢?

         a. 只用RT或者NIL的基本功能或者API;

         b. 使用RT或者NIL的tick以及底层的功能没法对其进行优化的部分;

         c. 跟CPU架构以及编译器不相干的部分;

         d. 这一类功能只用到内核本身的功能,不会用到外部的模块。

         满足上面这几条需求条件的,被设计放到了OSLIB之中。

4. OSLIB的功能1: 存储分配器。这个功能可以实现core、heap以及pool的分配,之前曾经在RT之中,后来被转移到了OSLIB。

5. OSLIB的功能2: 二值信号量,这个其实是信号量的一个变种。

1824_ChibiOS的OS库_ChibiOS_02

1. OSLIB的功能3:邮箱,邮箱提供的功能主要是处理异步的消息队列。

2. OSLIB的功能4:对象FIFO,这个其实处理的不是对象本身,而是其指针引用。通过这种方式,避免复制从而让执行更加高效。

3. OSLIB的功能5:管道,这个主要是处理线程之间的字节流。这种设计,很UNIX。我也很期待尝试下在嵌入式的环境中能够如何利用这样的功能。

4. OSLIB的功能6:代理线程,这个我多少有一点没弄明白其含义。似乎是委托另一个线程执行某一个功能,而委托的行为则是发生在上下文切换的过程中。具体的实现以及功能,还得结合应用来理解下。

5. OSLIB的功能7:作业队列,主要是处理函数以及参数的组合流。

6. OSLIB的功能8:目标缓存。这个功能的典型应用是在文件系统之中。

7. OSLIB的功能9:目标格式化。

8. OSLIB的功能10:测试的一些相关功能,主要是OS的自测。

         以上就是OSLIB的一个简单的功能以及特点的介绍,后面的调试中可以继续体会一下。等把这个OS的功能基本梳理一遍之后,调试的时候我会结合一个假象的应用场景来尝试做一个功能集合的集成。

标签:RT,OS,功能,NIL,OSLIB,1824,线程,ChibiOS
From: https://blog.51cto.com/greyzhang/8366017

相关文章

  • HarmonyOS数据管理与应用数据持久化(一)
    一.数据管理概述功能介绍数据管理为开发者提供数据存储、数据管理能力,比如联系人应用数据可以保存到数据库中,提供数据库的安全、可靠等管理机制。● 数据存储:提供通用数据持久化能力,根据数据特点,分为用户首选项、键值型数据库和关系型数据库。● 数据管理:提供高效的数据管理能......
  • 1825_ChibiOS的OSLIB中的存储分配器
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.之前有点不是很理解什么是静态OS,从这里基本上得到了这个答案。所谓的静态,其实就是内核之中不会使用Free以及Malloc这样的存储分配功能。2.虽然内核之中没有用到这样的存储动态......
  • 1823_ChibiOS的调试功能
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.这里提到的调试,debug,跟测试工作本身是没有直接关系的。主要是为了保证开发以及实现上的保障来考虑的。2.所有的调试选项对于内核配置来说都是可访问的,这种设计应该是因为这样的......
  • centos7安装nfs(离线和yum都可以)
    一:检查端口是否占用本程序占用2049的tcp和udp端口;二:安装nfs:yum安装:yuminstallnfs-utilsrpcbind-y注意:服务端和客户端都是这个命令离线包安装:百度网盘下载安装包:链接:https://pan.baidu.com/s/1ORc1cXa042tP5DDRJgbuXw?pwd=1234提取码:1234下载上述nfs离线包,把包上传......
  • tmdb 无法连接 修改host可解决 (2023/11/14)
    tinyMediaManager的刮削服务总是失败,根本原因在于tmdb网站的DNS地址无法解析。解决方法:手动修改DNS。作者:PH34Rhttps://www.bilibili.com/read/cv18215732/?spm_id_from=333.999.collection.opus.click出处:bilibili通过 https://dnschecker.org/ 查询上述三个地址,选择在......
  • springboot集成nacos
    一、加pom文件<!--Nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><d......
  • Anolis OS 23 基于 AMD 实例的 AI 推理优化实践 | 龙蜥技术
    编者按:龙蜥操作系统AnolisOS23是龙蜥社区基于操作系统分层分类理论,面向上游原生社区独立选型,全面支持智算的首款国产操作系统,为开发人员提供了强大的AI开发平台,通过支持龙蜥生态软件仓库(EPAO),AnolisOS23实现了对主流AI框架的全面支持,使得AI开发更加便捷高效。本文将基......
  • Nacos共享配置(shared-configs)和扩展配(extension-config)
    原文地址:https://www.jianshu.com/p/8715072d3f4c一、共享配置(shared-configs)和扩展配(extension-config)日常开发中,多个模块可能会有很多共用的配置,比如数据库连接信息,Redis连接信息,RabbitMQ连接信息,监控配置等等。那么此时,我们就希望可以加载多个配置,多个项目共享同一个......
  • Mac Os VS Code 无法升级Cannot update while running on a read-only volume.
    macOSVSCode无法升级,提示“Cannotupdatewhilerunningonaread-onlyvolume“错误提示错误如下:Cannotupdatewhilerunningonaread-onlyvolume.Theapplicationisonaread-onlyvolume.Pleasemovetheapplicationandtryagain.Ifyou’reonmacOSSierr......
  • Cocos Creator中Component使用详解
    序言在CocosCreator游戏开发中,组件是使用是非常频繁,对于组件的入口函数、常用属性、组件的操作等,必须做到非常熟悉。一、组件入口函数1:onLoad:组件加载的时候调用,保证了你可以获取到场景中的其他节点,以及节点关联的资源数据2:start:也就是第一次执行update之前触发......