|
1:先说一下需求,我每10ms收到一个中断,然后这个中断处理的过程是这样的,首先从中断收到开始5ms后,进行操作。这个开始处理的函数名称是tl_handle
2:我注册了中断,也可以接受到中断。但是运行一下 内存就会出错。
我的代码是这样的,
1:我首先声明一个全局的 struct timer_list tl;
2: 我在init_module()中写 setup_timer(&tl, tl_handle, 0)。
3:我在中断处理函数中,上来就是mod_timer(&tl, jiffies + 5);指定5ms后开始处理
编译没问题,我insmod的时候就堆栈总是包错误,堆栈的错误是从中断的处理函数开始说的。
但是如果我把setup_timer(&tl, tl_handle, 0)写到中断处理函数中的话,这个会首先运行一下,然后查看dmesg的时候堆栈处错误信息。
请大虾们指点一下 是怎么回事啊
我今天用了 shcedule_delayed_work来实现上面的思路同样也是这个错误,高手们指点一下吧 |
|