1826_ChibiOS的OSLIB中的二值信号量

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

1. 二值信号其实是信号量的一种特殊应用,为了保证高效,实现上都是采用计数信号量的内联设计实现的。

2. 与常规的二值信号相比,ChibiOS实现的二值信号进行了一些扩展功能。主要是复位、超时以及发消息。这些扩展的功能其实也是继承自计数信号。

         从接口的处理功能来看,可用的场景还是很多的。

         这个是代码使用的一个例子,比如说在中断中收到信号之后通过二值信号通知线程来处理。而这里的这部分实现,是完成了这个信号的通知部分。

1. 在对应的线程之中,首先做的是一个等待信号的操作。

2. 如果等待出现了超时,可以进行超时的处理。

1. 如果等待没有超时的时候等来了信号消息,那么获取中断的处理数据在这个线程之中处理。

2. main函数中给出来了二值信号的初始化。

1. 初始化之后进行了任务的创建。

2. 从提示信息看,这种场景之下使用计数信号量是不合适的。主要的问题点是计数信号量会一直增加,如果是线程处理的速度慢,很可能会出现计数信号超出最大限值溢出的情况。从这个描述看,其实设计良好的系统其实使用计数信号问题也不大。而从另一个溢出保护的角度来看,很可能二值信号在实现的时候可能加了OS中的wait操作。

以上的这些内容就是ChibiOS中的二值信号的一个简单的介绍,从这里其实能够看出来一个比较有意思的点:二值信号的值其实不仅是2个,只是最大数值限制在了1,而0和1正好是获取到以及没有获取到两个特殊的状态。而在这几个数值之外,其实还有一系列的复数用来代表排队的请求。这样,也就出现了二值信号的数值其实还有一个扩充的负数范围的情况。

相关推荐

  1. Linux 信号使用

    2023-12-10 19:10:06       18 阅读
  2. 126 对称叉树

    2023-12-10 19:10:06       21 阅读
  3. django通知和信号

    2023-12-10 19:10:06       40 阅读

最近更新

  1. 使用Spring Cloud构建微服务架构下的淘客返利系统

    2023-12-10 19:10:06       0 阅读
  2. TCP/IP协议族结构和协议

    2023-12-10 19:10:06       1 阅读
  3. 重读AI金典算法模型-GPT系列

    2023-12-10 19:10:06       1 阅读
  4. win10使用小技巧三

    2023-12-10 19:10:06       1 阅读
  5. 根据关键词query获取google_img(api方式)

    2023-12-10 19:10:06       1 阅读
  6. redis中的事务和mysql中的事务有什么区别?

    2023-12-10 19:10:06       1 阅读
  7. C# 构造函数依赖注入 使用out向外传递参数

    2023-12-10 19:10:06       1 阅读

热门阅读

  1. uniapp小程序分享为灰色

    2023-12-10 19:10:06       35 阅读
  2. pdb 调试 python 代码

    2023-12-10 19:10:06       47 阅读
  3. 基于TCP协议的socket通信过程

    2023-12-10 19:10:06       33 阅读
  4. Android Kotlin语言下的文件存储

    2023-12-10 19:10:06       30 阅读
  5. fetch 和 ajax 的区别

    2023-12-10 19:10:06       38 阅读
  6. <HarmonyOS第一课>保存应用数据【课后考核】

    2023-12-10 19:10:06       41 阅读
  7. P8827传智杯子串

    2023-12-10 19:10:06       38 阅读
  8. 云计算时代改变了什么?

    2023-12-10 19:10:06       38 阅读