- 博客(11)
- 收藏
- 关注
原创 一步步写驱动---cdev
前面写到如何向系统申请一个设备号,设备号就像我们的身份证号一样,号本身并没有什么特殊的意义,只有把这个号和人对应才有意义,通用设备号也需要和一个特殊的东西对于,这就是cdev, cdev是linux下抽象出来的一个用来描述一个字符设备的结构体,在linux下定义如下:struct cdev { struct kobject kobj; struct mo
2012-08-20 11:43:10
527
原创 一步步写驱动--设备号
接触过linux的人都知道linux下有七类文件分别是”bcd-lsp”,即b:块设备文件、c:字符设备文件、d:目录、-:普通文件、l:符号链接文件、s:socket文件、p:管道文件。在这些文件里面有连个文件和我们驱动是息息相关的,它们就是字符设备文件和块设备文件。不同于其他文件块设备文件和字符设备文件一般都统一放在/dev目录下。首先我们看看这类文件是如何得到的,在linux下有个命令m
2012-07-29 22:01:15
639
原创 一步步写驱动--module_init/module_exit
在前面helloworld的编写里面,我们使用了两个宏分别是module_init和module_exit,这里分析下为什么使用这两个宏。在写模块的时候有两个特殊的函数,分别是init_module和cleanup_module,这两个函数分别在insmod的时候和rmmod的时候调用,并且insmod和rmmod只识别这两个特殊的函数,可是我们前面的例子里面并没有这两个函数。怎么会这样呢,那
2012-07-28 22:37:49
721
原创 一步步写驱动--模块
很多人一听到驱动就有种很高深的感觉,为什么装个驱动我的摄像头就有图像了呢,为什么装个操作系统后要装那么多的驱动呢。 这里我们一步一步的来了解下linux下的驱动。学过编程语言的第一个接触的必定是一个叫“helloworld”的东东。这里我们也来弄一个“hello world”。在真正的写驱动之前我们先了解下linux内核,linux内核采用的是模块化编程,这样可以很容易
2012-07-28 22:08:11
795
原创 samsung ADC 通用驱动
ADC是嵌入式产品常用的设备,它的驱动并不是很难,但是如果有多个这类设备的话,就得考虑ADC中断共享的问题了,这样反而是驱动变得较复杂,且不易控制。在2.6.29内核后在arch/arm/plat-samsung目录下加入了adc.c这个代码,这是一个通用adc驱动代码。这个代码用来初始化adc设备并构建了一个客户请求列表,用来接受客户请求转换数据。下面这个结构体用来描述adc设备
2011-12-20 16:40:13
769
原创 linux下平台设备的识别
在初学系统移植的时候,很多同学碰到这样的问题,比如要添加LCD的支持,网上很多资料说要添加一些代码,可是为什么添加这些代码缺不是很清楚。这里我们分析一些这些代码和驱动之间的关系。比如我们这里要添加LCD的支持,以S3C2410为例,我们会在arch/arm/mach-s3c2410/mach-smdk2410.c中添加如下代码:static structs3c2410fb_displa
2011-12-20 16:27:13
1793
原创 mjpg-streamer源码分析
mjpg-streamer是一个很好的开源项目,用来做视频服务器,使用的是v4l2的接口。前面我们说了它的移植过程,但是在某些特定的情况下这个工程不能达到我们的需求,所以我们需要对源码进行修改,或者直接写一个自己的视频服务器。在修改源码或写自己的服务器之前我们分析下这个源码的代码。这个代码里有三个部分是我们需要掌握的内容,第一是v4l2接口,第二个是socket编程,第三个是多线程编程。一
2011-12-20 16:12:21
282
原创 基于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
270
原创 vmware 问题集锦
在使用vmware workstation 的时候会碰到这样那样的问题,最终导致我们的虚拟机无法启动,这里记录下这些问题的解决方案,会不断添加第一:Unable to open kernel device "vmic": 系统找不到指定的文件. Did you reboot after installing VMware Workstation?Module DevicePowerOn
2011-12-02 09:19:56
350
原创 关于u-boot同时支持nand启动和Nor启动 环境变量的保存位置
<br /><br />前面我们说过是u-boot同时支持nand flash启动和norflash启动,可是这个时候就有个环境变量的保存位置的问题了。假如我们设置为环境变量保存在nand上,nor启动时虽然保存环境变量的空间之前有一段空间浪费了,但不会有什么问题,但是假如我们设置为环境变量保存在nor上,nand启动就根本不能访问这段空间更谈何保存环境变量了,理想的情况是更加不同的flash启动把环境变量保存在相应的flash上。那么这是如何实现的呢?<br /> 在说如何实现之前我们先把
2010-09-18 16:58:00
353
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人