OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5407|回复: 3

使用命令写字符设备无限循环问题?????

[复制链接]

26

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2019-6-11
在线时间
52 小时
发表于 2020-12-24 22:21:25 | 显示全部楼层 |阅读模式
1金钱
请问论坛的大佬们:     比如一个led灯的字符设备,无论是platform下还是单纯驱动下,我在终端depmod->modprobe加载完成.ko模块之后。
     对字符设备操作使用sh -c "echo '1' > /dev/ledchr" 这种方式对字符设备操作,终端显示一直在执行驱动中的write函数。(在驱动文件中的write函数中有打印信息)。请问这是什么原因?现象都是一切正常的。

最佳答案

查看完整内容[请看2#楼]

你可能多发了一个换行符。试一下这个: 如果依然有问题的话,请把你的驱动write接口源码发一下看看
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2020-12-24 22:21:26 | 显示全部楼层
你可能多发了一个换行符。试一下这个:
  1. sh -c "echo -n '1' > /dev/ledchr"
复制代码


如果依然有问题的话,请把你的驱动write接口源码发一下看看
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

26

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2019-6-11
在线时间
52 小时
 楼主| 发表于 2020-12-26 01:09:23 | 显示全部楼层
xkwy 发表于 2020-12-25 10:22
你可能多发了一个换行符。试一下这个:

大佬你好感谢回复,这是我的驱动层的write函数代码 QQ截图20201226010647.jpg ,像你说的那样还是同样现象,没有变化。麻烦帮我看看有问题没?
回复

使用道具 举报

26

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2019-6-11
在线时间
52 小时
 楼主| 发表于 2020-12-26 17:22:39 | 显示全部楼层
大佬们已经解决了,是内核做的鬼,由于在写入字符设备,write返回值一直是0,内核就不会调用release函数,所以就会一直在write执行。具体得看kobject。
使用sh -c "echo '1' > /dev/字符设备名称" 这命令因为write返回值一直是0所以不会调用release,就导致一直执行write函数。
这么改一下就不循环了。返回值0---->1.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 20:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表