自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 一步步写驱动---cdev

前面写到如何向系统申请一个设备号,设备号就像我们的身份证号一样,号本身并没有什么特殊的意义,只有把这个号和人对应才有意义,通用设备号也需要和一个特殊的东西对于,这就是cdev, cdev是linux下抽象出来的一个用来描述一个字符设备的结构体,在linux下定义如下:struct cdev { struct kobject kobj; struct mo

2012-08-20 11:43:10 485

原创 一步步写驱动--设备号

接触过linux的人都知道linux下有七类文件分别是”bcd-lsp”,即b:块设备文件、c:字符设备文件、d:目录、-:普通文件、l:符号链接文件、s:socket文件、p:管道文件。在这些文件里面有连个文件和我们驱动是息息相关的,它们就是字符设备文件和块设备文件。不同于其他文件块设备文件和字符设备文件一般都统一放在/dev目录下。首先我们看看这类文件是如何得到的,在linux下有个命令m

2012-07-29 22:01:15 607

原创 一步步写驱动--module_init/module_exit

在前面helloworld的编写里面,我们使用了两个宏分别是module_init和module_exit,这里分析下为什么使用这两个宏。在写模块的时候有两个特殊的函数,分别是init_module和cleanup_module,这两个函数分别在insmod的时候和rmmod的时候调用,并且insmod和rmmod只识别这两个特殊的函数,可是我们前面的例子里面并没有这两个函数。怎么会这样呢,那

2012-07-28 22:37:49 684

原创 一步步写驱动--模块

很多人一听到驱动就有种很高深的感觉,为什么装个驱动我的摄像头就有图像了呢,为什么装个操作系统后要装那么多的驱动呢。         这里我们一步一步的来了解下linux下的驱动。学过编程语言的第一个接触的必定是一个叫“helloworld”的东东。这里我们也来弄一个“hello world”。在真正的写驱动之前我们先了解下linux内核,linux内核采用的是模块化编程,这样可以很容易

2012-07-28 22:08:11 741

原创 samsung ADC 通用驱动

ADC是嵌入式产品常用的设备,它的驱动并不是很难,但是如果有多个这类设备的话,就得考虑ADC中断共享的问题了,这样反而是驱动变得较复杂,且不易控制。在2.6.29内核后在arch/arm/plat-samsung目录下加入了adc.c这个代码,这是一个通用adc驱动代码。这个代码用来初始化adc设备并构建了一个客户请求列表,用来接受客户请求转换数据。下面这个结构体用来描述adc设备

2011-12-20 16:40:13 731

原创 linux下平台设备的识别

在初学系统移植的时候,很多同学碰到这样的问题,比如要添加LCD的支持,网上很多资料说要添加一些代码,可是为什么添加这些代码缺不是很清楚。这里我们分析一些这些代码和驱动之间的关系。比如我们这里要添加LCD的支持,以S3C2410为例,我们会在arch/arm/mach-s3c2410/mach-smdk2410.c中添加如下代码:static structs3c2410fb_displa

2011-12-20 16:27:13 1741

原创 mtd子系统代码跟踪

这里按照nand flash驱动的注册及flash的读写操作的角度来跟踪一个mtd驱动在这个过程中做了哪些工作!

2011-12-20 16:21:30 230

原创 mjpg-streamer源码分析

mjpg-streamer是一个很好的开源项目,用来做视频服务器,使用的是v4l2的接口。前面我们说了它的移植过程,但是在某些特定的情况下这个工程不能达到我们的需求,所以我们需要对源码进行修改,或者直接写一个自己的视频服务器。在修改源码或写自己的服务器之前我们分析下这个源码的代码。这个代码里有三个部分是我们需要掌握的内容,第一是v4l2接口,第二个是socket编程,第三个是多线程编程。一

2011-12-20 16:12:21 255

原创 基于linux-2.6.35的网络视频服务器移植

一、环境主机环境 :ubuntu 10.10        目标机 :FS2410(S3C2410)        主机工具链 :gcc-4.4.5        交叉工具链 :arm-none-linux-gnueabi-gcc-4.3.2        摄像头 :ZC301二、移植过程1、配置内核是内核支持芯片为ZC301的摄像头        Make men

2011-12-20 16:11:14 243

原创 vmware 问题集锦

在使用vmware workstation 的时候会碰到这样那样的问题,最终导致我们的虚拟机无法启动,这里记录下这些问题的解决方案,会不断添加第一:Unable to open kernel device "vmic": 系统找不到指定的文件. Did you reboot after installing VMware Workstation?Module DevicePowerOn

2011-12-02 09:19:56 325

原创 关于u-boot同时支持nand启动和Nor启动 环境变量的保存位置

<br /><br />前面我们说过是u-boot同时支持nand flash启动和norflash启动,可是这个时候就有个环境变量的保存位置的问题了。假如我们设置为环境变量保存在nand上,nor启动时虽然保存环境变量的空间之前有一段空间浪费了,但不会有什么问题,但是假如我们设置为环境变量保存在nor上,nand启动就根本不能访问这段空间更谈何保存环境变量了,理想的情况是更加不同的flash启动把环境变量保存在相应的flash上。那么这是如何实现的呢?<br />       在说如何实现之前我们先把

2010-09-18 16:58:00 308

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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