博文

目前显示的是 四月, 2012的博文

关于Probe分析

从probe函数说起 每一个driver module,只要是挂载在platform bus这根虚拟总线上的,无一例外都需要自己实现一个probe函数。这个probe函数将会做真正的驱动加载操作。以pxa688的uart驱动为例: drivers/tty/serial/pxa.c: 840 static struct platform_driver serial_pxa_driver = { 841         .probe          = serial_pxa_probe, 842         .remove         = serial_pxa_remove, 843 844         .driver         = { 845                 .name   = "pxa2xx-uart", 846                 .owner  = THIS_MODULE, 847 #ifdef CONFIG_PM 848                 .pm     = &serial_pxa_pm_ops, 849 #endif 850         }, 851 }; 840~851定义了一个platform类型总线上驱动 serial_pxa_driver.其内部的成员变量中probe和remove以及driver成员都需要自己实现。其中,probe是用于驱动被加载的时候用;remove用于驱动被卸载的时候(如果驱动是built-in进kernel的,在runt...