当我尝试调用 timer_setup() 函数时出现以下错误
error: passing argument 2 of ‘init_timer_key’ from incompatible pointer type [-Werror=incompatible-pointer-types]
init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
代码:
/* ... */
#include <linux/timer.h>
static struct timer_list my_timer;
void my_timer_callback(unsigned long data)
{
pr_info("%s called (%ld).\n", __FUNCTION__, jiffies);
}
static int __init my_init(void)
{
timer_setup(&my_timer, my_timer_callback, 0);
return 0;
}
static void my_exit(void)
{
return;
}
module_init(my_init);
module_exit(my_exit);
/* ... */
如何修复错误?
我想,你想使用setup_timer()
,而不是timer_setup()
,它的原型(prototype)是
static inline void timer_setup(struct timer_list *timer,
void (*callback)(struct timer_list *),
unsigned int flags)
或将您的计时器功能更改为
void my_timer_callback(struct timer_list *timer)
{
...
}
我是一名优秀的程序员,十分优秀!