1、warning:functin declaration isn't prototype
错因:函数没有按照标准类型定义
比如:驱动加载及卸载函数static int __inti timer_init(void)
我没写()内的void造成的。
总结:驱动中,很多函数都有固定的模式,必须完全按照模式写!
2、warning:assignment from incompatible pointer type
错因:指针指向的类型不对
比如:timer.function的函数参数必须是unsigned long ,我写成了int。
timer的初始化需要注意:因为struct timer_list共5项内容,其中2项通过函数init_timer(&timer)初始化完成。
然后剩余的3项需要自己初始化。如:timer.data=5;timer.function=timer_function;(此处为自己定义好的函数名);timer.expires=jiffies+5*HZ。
本文解析了驱动开发过程中遇到的两个常见警告:函数声明不符合原型格式和指针类型不兼容的问题。详细介绍了错误的原因及如何避免这些警告,对于初学者理解和修正驱动代码非常有帮助。
1117

被折叠的 条评论
为什么被折叠?



