完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 左岸cpx 于 2017-6-10 15:43 编辑 一)找到LED 芯灵思已经为LED写好了驱动代码,并注册到内核中。我们想要控制LED的两面,首先就是要查看LED驱动源码,这样我们才知道驱动程序的接收参数格式,从而知道如何向/dev/led设备节点传参。 1)进入内核源码
2)查看LED驱动代码
3)查看.open, .release, .unlocked_ioctl函数 我们需要关注的函数,仅仅是.open, .release, .unlocked_ioctl三个而已,如下图所示。 在linux中,一切皆文件,/dev/led设备节点也不例外。 A) 通过led_open(struct inode *inode, struct file *file)函数打开/dev/led设备节点。该函数的第一个形参struct inode* 接收设备节点的路径,即”/dev/led”。 B) 通过led_close(struct inode *inode, struct file *file)函数关闭/dev/led设备节点。该函数的第一个形参struct inode* 接收设备节点的路径,即”/dev/led”。 C) 通过led_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)函数控制LED的亮灭。该函数的第一个形参struct file* 接收打开/dev/led设备节点时返回的句柄,第二个形参cmd接收控制命令,为1时点亮LED,为0熄灭LED。第三个形参arg接收LED的索引。 三)编写LED测试程序读懂led.c驱动源码中的ioctl函数后,我们对如何编写led测试程序已经了然。 LED测试
程序如下: 四)编译LED测试程序 五)拷贝可执行文件LED到开发板,运行 A) 挂载U盘
B) 拷贝程序
C) 运行程序
1)灭灯实物图: |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
芯灵思SinlinxA33开发板Linux内核workqueue(附实测代码)
11891 浏览 0 评论
芯灵思SinlinxA33开发板Linux内核 tasklet 机制(附实测代码)
12551 浏览 0 评论
芯灵思Sinlinx A33开发板 Linux内核等待队列poll ---阻塞与非阻塞
34827 浏览 0 评论
芯灵思Sinlinx A33开发板Linux中断编程 3-应用程序
34760 浏览 0 评论
38840 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 11:09 , Processed in 0.390799 second(s), Total 36, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号