打印
[嵌入式linux]

liunx的驱动编写问题...

[复制链接]
1722|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
diyzhangy|  楼主 | 2007-4-21 01:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学ARM,编写一GPIO,拨号的驱动程序.有几个问题不大明白,请教各位.

一个OPEN:int gpio_open(struct inode *inode,struct file *file)
请问inode和file 是怎么定义的,形参为两结构体指针,调用函数的实参应为地址,而gpio_open("/dev/gpio",o_rdwr),是怎么回事,"/dev/gpio"与o_rdwr是进址吗?

相关帖子

沙发
ferry| | 2007-4-21 21:34 | 只看该作者

re

int gpio_open(struct inode *inode,struct file *file)
这是内核定义的函数,参数是文件节点和文件描述符。
gpio_open("/dev/gpio",o_rdwr)
这是用户程序(库)定义的函数,参数是文件路径名和打开模式。

使用特权

评论回复
板凳
diyzhangy|  楼主 | 2007-4-22 20:06 | 只看该作者

int gpio_open(struct inode *inode,struct file *file)是内核驱动定义的函数,而gpio_open("/dev/gpio",o_rdwr)便是应用程序调用该函数,调用就有参数传递,
"文件路径名传递给文件节点指针,打开模式传递给文件描述符指针"这是什么道理呀?

使用特权

评论回复
地板
new_arm| | 2007-5-3 10:17 | 只看该作者

re

同问,我也是对这个问题不了解
那位高手再解析下a!谢谢!

使用特权

评论回复
5
ferry| | 2007-5-3 18:47 | 只看该作者

re

用户程序使用我们平常学c语言时的函数标准调用接口,复习一下open的参数是什么?而真正打开文件还要由内核进行底层操作,它会把用户传来的参数转换为它自己运行规定的参数.这如果学习了内核就会了解,如果只是进行用户编程就不用关心内核干什么.只要按标准c函数接口写程序即可.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

92

帖子

0

粉丝