网卡驱动之虚拟网卡驱动编写

我们来实现这么一个目的 我ping 3.3.3.4的时候,按理说如果是真实网卡的话,我们3.3.3.3的机器,和3.3.3.4的机器。ping 3.3.3.4的时候3.3.3.3的机器会把包发给3.3.3.4,3.3.3.4收到包之后又会把包发给3.3.3.3 在驱动程序中用netif_rx用...

2017-03-31 23:28:03

阅读数:1233

评论数:0

网卡驱动程序框架

我们这里说的是网卡驱动程序,不是网络驱动程序,网络有七层,我们写的只是最底层的东西,网络这么多层,但是最终你还是要操作硬件啊 所以上面肯定有个硬件相关层,我们要写的就是硬件相关的驱动程序这一小块。 网卡你不需要打开什么设备,你只需要socket编程就行了 怎么写 1、分配某个结构体 2、设置 3、...

2017-03-30 23:31:14

阅读数:1192

评论数:0

nandflash驱动之简单编写

参考内核中 driver/mtd/nand/s3c2410.c或者driver/mtd/nand/atmel_nand.c 先把头文件包含进去 我们来看看nand_scan_ident这里面做了什么事情 设置位数,因为我们的数据线只有8位所以这里选八位 设置默认函数 看看这个...

2017-03-30 12:37:19

阅读数:532

评论数:0

nandflash驱动框架

nandflash驱动框架 最上层肯定是应用程 —————————— app: open read write ________________ 文件系统:文件系统是将对文件的读写转换为对块设备的读写 ————————— 块设备驱动 块设备 : 知道怎么优化 —————— nandfla...

2017-03-28 23:07:18

阅读数:324

评论数:0

nandflash原理及硬件操作

我们先看下nandflash的布线 有data0 到data7 八根数据线 nandflash是个存储芯片,那我提出请求:读地址a的数据,把数据b写到a地址上去 那么我们看原理图只看到data0-data7,没有看到地址引脚,那怎么把地址传给我们的开发板 复用,这几个引脚即...

2017-03-24 19:18:15

阅读数:1966

评论数:0

编写块设备驱动之内存模拟磁盘

可以参考一下内核里面的文件 在内核里面收索blk_init_queue 然后就会发现xd.c和Z2ram.c 大概看一眼,看一个去驱动程序从入口开始看, 这里有个register_blkdev注册块设备驱动,跟我们字符设备相比少了一个fops,注册块设备已经退化了,它只不过是cat /prok/d...

2017-03-23 17:31:46

阅读数:193

评论数:0

块设备驱动程序的框架

我们大概来猜一下它的框架是怎么样的 应用程序  open read write一个普通的文件“1.txt” 1.txt最终肯定要操作硬件啊,比如硬盘啊 flash等等 然后中间是块设备驱动程序,对普通文件的读写肯定要转换成对块设备文件的读写,你要读写哪一个扇区,那谁来把文件的读写来转换成对扇...

2017-03-21 23:52:17

阅读数:568

评论数:0

块设备驱动的引入

块设备只能以快为单位接收输入和返回输出。 假设我应用程序也是open read write,块设备里面也是给它提供open read write函数,然后来操作硬件 我们举例来验证 1.硬盘 硬盘的格式像光盘一样一个一个盘面 然后这一面上有一个一个的环像跑到一样的东西,这...

2017-03-21 22:35:31

阅读数:129

评论数:0

USB驱动程序之鼠标用做键盘

我们还是接着来看看我们的例子程序 usbmouse.c 这里它接着判断了他是不是鼠标, 得到它的usb_host_interface,interface=intf->cur_alsetting就是当前接口的设置

2017-03-20 23:14:24

阅读数:314

评论数:1

usb驱动程序初步编写

今天我们的目标是将USB鼠标用做按键 比如说左键按下就相当于字母L 右键按下就相当于字母S 滚轮按下就相当于回车 相当于一个输入子系统,怎么做呢?? 1.分配一个input_device结构体 2.设置它能够产生按键类事件,能够产生这三个按键 3.注册 4.硬件相关的操作 ...

2017-03-20 18:00:07

阅读数:1758

评论数:0

USB驱动程序之USB总线驱动程序

USB主机控制器分为三种,一种是UHCI  OHCI  EHCI UHCI规范:intel阵营  告诉你怎么做USB这些东西 适用于低速和全速USB设备  低速一般称为USB1.1 全速一般称为USB2.0 inter做硬件比较牛 所以他的硬件比较复杂点,软件比较简单点  OHCI规范:micr...

2017-03-14 21:56:40

阅读数:732

评论数:0

USB驱动程序之概念介绍

在windows下,当你拿一个新的PC设备,把他接到PC上面,它会出现发现新硬件,跳出一个框说要你安装驱动程序 假设我们USB连的手机,他会提示你发现android phone,然后弹出对话框,提示你安装驱动程序。 但是为什么没有驱动程序,它知道是android phone呢???这些信息应该...

2017-03-13 22:12:07

阅读数:170

评论数:0

触摸屏驱动之编写驱动程序

我们打开我们的核心板原理图可以看到这四根引脚分别接在xadcAIN2,3,4,5上面 搜索发现不需要配置什么寄存器 我们看一看芯片手册上的触摸屏那一章,我们的工作就是阅读那一章然后弄清楚那里面的东西就可以了 先来看一看内核自带的触摸屏驱动做了什么事情 ts.clock = clk_...

2017-03-13 16:26:12

阅读数:421

评论数:0

触摸屏驱动之概念介绍

触摸屏其实我们也是用输入子系统做的,回过头来看看我们输入子系统, 触摸屏跟输入子系统一样的,右边的handler用的是edev.c,左边的device我们分配,设置,注册,和硬件操作 开发板厂商一般提供了触摸屏驱动,我们在内核代码里面搜索 s3c2410_ts.c 我们大概浏览一遍,然后自己...

2017-03-11 21:38:46

阅读数:784

评论数:0

LCD驱动程序(四)测试

我们先把内核里面的LCD驱动程序给去掉 步骤 1.make menuconfig 2.找到里面的Graphics support(图形支持) linux内核配置: Device Drivers  ---> Graphics support  ---> Suppo...

2017-03-11 21:37:26

阅读数:146

评论数:0

LCD驱动程序(3)显存与调色板

我们设置好了LCD控制器,它就会自动的从显存里面取出一个像素的值,然后发送到LCD上去,然后再取出第二个......取到最后面之后有返回到第一个,周而复始。 显存必须物理地址连续,LCD没那么聪明,你这个显存必须是连续的。怎么分配呢,我们就不能有kmalloc这种函数了。就要用专用的函数来分...

2017-03-10 23:47:01

阅读数:275

评论数:0

LCD驱动程序(1)初步编写LCD驱动程序

先参考内核里面自带的驱动程序,我们只是参考它的头文件而已  /*1.分配一个fb_info结构体*/  30     s5p_lcd=framebuffer_alloc(sizeof(struct s5p_lcd), &pdev->dev);  31     //这里为什么需要一...

2017-03-08 16:57:52

阅读数:437

评论数:0

LCD硬件操作

我们的CPU里面有一个LCD控制器, 可以把LCD理解成一行有很多个像素,有很多行。然后LCD后面有个电子抢,有个喷嘴,把颜色打到这个屏幕上,打完一个像素之后移动到下一个像素,然后喷射出来 它怎么知道怎么移动呢,它怎么知道要移动到下一个像素呢。这个就是我们的vclk决定的,每来一个时钟,就移动一个...

2017-03-08 12:43:03

阅读数:163

评论数:0

LCD驱动程序层次分析

我们内核里面自带的触摸屏驱动是fbmem.c 它肯定不止一个,根据我们驱动的分层思想,它肯定会把共性的东西抽出来 我们来看这个驱动的入口函数 static int __init fbmem_init(void) { proc_create("fb", 0, NULL, &...

2017-03-08 12:38:39

阅读数:199

评论数:0

平台总线模型

平台总线模型主要分为3个部分,1.driver 2.device 3.bus device主要放硬件相关的东西 driver里面主要存放的比较稳定的代码 我们依然可以查看gpio_keys.c这个代码来学习 平台总线是一种虚拟的总线 driver这个结构体会通过调用platform_...

2017-03-05 21:18:48

阅读数:202

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭