自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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