request_irq中断函数的参数的问题。

john_liqinghan 2019-03-08 05:11:41
typedef struct {
int a;
int b;
}test_param, *pTestParam;

test_param gTestParam;


static irqreturn_t HalThreadedIrqHandler1(void *data)
{
unsigned char intStatus2 = 0;
int i , j ;

printk("HalThreadedIrqHandler1\n");

pTestParam tetstPa = (pTestParam)data; //

printk("%d ,%d\n" ,tetstPa->a , tetstPa->b);
//这里错误 ,出现Unable to handle kernel NULL pointer dereference at virtual address 0000004b
}
//
//register irq function
//
void registerIRQFunc()
{
int retStatus
gTestParam.a = 1;
gTestParam.b = 2;
retStatus = request_irq( irqNum, ThreadedIrqHandler1, IRQF_SHARED,"test_param",(void*)>estParam);
}

有人知道什么问题吗?感觉是内核的问题。
...全文
557 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
john_liqinghan 2019-03-08
  • 打赏
  • 举报
回复
明白了,是内核request_irq的版本不一样了,ThreadedIrqHandler1这函数应该有两个参数了。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧