Linux驱动中,probe函数何时被调用

Linux驱动中,probe函数何时被调用,第1张

在驱动程序注册的时候,会有一个match的过程,将驱动和设备两个匹配。在匹配的过程中会调用probe函数

在bus.c中会出现static

int

bus_match(struct

device

*

dev,

struct

device_driver

*

drv),这个函数就会调用

if

(drv->probe)

{

if

((error

=

drv->probe(dev)))

{

dev->driver

=

NULL

return

error

},这个时候就是调用Probe的时候了。

你可以看下这个连接

http://www.cnblogs.com/hoys/archive/2011/04/01/2002299.html

驱动程序工作在内核空间,由内核来调用 比如某硬件的驱动程序中实现了hd_write()函数,则用户在用户空间打开这硬件的设备文件并调用系统调用函数write()时,内核就调用hd_write()函数。

水平不行,不一定对,仅供参考哈。如果只是从AD里读数据的话,用spi_read就可以了,定义一个8位的缓冲区和一个16位的缓冲区。然后把读到的2个8bit的数据组合成1个16bit的数据。每次读到的数据量通过该函数的参数设定。如果是想实现全双工,可以使用spi_write_then_read读是一样的,写的话自己先把16位数据转换成2个8bit的数据,存放在一个8bit的缓冲区,作为该函数的参数。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8393762.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存