
在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的缓冲区,作为该函数的参数。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)