基于tiny6410 的led驱动

作者分享了自己编写第一个基于tiny6410的LED驱动程序的经历,重点讲述了在实现ioctl函数过程中遇到的问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于快要断网了,这里简单记录一点

我的第一个linux驱动程序终于写好 了


基于tiny6410 的led驱动


三天了,遇到很多的问题,最大的一个问题是由于教学视频给的历程有错误,

static long tiny6410_leds_ioctl(
struct inode *inode, 
struct file *file, 
unsigned int cmd, 
unsigned long arg)
{

我不知道为什么会有struct inode这个参数,程序一直无法识别命令,我用打印调试,打印出cmd的值,一直是0


后来我参考其他的文献,发现没有这个参数,我将其注释了以后,终于可以打印正常的cmd的值了

但是有一个问题,还是不能识别命令,我再次打印cmd和命令宏的值

发现cmd是32位的数值,而命令宏却是16位的,应该是定义的无参数命令的缘故

这样又无法case到命令了

于是我程序里吧cmd强制取前16位


终于led灯亮了


改天再贴具体程序代码。。。。。睡觉 了  =.=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值