[嵌入式linux] liunx的驱动编写问题...

[复制链接]
3106|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!谢谢!
ferry 发表于 2007-5-3 18:47 | 显示全部楼层

re

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

本版积分规则

34

主题

92

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部