
linux 驱动
linyangspring
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux驱动调试中的Debugfs的使用简介
在调试linux驱动的时候,可以用debugfs来调试,debugfs类似字符设备驱动一样,甚至更简单,不需要主设备号次设备号等等,只需要实现一个file_operations,然后通过debugfs_create_file就可以在debugfs中建立一个文件结点,就像字符设备驱动那样,只需要对这个文件结点进行open就可以进行read、write、ioctl,等等操作,这些操作对应到我们在驱动里转载 2014-01-27 14:10:05 · 593 阅读 · 0 评论 -
Linux设备驱动安装的基本过程
在windows系统里面,如果发现新的硬件设备但是系统没有可以用的自带驱动程序,那用户就得自己安装驱动。Linux内核的设计也是一样,下面就以marvelPHY设备的发现和驱动安装(即模块插入)为例说明一般嵌入式里设备的发现和安装过程。假如某个小系统里面,soc上集成了MAC,然后外面通过MDIOBUS接了一个PHY芯片,那么在定制内核的时候肯定会选择libphy以及相应的SOC MDIO B转载 2014-11-20 12:04:19 · 946 阅读 · 0 评论 -
Linux如何及时响应外部中断
FPGA每隔100us给运行linux的ARM一个中断,要求在20us原创 2014-08-21 11:42:31 · 3925 阅读 · 0 评论 -
dmaengine driver for linux
只是linux文档的翻译而已:3.4 什么时候异步操作会被执行async_函数返回后,提交的操作不会被马上执行。直到达到驱动满足的临界点后,之前挂起的操作才会被执行。可以通过async_tx_issue_pending_all函数强迫执行所有挂起的操作。3.5异步操作什么时候结束1、调用dma_wait_for_async_tx循环查询操作是否结束2、调用async_时原创 2014-09-30 11:24:33 · 1568 阅读 · 0 评论 -
linux的socket CAN驱动介绍
在linux中,CAN总线的驱动有两种实现原创 2014-05-27 13:17:06 · 9991 阅读 · 2 评论 -
保留DDR内存作为外设访问
最近使用xilinx的zynq,需要完成FPGA和ARM的AXI协议通讯,通过增加linux内核启动参数mem=1008M保留了顶部的16M内存空间用来读写数据,FPGA以DMA方式来访问这个内存空间,接下来要完成的就是给这16M的内存空间编写platform_device的驱动程序。现在讲期间碰到的问题总结一下:1)DMA:什么是DMA:就是没有CPU的情况下,由DMA控制器完成内存原创 2014-02-21 17:11:04 · 3253 阅读 · 0 评论 -
我们需要根据设备的寄存器编写驱动么?
刚开始做linux驱动的时候,比较迷惑:我应该怎么做驱动呢,看设备的官方文档然后根据寄存器的设置编写驱动?但是随手打开一个设备的datasheet,就头大无比,N多的寄存器,N多的操作限制。想要读懂datasheet很难,想要根据datasheet编写驱动更难,想要编写一个能够使设备性能最大化的驱动难上加难。但是驱动还是应该写的,否则项目不就over了。但是应该怎么写呢?OK,以最近接原创 2014-01-28 09:28:48 · 1221 阅读 · 0 评论 -
Zynq平台下linux的I2C驱动(RTC+EEPROM)
现在ARM下对SoC开发板的硬件描述都是采用devicetree文件,使用linux自带的dtc程序将dts编译成dtb之后,由u-boot将dtb导入给linux内核,linux内核读取dtb,然后注册设备的resource,linux内核使用of_系列函数API读取硬件资源。具体的说明可以看下宋宝华的bloghttp://blog.youkuaiyun.com/21cnbao/articl原创 2014-04-03 08:49:05 · 5723 阅读 · 0 评论 -
Linux DMA详解
原文地址:http://blog.163.com/stm32f103vct6@126/blog/static/16674347920128261164674/· 1· 2 DMA控制器硬件结构· 2.1 DMA通道使用的地址· 2.2 DMA操作函数转载 2014-02-13 10:23:57 · 1153 阅读 · 0 评论 -
class_create(),device_create自动创建设备文件结点
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_creat转载 2014-01-27 14:42:24 · 510 阅读 · 0 评论 -
如何在udev自动创建设备节点
#include #include #include #include #include #include #include #include #include #include #include #include #include #include "xdmaps_hw.h"#define MEM_CPY_NO_DMA 0#d原创 2014-01-27 14:39:13 · 826 阅读 · 0 评论 -
struct file_operations中ioctl消失的学习笔记
转自:http://qgqceo.chinaunix.com/space.php?uid=20543672&do=blog&id=3015637 很久都没有写驱动代码了,对于一些驱动相关的内核变化也没有怎么关心。这次重游《LDD3》获益良多,其值对于struct file_operations中ioctl的消失也让我长了不少见识。当年看《LDD3》的时候已经注意到了书中对ioc转载 2014-01-27 14:29:35 · 627 阅读 · 0 评论 -
/drivers/net/phy/phy.c的状态机phy_state_machine分析
在mii总线初始化过程中,原创 2014-11-25 10:45:17 · 3914 阅读 · 0 评论