Linux系统环境下的FPGA驱动方案解析

来源:元器件交易网 作者:—— 时间:2012-04-25 09:53

    1.4 open和release

  open主要用于提供驱动初始化,在大部分驱动中,open应当检查设备特定的错误(例如设备没准备好,或者类似的硬件错误),但是,其第一步常常是确定打开哪个设备。open的原代码为:

  int(*open) (struct inode*inode,structfile*flip);

  release是open的反操作。

  1.5 读/写操作

  读和写都是进行类似的任务,就是从设备到应用程序代码的数据拷贝。因此,它们的原代码比较相似:

  ssize_t read(struct file*flip,char__user*buff,size_t count,loff_t*offp);

  ssize_t write(struct file*filp,const char__user*buff,size_t count,loff_t*offp);

  read的任务是从设备拷贝数据到用户空间(使用copy_to_user),而write方法则是从用户空间拷贝数据到设备(使用copy_from_user)。

  图1所示是用read参数表示一个典型读的实现过程。 

 

        硬件电路

  通常在大容量存储项目中,S3C2410处理器一般作为主CPU,可对EP2S30F67214进行扩展,以使系统具有拍摄、存储、下载、I/O口扩展的功能。由于FPGA的高速处理能力和易扩展性,ARM与FPGA的结合使用,将在嵌入式系统领域占据主导地位。

  本项目中的ARM主要读取FPGA的数据,然后进行数据处理并送给上位机。其ARM处理器与FPGA的连接关系如图2所示,其主要连接有32位宽数据线、27位宽地址线以及读、写、中断和片选控制线等。

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子