Linux系统环境下的FPGA驱动方案解析
来源:元器件交易网 作者:—— 时间:2012-04-25 09:53
注册设备编号仅仅是驱动代码必须进行的诸多任务中的第一个。驱动操作包括三个重要的内核数据结构,称为file_operations、file和inode。其中,对于FPGA驱动来说,最值得关注的是文件操作(file_operations)。
file_operation结构是一个用字符驱动方式建立设备编号和设备操作的连接结构,定义在.是一个函数指针的集合。每个打开文件与它自身的函数集合相关,这些操作大部分可由系统调用,例如:open(),read ()等等。典型的file_operation结构可用FPGA设备列表所示,其代码如下:
第一个file_operations元素根本不是一个操作,它是一个指向拥有这个结构的模块指针,或用来在操作使用时阻止模块被卸载,它也是在中定义的宏;
llseek主要用于改变文件中的当前读/写位置,同时可将新位置作为(正的)返回值。其定义如下:
loff_t(*llseek) (struct file*,loff_t,int);
ioctl可为系统调用提供一个发出设备特定命令的方法。如果设备不提供ioctl方法,那么,对于任何未事先定义的请求,系统调用将返回一个错误。定义如下:
int(*ioctl) (struct inode*,struct file*,unsigned int,unsigned long):
1.3 设备注册
内核在内部将使用struct cdev类型结构来代表字符设备。在内核调用设备操作前,代码应当包含。而如果想将cdev结构嵌入设备特定的结构中,则应当初始化已经分配的结构,其使用的代码为:
void cdev_init(struct cdev*cdev,structfile_operations*fops);
上一篇:模块化UPS设计方案解析
下一篇:3D立体眼镜技术方案解析
- •ADI宣布Sensinel by Analog Devices心肺管理(CPM)系统获得美国FDA 510(k)认证并正式上市2024-03-07
- •人工智能安全关键型系统中的验证和确认2024-02-29
- •Omdia:预计 L3 及以上自动驾驶系统平均配备 5-8 个毫米波雷达2023-02-23
- •研究显示近半数美国司机将高级辅助驾驶系统当自动驾驶用2022-10-12
- •日本光伏发电系统也开始“缺芯”了2021-07-14
- •Cadence推出下一代Palladium Z2和Protium X2系统2021-04-06
- •思特威全新推出SC910GS与SC410GS,全面赋能智能交通系统2021-01-07
- •Xsens的MTi-100 系列IMU 为UWB 信标系统提供强大支持2020-09-02
- •业界首创!支持异常检测系统等所需的高速放大2020-05-21
- •亚马逊将开始出售其无人便利店Go系统2020-03-10