- 博客(50)
- 收藏
- 关注
原创 DM9000网卡驱动
Linux 网络子系统 网络接口层:网络接口层把数据链路层和物理层合并在了一起,提供访问物理设备的驱动程序,对应的网络协议主要是以太网协议。网络层:协议管理离散的计算机间的数据传输,如IP协议为用户和远程计算机提供了信息包的传输方法,确保信息包能正确地到达目的机器。重要的网络层协议包括ARP(地址解析协议)、ICMP(Internet控制消息协议)和IP协议(网际协议)等。传输层:
2016-09-22 22:31:38
404
原创 内存管理
Linux系统提供了4GB虚拟地址。在linux系统中不使用物理地址,使用的是虚拟地址,所以物理地址需要映射成虚拟地址。 0-3G为用户空间,3-4G为内核空间。在内核空间中,0-896M为物理内存映射区(直接映射区),映射方式简单,他们与物理地址只有一个固定的偏移量。32位的虚拟地址与物理地址的转换如图:1、cr3寄存器中的基地址加上虚拟地址的高10位得到页目录中页表的基
2016-09-22 22:29:14
504
原创 触摸屏驱动
触摸屏在LCD上层。 S3C2440 的触摸屏接口模式1. 普通转换模式单转换模式是最合适的通用ADC 转换。此模式可以通过设置 ADCCON(ADC 控制寄存器)初始化并且通过读写ADCDAT0(ADC 数据寄存器 0)就能够完成。2. 分离的 X/Y 方向转换模式触摸屏控制器可以工作在两个转换模式之一。方向转换模式如下方法操作。X 方向模式写 X 方向转换数据到
2016-09-22 22:27:19
920
原创 LCD驱动
LCD 帧缓冲设备(fb) fb是什么?fb是linux系统为显示设备提供的统一的接口。 LCD显示原理:fb缓存后,用户程序通过mmp内存的映射,映射一个虚拟的用户空间,将要显示的数据放进去,然后LCD显示。选用mmp的优势是读写速度快,避免延时。 驱动程序分配系统内存作为显存。fop接口:1、应用程序服务2、控制LCD的控制器。 fb的作用:fb的驱动程序会分配
2016-09-22 22:25:58
338
原创 input子系统
触摸屏驱动分为两部分:1、输入子系统;TP。 数据通过内核上报到app的方式:1、copy_to_user2、input 3、uevent 按键、触摸屏、鼠标等输入型设备都可以用input函数来实现设备驱动。 输入子系统由驱动层、输入子系统核心、事件处理层三部分组成。一个输入事件,如鼠标移动、键盘按下等通过Driver->inputcore->Event handler -
2016-09-22 22:22:23
619
原创 板级信息
U-boot 起来后是如何选中平台的。通过Uboot中的机器码和mach-type进行选中开发板。其中 mini2440的机器码为1999,type为MINI2440。 u-boot启动后进入main.c 中。进入start_kernel。在start_kernel中setup_arch(&command_line)安装架构。传入参数command_line是从uboot中传
2016-09-22 22:18:28
443
原创 平台总线、设备、驱动的学习
设备和驱动的绑定是通过总线实现的。总线通过查找总线下的设备列表和驱动列表,名字相同的进行匹配。总线代码的实现:struct bus_type { constchar *name; //总线名字 structbus_attribute *bus_attrs; //总线属性 structdevice_a
2016-08-17 21:39:18
1783
原创 基于mini2440外部中断的按键驱动
看了好长时间的中断,终于动手写了个基于中断的按键驱动。本次驱动不是十分成功,中断都进去了,但是打印出的信息有些问题。现在还没有找到原因。这个中断编写时参照内核中的按键驱动进行编写的。关于内核的中断例程刚开始看,有许多疑问:怎么不见它配置寄存器呢?我在网上查的资料说是在request_irq中进行了底层硬件的配置?还有就是我看到网上有的6410的按键中断驱动和2440的按键中断驱动几乎一
2016-08-03 22:29:29
789
原创 初次动手编写驱动——LED在linux中的驱动。
今天第一次自己尝试编写驱动,看了这么长时间视频,第一次动手,编写的是简单的LED的程序。从简单到复杂一个一个来。编写驱动的顺序是先从注册函数和卸载函数起始:static int led_init(){cdev_init(&cdev, &led_fops);alloc_chrdev_region(&devno, 0, 1,"led");cdev_add(&cdev, devn
2016-07-12 23:20:33
3373
原创 linux驱动之LED驱动体验
LED驱动算是简单的驱动,第一次真正意义上的动手做驱动。硬件平台是mini2440.用的到的命令:1、tftp下载命令:tftp -r led.ko -g 192.168.0.1032、模块安装:首先,insmod led.ko 由于初学,不知道安装命令后面打印的是什么,所以先暂时忽略。如图然后通过cat /proc/devices查看设备号,如图最后通过设备号
2016-07-11 22:57:14
397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅