写linux按键驱动出现invalid GPIO的报错

 

        在写中断按键实验的时候出现了上面的bug,当时卡了好久,后面通过屏蔽不同的函数的方法确定了问题出现在中断函数,原来是驱动设备通过指针传入中断函数出现了问题,最后一行行看代码终于发现问题的所在,原来注册中断时传入了错误的参数。

        从上图可以看出request_irq()函数的最后一个参数void *dev,是一个无类型指针,注册函数通过这个指针把设备结构体传入中断函数。

        

        而这个注册函数是被我定义在了一个初始化函数里面如上图所示,设备结构体是以struct irq_dev *dev指针的形式传入这个初始化函数。

        所以在注册中断函数中只需要把dev传给它就行了,而我传给他的是&dev,也就是这个指针变量的地址,所以实际的设备结构体并没有被传进中断函数,这就进而导致获取不到设备结构体中的gpio标号而发生报错。

`syntax error: invalid syntax` 是 Python 中的一种常见报错信息,表示代码存在语法错误,Python 解释器无法理解或解析该部分代码。这种错误通常发生在编代码时违反了 Python 的语法规则。 以下是一些可能导致此类错误的原因及解决方法: 1. **拼错误** 可能是在关键字、函数名或其他标识符上出现了打字错误。 - 示例:将 `if` 错误输入成 `fi` ```python fi x > 0: print("Positive") ``` 这段代码会抛出 `SyntaxError` 因为解释器不认识 `fi` 关键字。 2. **缺少标点符号** 忘记添加必要的标点符号如冒号 `:` 或括号等。 - 示例:忘记加冒号导致错误 ```python if x > 0 print("Positive") ``` 应改为: ```python if x > 0: print("Positive") ``` 3. **缩进问题** Python 使用缩进来定义代码块。如果缩进不一致,就会引发语法错误。 - 示例:不当的缩进 ```python def my_function(): print("Hello World") # 缩进不对 ``` 正确形式应为: ```python def my_function(): print("Hello World") ``` 4. **非法字符** 如果文件中包含非 ASCII 字符或者多余的空格/制表符混合使用也可能引起问题。 5. **引用符匹配失败** 开始用了单引号结束却用了双引号,反之亦然。 - 错误示例: ```python string = "This is a test' ``` 改正后应该是: ```python string = 'This is a test' # 或者 string = "This is a test" ``` 为了快速定位这类错误,在看到 `SyntaxError` 提示的同时,请仔细查看具体的行号提示以及上下文内容,并按照上述几种可能性逐一排查即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值