![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux学习
文章平均质量分 69
haideshiyan35
这个作者很懒,什么都没留下…
展开
-
linux driver module之传参
我们要给驱动模块传参数,想必大家都很清楚,应该使用module_param()函数。近期看代码突然有个疑问,给driver传多个相同类型的参数,驱动时如何接收的呢?insmod xxx.ko param //这种命令行中的参数又是如何与驱动中的module_param()中的参数匹配的呢?今天我们就探讨一下module_param()与脚本中的命令参数的匹配规则带着问题,我们实现如下代码进行验证:源文件:multi_params.c#include <linux/init.h原创 2021-04-20 14:50:49 · 211 阅读 · 0 评论 -
linux进程间通信之无名管道通信学习笔记
进程间管道通信包括有名管道和无名管道两种;首先我们介绍无名管道,无名管道特点:1、只能用于具有亲缘关系的进程间进行通信。2、通讯的两个进程之间是单工模式,即具有固定的读端和写端。3、管道也可以看成是一种特殊的文件,对于管道的读写可以用普通的read()、write()函数,无名管道存在于内核的内存当中。管道的创建方式:#include int pipe(int fd[]原创 2016-05-28 13:25:35 · 389 阅读 · 0 评论 -
静态库与动态库
库本质上是一种可执行的二进制代码,可以被操作系统载入(Linux和windows的库是不兼容的)。库可以分为静态块和动态库,二者的不同点在于代码被载入的时刻不同。静态库:在程序编译时会被连接到目标代码中,程序运行时不再需要改静态库,体积较大,一般应用与移植过程中在宿主机上编译的代码。静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。创建静态库,ar crs li...原创 2019-03-12 21:29:30 · 79 阅读 · 0 评论 -
Linux 自旋锁
自旋锁的核心思想:设置一个在多处理器之间共享的全局变量锁L,并定义当L=1时为上锁状态,L=0位解锁状态。如果处理器A上的代码要进入临界区,它要先读取L的值,判断其是否为0,如果L!=0表明有其他处理器上的代码正在对共享数据进行访问,此时处理器A进入忙等待即自旋状态,如果L=0表明当前没有其他处理器上的代码进入临界区,此时处理器A可以访问该资源,它先把L置1,然后进入临界区,访问完毕离开临界区原创 2017-03-25 14:52:23 · 259 阅读 · 0 评论