我不知道大家有遇到这种事没有,按照道理来说,这个问题应该很多人会遇到,但是百度了一下,却没有任何人说明这个事情,现在我来说说这个开发过程中的丑事。
在通过menuconfig 把一个驱动配置成M模块,在.config 也有如下显示,的确是配置成M了:
CONFIG_GYRO_L3G4200D=m
按照道理是定义了吧,但是在下面的代码中却不会进去执行
#if defined (CONFIG_GYRO_L3G4200D)
......// 如果CONFIG_GYRO_L3G4200D=m 是不会执行的,CONFIG_GYRO_L3G4200D=y却可以,为什么?!!!!!
#endif
为什么?!就这个问题可把哥害惨了,搞得我整了无数次驱动的编写方法。不过就这样,我也更深入的了解了驱动,百度m 和y 的区别仅仅是模块驱动还是打入内核的驱动而已,仅此而已!
这事情,真是难忘的开发经历。