LIRC源码分析(2)

下面我们来看LIRC到底如何工作的?  从哪儿下手呢?

 

先看LIRC的工具mode2,看看mode2的源码。

 

首先看初始化部分:

 

 

注意缺省的驱动是LIRC_DRIVER_DEVICE,其实就是/dev/lirc。还有一个函数是hw_choose_driver,看看这个函数主要做什么,看看源码就知道初始化结构体struct hardware变量hw。

 

 这个结构体如下:

 

hw缺省被设置为HW_DEFAULT,其实就是下面的缺省结构体:

 

我们再回到mode2.c, 继续往下看:

 

这一段是分析命令行,大部分我们可以略过,我们关注一下dmode和use_raw_access变量。 如果直接与设备交互(不通过struct hardware结构体),我们需要加入--raw到命令行中,另外我们不改变缺省的接收模式。

 

 

如果是直接模式, 我们首先打开设备,然后获取波形接收模式;否则通过struct hardware结构体控制设备,其实这两种方式殊途同归。

 

接下来便是从设备中读取数据,输出pulse或者space的波形宽度。

 

 

linzihao@linzihao-virtual-machine:~/Code/test/coursework2/work5/linux-5.15.93$ make -j 8 Makefile:662: include/config/auto.conf: 没有那个文件或目录 Makefile:717: include/config/auto.conf.cmd: 没有那个文件或目录 SYNC include/config/auto.conf.cmd .config:898:warning: symbol value 'm' invalid for HOTPLUG_PCI_SHPC .config:1126:warning: symbol value 'm' invalid for NF_CT_PROTO_GRE .config:1154:warning: symbol value 'm' invalid for NF_NAT_REDIRECT .config:1157:warning: symbol value 'm' invalid for NF_TABLES_INET .config:1158:warning: symbol value 'm' invalid for NF_TABLES_NETDEV .config:1341:warning: symbol value 'm' invalid for NF_TABLES_IPV4 .config:1346:warning: symbol value 'm' invalid for NF_TABLES_ARP .config:1388:warning: symbol value 'm' invalid for NF_TABLES_IPV6 .config:1906:warning: symbol value 'm' invalid for NET_DEVLINK .config:2058:warning: symbol value 'm' invalid for MTD_NAND_ECC .config:3519:warning: symbol value 'm' invalid for ISDN_CAPI .config:4001:warning: symbol value 'm' invalid for HW_RANDOM_TPM .config:4950:warning: symbol value 'm' invalid for LIRC .config:5761:warning: symbol value 'm' invalid for HSA_AMD .config:6175:warning: symbol value 'm' invalid for SND_SOC_INTEL_SST_TOPLEVEL .config:6180:warning: symbol value 'm' invalid for SND_SOC_INTEL_MACH .config:7793:warning: symbol value 'm' invalid for PVPANIC .config:7867:warning: symbol value 'm' invalid for REMOTEPROC * * Restart config... * * * General setup * Compile also drivers which will not load (COMPILE_TEST) [N/y/?] n Compile the kernel with warnings as errors (WERROR) [N/y/?] (NEW) Z——这是怎么回事?
最新发布
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值