- 博客(9)
- 收藏
- 关注
原创 二十三、Linux驱动之IIC驱动(基于linux4.12内核)
1. 基本概念本文默认读者掌握裸机下的I2C操作,该部分只做简单介绍, 主要内容是对linux-4.12系统下I2C驱动的分析。(上一篇二十一、Linux驱动之IIC驱动(基于linux2.6.22.6内核)对linux-2.6.22.6内核的I2C进行了分析,新内核的I2C有了很大的变化,但是也有部分类似,为了保证完整性,我会全部从头分析。linux-4.12的移植和对应之前驱动的移植以后会...
2018-12-24 16:34:19 2157
原创 二十二、Linux驱动之IIC驱动(基于linux2.6.22.6内核)
1. 基本概念本文默认读者掌握裸机下的I2C操作,该部分只做简单介绍, 主要内容是对linux-2.6.22.6系统下I2C驱动的分析。 由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,是一个多主机的半双工通信方式,每个挂接在总线上的器件都有个唯一的地址。位速在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可待3.4Mbit/s。 ...
2018-12-17 17:24:19 1455
原创 二十一、Linux驱动之移植DM9000C网卡驱动(下)
通过二十、Linux驱动之移植DM9000C网卡驱动(上)对厂家提供的网卡驱动程序dm9dev9000c.c的分析,下面将该网卡驱动移植到JZ2440开发板上(内核版本为linux-2.6.22.6)。1. 硬件分析 本人使用的开发板是JZ2440,CPU为S3C2440A,与DM9000C芯片连接如下: SD0~15:16位地址、数据线,由CMD引脚决定访问类型。...
2018-12-14 13:43:03 962
原创 二十、Linux驱动之移植DM9000C网卡驱动(上)
1. 基本概念 DM9000C是一款完全集成的和符合成本效益单芯片快速以太网MAC控制器与一般处理接口,一个10/100M自适应的PHY和4K DWORD值的SRAM。DM9000C内部还集成了接收缓冲区,可以在接收到数据的时候把数据存放到缓冲区中,链路层可以直接把数据从缓冲区取走。针对不同的处理器, 接口支持8位、 16位。 本节内容先分析DM9000厂家提供的网卡驱动程序dm...
2018-12-13 16:50:33 923
原创 十九、Linux驱动之虚拟网卡驱动
1. 基本概念 网络设备是完成用户数据包在网络媒介上发送和接收的设备,它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送,并将接收到的数据包传递给上层协议。与字符设备和块设备不同,网络设备并不对应于/dev目录下的文件,应用程序最终使用套接字完成与网络设备的接口。因而在网络设备身上并不能体现出“一切都是文件”的思想。 Linux系统对网络设备驱动定义了4个层次, 从上到...
2018-12-11 17:22:46 4042 1
原创 十八、Linux驱动之nor flash驱动
1. 基本概念 NOR FLASH是很常见的一种存储芯片,数据掉电不会丢失。NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行(这意味着存储在NOR FLASH上的程序不需要复制到RAM就可以直接运行)。这点和NAND FLASH不一样。因此,在嵌入式系统中,NOR FLASH很适合作为启动程序的存储介质。NOR FLASH的读取和RAM很类似(只要...
2018-12-06 17:00:13 1794
原创 十七、Linux驱动之nand flash驱动
1. 基本概念 Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。2. 硬件分析 本人使用的是韦东山老师的JZ2440...
2018-12-05 10:48:34 2367
原创 十六、Linux驱动之块设备驱动
1. 基本概念 块设备是Linux三大设备之一,其驱动模型主要针对磁盘,Flash等存储类设备,块设备(blockdevice)是一种具有一定结构的随机存取设备,对这种设备的读写是按块(所以叫块设备)进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。1.1 块设备结构 块设备由Page->Segment->Blo...
2018-12-04 10:15:30 1165 1
原创 十五、Linux驱动之USB鼠标驱动
1. 如何编写USB鼠标驱动 结合十四、Linux驱动之USB驱动分析中的分析,我们开始写一个USB鼠标驱动。 USB的驱动可以分为3类:SoC的USB控制器的驱动,主机端USB设备的驱动,设备上的USB Gadget驱动,通常,对于USB这种标准化的设备,内核已经将主机控制器的驱动编写好了,设备上的Gadget驱动通常只运行固件程序而不是基于Linux, 所以驱动工程师的主要...
2018-12-01 17:31:29 1394 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人