RT-Thread "骚操作"之信号量未释放导致设备逻辑卡死问题定位

本文介绍了在RT-Thread操作系统中,如何通过改造内核代码来定位信号量未释放导致的设备逻辑卡死问题。作者提供了一种方法,通过保持阻塞线程队列来找出持有信号量的线程,从而缩小问题范围,便于分析和修复。文章还给出了代码编写建议,提倡统一函数出口来避免遗漏信号量的释放。
摘要由CSDN通过智能技术生成

大家好,到月底了,流光又给大家带来在 RT-Thread 遇到比较棘手的问题时候,快速解决问题的 "骚操作"了,废话不多说我们直接进入正题。

精彩回顾

RT-Thread "骚操作"之编写优雅的命令行程序

RT-Thread "骚操作"之内存泄漏定位

嵌入式中是否应该使用动态内存?

1.  信号量简介

在 RT-Thread 上开发者除了线程使用最频繁之外一般就数 IPC 使用的最多了。信号量作为 IPC 中最基础和简单的一种, 是开发者爱不释手的一套开发逻辑的工具。那么笔者就在这里先简单说明下到底什么是信号量。

信号量是一种轻量的用于解决线程之间同步问题的内核对象,线程可以获取 (take) 或释放 (release) 它,从而达到同步或互斥的目的。以生活中的停车场为例来理解信号量的概念:

1.  当停车场空的时候,停车场的管理员发现有很多空车位,此时会让外面的车陆续进入停车场获得停车位;
2.  当停车场的车位满的时候,管理员发现已经没有空车位,将禁止外面的车进入停车场,车辆在外排队等候;
3.  当停车场内有车离开时,管理员发现有空的车位让出,允许外面的车进入停车场;待空车位填满后,又禁止外部车辆进入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值