Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1359415
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: LINUX

2014-12-25 20:58:08

       uio提供了用户态驱动开发的框架,主要是由于驱动依赖的内核函数和宏因内核版本变化,导致驱动可能也需要改,所以改为用户态驱动来完成任务,这也算是类似windows的HAL的机制,当然HAL是硬件抽象层。
       dpdk是如何与硬件交互的?
      dpdk中的驱动需要定期去poll/select /dev/uioX 检查设备是否有中断产生,并不是用来收发数据,另外通过mmap来操作设备的设备内存。uio框架本身要处理设备的中断,中断只能在内核态处理,uio的中断处理函数也只是增加中断的计数而已。
      mmap可以处理物理内存映射,逻辑内存,内核虚拟内存映射。
      uio也是通过mmap将设备的内存映射到用户空间,当然用户态也可以通过/sys/class/uio/uioX/maps/mapX来实现对设备内存的访问,所以发送和接受数据是通过操作设备的内存来完成的。
             
阅读(8259) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~