驱动
文章平均质量分 78
moxue10
这个作者很懒,什么都没留下…
展开
-
驱动框架
编写第一个驱动框架: 今天听了韦东山老师的课程,学到了一些驱动的知识,这里的内容是我对课程的一些总结,希望对学习驱动的同学有帮助。0.现将头文件加进来 #include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include ...转载 2017-12-06 22:06:18 · 447 阅读 · 0 评论 -
嵌入式Linux——nor flash (1):硬件介绍
声明:本文章是学完韦东山老师的教学视频后看过一些文章后所写,在看文章时我会将一些可能重要的知识点复制下来,所以可能会抄到您文章中的一些内容,如果您有什么意见,请同我讲出我会修改或删除。而如果这篇文章对您有帮助,那是我的荣幸。同时我看到网上有一些很好的写nor驱动的文章,但是我发现这些文章中对于nor的硬件描述以及nor与开发板的联系上并不是说的十分清楚,所以我想借这篇文章说一些关于硬件的事。 ...原创 2018-03-16 11:20:52 · 2539 阅读 · 0 评论 -
嵌入式Linux——nor flash(2):do_map_probe分析
在分析nor驱动之前,我想先分析一下do_map_probe这个函数,因为是这个函数帮助我们做了探测工作,来确定我们所用的芯片的一些重要信息。同时也只有分析清楚这个函数我们才能对下面的将设备的注册有所了解。 而在说这些之前我想先引进一张图来介绍Flash框架层次:上面这幅图就是对flash框架层次的描述,当然图还有些欠缺,如:在nor下应该再分两个层次分别...原创 2018-03-16 21:19:36 · 1505 阅读 · 0 评论 -
嵌入式Linux——网卡驱动(1):网卡驱动框架介绍
声明:文本是看完韦东山老师的视频和看了一些文章后,所写的总结。我会尽力将自己所了解的知识写出来,但由于自己感觉并没有学的很好,所以文中可能有错的地方敬请指出,谢谢。 在介绍本文之前,我想先对前面的知识做一下总结,我们知道Linux系统的设备分为字符设备(char device),块设备(block device),以及网络设备(network device)。字符设备是指存取时没...原创 2018-03-20 15:07:13 · 16871 阅读 · 1 评论 -
嵌入式Linux——网卡驱动(2):网卡DM9000C传输层次介绍
本文中是看过一些文章后所写,而且可能很多内容都是来自这几篇文章,下面我将我所参考的文章放在下面: 网卡 搭建新通道 DM9000芯片 ARP协议实现 DM9000网卡芯片驱动的预备知识:MAC/PHY - lagignition的日志而本篇文章主要是对上述文章内容的一个综合。如有不对,感谢指出。下面我们开始介绍网卡的工作原理,而要介绍网卡的工作原理就离不开介绍网络模...转载 2018-03-24 11:27:19 · 1166 阅读 · 0 评论 -
嵌入式Linux——网卡驱动(3):结合硬件分析厂家提供驱动代码dm9dev9000c.c
声明:我看完韦东山老师所讲解的关于DM9000C移植的视频后,感觉老师没有对视频中所用的芯片进行详细的讲解,同时也没有对厂家所提供的代码做进一步的分析。可能有些同学会和我一样开始对所学的知识有了一种朦胧感,同时又想通过学习让自己对这方面的知识有更深入的了解,并且在代码中对硬件的操作有所了解。如果是这样,我想你可以看看这篇文章,他可能让你对芯片,或者对代码有更好的了解。还是那句老话,如果我的文章对你...原创 2018-03-26 16:45:00 · 1652 阅读 · 1 评论 -
嵌入式Linux——网卡驱动(4):移植DM9000C厂家驱动到JZ2440
简介:本文主要介绍如何将厂家提供的网卡驱动程序dm9dev9000c.c移植到我们的开发板JZ2440中。而本文将会从硬件方面入手,具体介绍如何修改厂家提供的驱动,以使其适应本开发板。一.下面我们介绍一下我们的开发环境:开发板:JZ2440(CPU为S3C2440)Linux版本: 2.6.22.6二.介绍完开发环境,我们就从硬件入手先了解在本开发板中DM9000C是如何接线的,以...原创 2018-03-28 11:08:12 · 994 阅读 · 0 评论 -
嵌入式Linux——IIC驱动(2):i2c驱动框架分析
简介: 本文主要介绍i2c总线框架,即对i2c的各个层次(i2c总线,i2c核心,i2c设备)进行分析。同时我也会结合程序对框架进行说明。所以本文将分为两部分,第一部分对i2c的框架进行介绍,而第二部分就是结合代码分析。内核:linux-2.6.22.6开发板:JZ2440CPU:S3C2440i2c从机设备:AT24C08声明: 在大家看本...原创 2018-04-11 19:56:22 · 7416 阅读 · 5 评论 -
嵌入式Linux——IIC总线驱动(3):IIC驱动OLED外设
简介: 本文主要介绍在jz2440开发板上驱动OLED外设,使其显示我们在应用层输入的语句。而同时我将该文分成了两部分,第一部分讲解i2c总线的实现,而第二部分讲解在i2c总线实现后,我们使用字符设备驱动来实现对OLED的控制。 Linux内核:linux-2.6.22.6 所用开发板:JZ2440 V3 所用OLED 屏幕:中景园电子0.96...原创 2018-04-12 18:41:44 · 4646 阅读 · 6 评论 -
嵌入式Linux——RTC驱动(1):RTC框架分析
简介: 本文通过分层的方式介绍RTC驱动,通过分析RTC在不同层次中所做的不同工作,以及各个层次之间的关系来了解RTC驱动框架。本文分为两部分,第一部分总的介绍RTC框架,而第二部分将结合详细的代码来分析各个层次的关系以及在本层中他们所做的事情。 Linux内核:linux-2.6.22.6 所用开发板:JZ2440 V3(S3C2440A)声明 : ...原创 2018-04-15 17:33:43 · 4810 阅读 · 2 评论 -
嵌入式Linux——音频设备驱动(1):uda1341音频设备驱动框架分析
简介: 本文主要分析uda1341音频设备驱动的框架,通过分析这个框架了解如何操作音频设备。而本文将分为两部分,第一部分总体介绍uda1341音频设备的框架,而第二部分会结合详细代码分析设备操作流程。 Linux内核:linux-2.6.22.6 所用开发板:JZ2440 V3(S3C2440A) 音频芯片:uda1341 所用总线:IIS...原创 2018-04-20 20:02:04 · 1301 阅读 · 0 评论 -
嵌入式Linux——DMA:在内核中简单使用DMA实现内存中数据传递
简介: 本文主要介绍在内核中简单使用DMA实现内存数据传递。由于本篇文章中没有介绍与框架相关的程序,只是使用字符设备来操作DMA,同时也没有抽象的层次,因此本文中代码分析部分就相对简单。但我还是会将文章分为两部分,第一部分我将介绍与DMA相关的知识。而第二部分讲解在内核中如何通过代码实现DMA的数据传递。 Linux内核:linux-2.6.22.6 所用开发板:JZ2440 V...原创 2018-04-26 16:46:08 · 14217 阅读 · 6 评论 -
嵌入式Linux——uevent机制:uevent原理分析
简介: 本文主要介绍uevent机制是什么,并通过代码分析使用uevent机制生成设备节点的过程。而本文将分为两部分,第一部分我们介绍一些预备知识和uevent的原理,而第二部分——通过代码介绍使用uevent机制创建设备节点。 Linux内核:linux-2.6.22.6 所用开发板:JZ2440 V3(S3C2440A)声明: 本文主要是看完韦东山老师视频并结合...转载 2018-05-07 10:56:56 · 31276 阅读 · 3 评论 -
嵌入式Linux——音频设备驱动(2):uda341中DMA的分析
简介: 本文主要对uda341中DMA相关部分进行分析,所以本文将不在讲解基础知识,而是直接分析代码。Linux内核:linux-2.6.22.6所用开发板:JZ2440 V3(S3C2440A)音频芯片:uda1341总线:DMA 我们直接进入代码的分析,从总体上看,DMA的代码为: output_stream.dma_ch = DMACH_I2S_OU...原创 2018-04-26 21:34:50 · 845 阅读 · 0 评论 -
嵌入式Linux——nand flash 驱动(4):AT91驱动分析以及写自己的nand驱动
就像题目所说,本文有两个内容要讲,第一是分析AT91的nand驱动程序,而第二个就是写自己的驱动程序。可能有人会问我们前面不是已经分析过s3c2440的nand驱动了吗?那为啥还要分析AT91 的那?因为AT91的程序简单,他的驱动程序更直接的去设置相应的函数或者寄存器,所以更利于我们去读懂同时也更利于我们去模仿写自己的驱动程序。下面我们言归正传在分析我们的drivers/mt...原创 2018-03-12 17:25:06 · 579 阅读 · 0 评论 -
嵌入式Linux——nand flash 驱动(三):源代码分析
再次声明:本文是看过一些文章后写的,如果与你的文章有相同的地方,敬请告知,如果对你有帮助,是我的荣幸。接下来的这篇文章我们将要分析一下nand flash在S3C2440中的驱动函数。下面我们以一张图来引入: 从上图可以看出,MTD设备层与原始设备层打交道。通过分析源代码我们可以知道当上层要求对FLASH进行读写时,它会向设备层发出请求,设备层的读写函数会调用原始设备层中...原创 2018-03-12 15:20:21 · 1031 阅读 · 0 评论 -
LED驱动
通过写博客来巩固自己学到的知识,我觉得是个好方法,在你刚调完程序,对程序还是最熟悉的时候记录下你对程序的学习。今天写led驱动程序。我相信网上一定有无数关于写led驱动的博客了。我觉得我只是希望自己可以通过写博客这种方式来巩固一下自己学到的知识,如果有雷同,说明咱们出自同一个老师,那我就该叫你师兄或师姐了。不好意思。下面进入正题:写驱动程序按老师所说可以大致分为两部分内容:1.将驱动框...转载 2017-12-08 17:23:49 · 345 阅读 · 0 评论 -
内核中断的认识
本文使用韦东山老师讲的Linux-2-6-22-6的内核,在此内核中对中断框架进行讲解。本文只是回顾一下自己所学中断的内容,如有雷同,纯属巧合。下面进入正题:讲解内核中断我们可以大致的将内核中断分为三部分:1.建立中断体系框架:init_IRQ函数2.使用request_irq函数填充上面所建立的框架3.使用框架执行用户编写的中断处理函数:asm_do_IRQ函数 1....原创 2017-12-13 17:22:34 · 427 阅读 · 0 评论 -
输入子系统—— 按键驱动
看到网上有很多的关于输入子系统的文章,我知道自己的文章还有很多的漏洞和不足。但我坚持每学完一些东西都要进行一些总结。所以写下这篇文章,如有相同或巧合敬请原谅。同时,本文章是基于韦东山老师的视频和开发版所写的,如果有不对的地方敬请指正。下面进入正文:输入子系统,我们通常将输入子系统分为三个部分,即 1. input.c的核心层2.以evdev.c为代表的input_handler层:这...原创 2017-12-26 15:45:54 · 559 阅读 · 0 评论 -
输入子系统测试
在写完输入子系统后要对其进行测试,下面是几个用于测试的方法。声明:本文章是看韦东山老师视频后所写的,同时使用与视频相对应的开发板。下面对测试方法进行介绍:1.使用hexdump /dev/event1 ,其中的event1是本机的,这个根据不同的驱动而定,你所写的可能不是1,而是2,3,4等hexdump的意思是十六进制显示 设备/dev/event1,他就相当于是实现了(open(...原创 2017-12-26 19:05:24 · 641 阅读 · 0 评论 -
bus_dev_drv 模型
本文介绍一种bus_drv_dev模型,这个模型其实就是一种通过bus总线,将分别位于左边的device和driver联系起来的机制。声明:本文是学习韦东山老师后的学习感悟,如有雷同请勿见怪。大致的意思是:在这个机制中,device通过device_register函数将自己放入bus的dev链表中,而driver通过driver_register函数将自己放入bus的drv链表中。...原创 2017-12-27 21:17:29 · 1061 阅读 · 0 评论 -
嵌入式Linux——LCD驱动
声明:本文以韦东山老师的视频为模本进行编写,开发板为s3c2440,LCD为A043-24-TT-11,此LCD为480*272 的4.3寸屏幕。与老师所讲的略有不同。同时本文为复习视频所学的内容,如有巧合,敬请谅解; 要写LCD驱动就要先从内核中找到支持LCD的软件相关的部分,也就是fbmem.c文件。fbmem.c作为LCD的软件部分为其提供了代码不变的部分,即在入口函数中分原创 2018-01-04 20:57:06 · 2470 阅读 · 0 评论 -
嵌入式Linux ———触摸屏驱动开发
声明:本文章是看完韦东山老师的触摸屏驱动视频所写的关于触摸屏的驱动,因此如果有相关内容与其他网友相同,敬请原谅。同时我还是想说本文只是总结自己的学习所得,同时也将自己所学到的知识写下来,所以如果这篇文章对你有帮助,那是我的荣幸。本文主要介绍韦东山老师视频中所讲的触摸屏驱动,同时还会将s3c2410_ts.c这个驱动程序讲一下。虽然老师讲的驱动是对这个驱动程序的精简和整理,但内核的程序我们还是要...原创 2018-01-10 18:26:16 · 4021 阅读 · 0 评论 -
USB原理以及对照hub.c的代码分析
声明:本文章是看了韦东山老师的视频所总结的学习到的东西,所以如果有与其他网友一样的地方,敬请原谅,如果对你有帮助,那是我的荣幸。在介绍其他的知识之前,我先说一下USB的基础知识:首先,USB分为主从结构,所有的USB传输都是从USB主机这方发起的,而USB从机没有主动通知USB主机的能力。而USB主机的电路图为:我们可以看到主机的D+和D-两个引脚通过15K的电阻接地。而USB...原创 2018-01-14 20:59:33 · 8026 阅读 · 0 评论 -
嵌入式Linux —— usb鼠标驱动
声明:本文章是看完韦东山老师的usb鼠标驱动视频所写的关于usb鼠标的驱动,因此如果有相关内容与其他网友相同,敬请原谅。同时我还是想说本文只是总结自己的学习所得,同时也将自己所学到的知识写下来,所以如果这篇文章对你有帮助,那是我的荣幸。在介绍驱动程序前我想向大家介绍一下usb_bus_type(usb总线驱动类),内核中有不同的总线类型,不同的总线有不同的匹配方式,如我们前面所学的platfo...原创 2018-01-16 10:03:47 · 3202 阅读 · 0 评论 -
分析USB鼠标——usbmouse.c
声明:本文章是看完韦东山老师的USB鼠标驱动的视频后,结合usb鼠标的驱动程序锁写的自己对usbmouse.c的分析,如果有与您重复的地方,敬请原谅。同时希望大家可以通过本文了解到usb驱动鼠标。而我认为我们不应该只是学习老师所教的课程,而自己独立的分析内核代码也是我们所要学习的内容。下面就要讲到对内核中usbmouse.c的分析,而在我分析之前,我要几个要点是希望大家可以明白的,因为只有明白...原创 2018-01-16 20:53:22 · 2206 阅读 · 0 评论 -
嵌入式Linux——块设备驱动
声明:本文章是看韦东山老师的教学视频后并阅读了一些博客后所写的块设备的驱动程序,其中包括一些对程序的分析,如果文中的分析与您的文章相同敬请提出,我会做相应的修改或删除。同时如果我的文章对你有所帮助那是我的幸运。 说起块设备驱动,我们就会想我们为什么要学习块设备驱动啊?我们不是已经学了字符设备驱动了吗?我们可以用字符驱动程序去写块设备驱动吗? 要回答...原创 2018-03-07 10:54:45 · 1062 阅读 · 0 评论 -
嵌入式Linux——nand flash 驱动开发(一):硬件介绍
本文章讲nand flash的驱动开发,而在介绍驱动程序之前我想先介绍一下我所用的硬件。这样对程序的开发更为方便。本文所使用的nand flash芯片为K9F2G08U0C,下面是他的一些必要的特性:•支持电压- 3.3V device(K9F2G08U0C): 2.70V ~ 3.60V• 组成- Memory Cell Array : (256M + 8M) x 8bit- Data...原创 2018-03-11 16:00:17 · 1413 阅读 · 0 评论 -
嵌入式Linux——nand flash驱动开发(二):框架介绍
在写这篇文章之前我想声明一下,由于我在写这篇文章之前看了一些写nand flash的文章。所以如果我的文章中出现您的文章中所有的东西,请您指出,我会细心改正或删除,而如果我的文章对你有帮助这是我的荣幸。 下面言归正传讲nand flash的框架,而好像所有的文章在介绍nand flash框架的时候总是离不开一张图: 下面我们就从这张图说起。 ...原创 2018-03-11 21:18:59 · 987 阅读 · 0 评论 -
嵌入式Linux——nor flash驱动(3):physmap.c分析并写自己的驱动
声明:本文是看韦东山老师的视频并看过一些文章后总结的关于nor的驱动,如果您觉得我的文章已经对你有所侵犯,请联系我,我会对我的文章进行更改或删除。如果对您有帮助,那是我的荣幸。 下面我们言归正传,开始讲nor flash驱动。我想我们在开始写驱动之前都会参考他人的驱动来写,我们也不例外。我们参考的是内核自带的nor驱动:drivers/mtd/map...原创 2018-03-17 16:03:27 · 1478 阅读 · 0 评论