一个设备驱动的主要任务有两个:
1. 存取设备的内存
2. 处理设备产生的中断对于第一个任务,UIO 核心实现了mmap()可以处理物理内存(physical memory),逻辑内存(logical memory),
虚拟内存(virtual memory)。UIO驱动的编写是就不需要再考虑这些繁琐的细节。第二个任务,对于设备中断的应答必须在内核空间进行。所以在内核空间有一小部分代码...
分类:
系统相关 时间:
2015-07-17 10:06:47
阅读次数:
402
【摘要】linux用户态的设备驱动开发:并不是所有的设备驱动程序都要在内核编写,有些情况下,在用户空间编写驱动程序能够更好地解决遇到的问题。本文对用户态驱动优缺点进行分析。1、用户空间驱动程序的优点1、可以和整个C库链接。2、在驱动中可以使用浮点数,在某些特殊的硬件中,可能需要使用浮点数,而linux内核并不提供浮点数的支持。如果能在用户态实现驱动,就可以轻松解决这一问题。
3、驱动问题不会导致整...
分类:
系统相关 时间:
2015-07-17 10:06:11
阅读次数:
904
前言:
最近看了看Google的Go语言,发现有点意思,这个开源的项目准备用golang来实现。
其实开发板本身的驱动程序已经实现了各个功能,但是有的时候在使用中有些麻烦,有可能需要修改dts文件重新编译内核才能够使用某个功能,所以打算开发这个UIO驱动的开源项目,方便程序的编写。当然,UIO也不是万能的,比如中断,目前我还没有找到好的方法,可以完全抛开内核版本的差异导致需要...
分类:
其他好文 时间:
2015-05-19 08:53:28
阅读次数:
237
一、DPDK系统需求:1、需要的编译工具(ubuntu12.04LTS均符合要求,可以不检查)GNUmake;cmp,sed,grep,arch;gcc;libc库文件(glibc-develfedora;libcubuntu)kernel-devel(fedora);kernel-dev(ubuntu)python2.6or2.72、运行条件(关键在于kernel的配置,其他均符合条件)kernel-v..
分类:
其他好文 时间:
2015-03-31 20:27:35
阅读次数:
396
首先我们来看问题的背景,上层的encoder/decoder的工作流程是这样的:Work procedure1. Open the uio0 device to get the fd2. Get the VPU register base address, work buffer and SRAM ...
分类:
其他好文 时间:
2014-11-18 14:45:13
阅读次数:
314