关于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...