GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com)
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: 二值信号量,这个其实是信号量的一个变种。
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