当前位置:   article > 正文

【零基础学习04】嵌入式linux驱动中信号量功能基本实现

【零基础学习04】嵌入式linux驱动中信号量功能基本实现

        大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。

        今天给大家分享一下,linux系统里面信号量操作的具体实现,操作硬件为I.MX6ULL开发板。

第一:信号量基本简介

        信号量是同步的一种方式,linux内核也提供了信号量机制,信号量用于控制对共享资源的访问。

        信号量特点:

        1、信号量可以使等待资源线程进入休眠状态,因此适用于那些占用资源比较久的场合。

        2、信号量不能用于中断中,因为信号量会引起休眠,中断不能休眠。

        3、如果共享资源持有时间比较短,那就不适合使用共享资源了。

第二:信号量的API函数

        Linux内核使用semaphore结构体表示信号量,结构体如下:

  1. struct semaphore {
  2. raw_spinlock_t lock;
  3. unsigned int count;
  4. struct list_head wait_list;
  5. };

  第三:   信号量具体代码实现

  1. #include <linux/types.h>
  2. #include <linux/kernel.h>
  3. #include <linux/delay.h>
  4. #include <linux/ide.h>
  5. #include &l
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/236939?site
推荐阅读
相关标签
  

闽ICP备14008679号