linux驱动
linuxmake
这个作者很懒,什么都没留下…
展开
-
Linux 驱动安装卸载
1、Linux驱动安装insmod 模块名2、Linux驱动卸载rmmod 模块名3、驱动查看lsmod 注意:是模块名而不是驱动名(即xxxx.ko,xxxx是模块名,而不是/dev/中的名字)。删除驱动的最好办法是,先用lsmod查看名字,再进行删除.。原创 2012-10-14 22:14:44 · 8177 阅读 · 0 评论 -
Linux设备驱动之I2C架构分析
转自:http://www.osbaike.com/wap/news.asp?dataID=6461一:前言 I2c是philips提出的外设总线。I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线。另外,I2C是一种多主机控制总线。它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以。而I2C是基转载 2012-11-20 10:20:51 · 691 阅读 · 0 评论 -
2440 camera接口
CAMIF 的bus priority 只能比LCD 的priority 低,要比其她hardware都高。CAMIF 有兩個path : preview, Capture。preview 和 capture path 都各有4個target frame memory (4 pingpong frame memory)。 意思是依照1,2,3,4,1,2,3,4,,,依序放置 ?p转载 2012-12-03 11:59:17 · 633 阅读 · 0 评论 -
V4L2驱动框架
V4L2驱动框架主设备号: 81次设备号: 0-63 64-67 192-223 224-255/dev/videoX 应用层————————————char驱动————————————V4L2————————————具体的驱动————————————硬件应用层的操作都需要有底层V4L2驱动的支持。内转载 2012-11-19 10:42:00 · 950 阅读 · 0 评论 -
分析ov3640 摄像头的驱动
static struct i2c_driver ov3640_i2c_driver = {.driver = {.name = "ov3640",},.attach_adapter = ov3640_attach_adapter,.probe = ov3640_probe,.remove = ov3640_remove,.command = ov3640_comman原创 2012-10-28 22:11:09 · 2779 阅读 · 0 评论 -
在Linux内核中打印日志时间戳
在编译Linux内核,配置时:make menuconfig ---> Kernel hacking --> show timing information on printks 当选中这个选项后,启动内核,会在日志信息前面加上时间戳。转载 2013-07-14 16:32:45 · 2944 阅读 · 0 评论 -
implicit declaration of function 'kzalloc' 解决方法
出现:error: implicit declaration of function 'kzalloc'error: implicit declaration of function 'kfree'添加 #include原创 2013-08-19 22:44:53 · 2490 阅读 · 0 评论 -
error: unknownfield ‘ioctl’ specified in initializer
error: unknownfield ‘ioctl’ specified in initializer 异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序就根本不需要查询设备的状态,这一点非常类似于硬件上的“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在原理上一个进程接收到一个信号与处理器接收到一个中断转载 2013-08-19 22:50:31 · 1270 阅读 · 0 评论 -
linux 蓝牙驱动移植
蓝牙驱动移植转自:http://blog.sina.com.cn/s/blog_7834f3e90100r57c.html我的蓝牙设备是:USB蓝牙,芯片制造商: CSR, 芯片型号: 41B14。芯片上贴的是AS6320QA。可见是水货。但在windows下测试可以使用。Linux 2.6版本之后的内核一般都有蓝牙模块的配置,所以不用再打补丁了。一般在配置内核的时候选择如下转载 2013-08-09 00:36:10 · 3584 阅读 · 0 评论 -
AM3359 GPIO 驱动设计
AM3359 GPIO 驱动设计本文来自:http://blog.chinaunix.net/uid-28818752-id-3624349.html开发板:英蓓特科技有限公司的Mini8600B处理器:TI 公司的AM3359操作系统:Linux 3.2.0一、GPIO 资源简介AM3359 包含四组GPIO 引脚,GPIO0~GPIO3,每组32 根线,共128 根GP转载 2013-08-22 10:23:34 · 1314 阅读 · 0 评论 -
linux_蓝牙驱动代码分析
net/hci_core.cHCI 在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。hci_cmd_task是负责发送CMD的任务,它从hdev->c转载 2013-08-10 09:41:01 · 1730 阅读 · 0 评论 -
比特与十六进制转换
#define SZ_1 0x00000001#define SZ_2 0x00000002#define SZ_4 0x00000004#define SZ_8 0x00000008#define SZ_16 0x00000010#define SZ_32 0x00000020#define SZ_64 0x00000040#define原创 2013-08-23 09:49:13 · 5740 阅读 · 0 评论 -
tftp 烧写内核
1、设置开发板环境setenv serverip 192.168.1.2(linux主机IP)setenv ipaddr 192.168.1.11(开发板IP)saveenv (保存配置)2、通过tftp下载内核tftpboot uImage3、烧写内核nandecc hw 2nand erase 280000 400000nand write ${load原创 2013-08-23 15:16:12 · 1444 阅读 · 1 评论 -
linux 按键驱动
在许多开发板教程中一说到按键驱动内容时,大多都是按照之前单片机的思想来写的。但是如果深入学习linux设备驱动的话,会发现这样是很复杂而且不符合linux的编程思想。在此给大家介绍一下利用内核已有的驱动修改自己的按键驱动。其实驱动已经写好了,就是内核的输入设备驱动。我们现在用到的是gpio-keys驱动。输入设备驱动的机制在这里先不讲解,后续再详细分析。现在尽管我们队gpio-keys驱动原理原创 2013-10-05 10:46:07 · 1182 阅读 · 0 评论 -
3G 拨号出现”couldn't open ppp database /var/run/pppd2.tdb“错误
如果出现报错couldn't open ppp database /var/run/pppd2.tdb这一个错误解决办法mkdir /var/run解释:pppd2.tdb这个文件是pppd程序生成的如果没有run这个目录的话只要建一个目录就可以了)转载 2014-07-15 15:42:47 · 2392 阅读 · 0 评论 -
Linux下ppp拨号+3G模块(evdo 中兴MC8630模块)
转自:物联网的发展,嵌入式节点具备3G无线上网功能是个必不可少的功能,奈何网上的资料多数以WCDMA为主,电信的evdo资料不是很多,笔者经过一番实验,搜寻了一些网站,终于在开发板上,将EVDO模块(中兴MC8630)成功拨号上网,现分享步骤如下:3G模块的速度非常快,所以普通的UART串口已经不能满足速度,所以会通过芯片的USB口来进行数据交互。硬件连接这里就忽略了,有兴趣的朋友转载 2014-07-12 22:37:35 · 1723 阅读 · 0 评论 -
HI3515海思开发板移植3G模块笔记
硬件平台:海思Hi3515 Linux3G模块:1、移动模块:ZTE M305(TD-SCDMA)2、联通模块:HUAWEI EM770W(WCDMA)3、电信模块:HUAWEI EM660(CDMA2000-EVDO)开始工作:1、在编译内核时,通过make menuconfig打开模块加载选项,因为调用3G需要用到pppd服务,所以找到pppd服转载 2014-07-12 22:32:44 · 1947 阅读 · 0 评论 -
newstyle方式的i2c设备驱动
一>定义并填充i2c_driver:staticconst struct i2c_device_id at24c08b_id[] = { {"at24c08b", 0 }, //该i2c_driver所支持的i2c_client {} }; MODULE_DEVICE_TABLE(i2c,at24c08b_id); /*定义并填充i2c_driver:*probe设备探测转载 2012-11-19 21:24:26 · 747 阅读 · 0 评论 -
YCbCr
正如几何上用坐标空间来描述坐标集合, 色彩空间用数学方式来描述颜色集合。常见的3 个基本色彩模型是 RGB ,CMYK和YUV。 YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分, 其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。在YUV 家族中, YCb转载 2012-12-03 12:02:06 · 624 阅读 · 0 评论 -
fb驱动学习笔记
帧缓冲设备最重要的数据结构体struct fb_info,其中,重要的是struct fb_var_screeninfo var; /* 可变参数 */struct fb_fix_screeninfo fix; /* 固定参数 */struct fb_ops *fbops; //帧缓冲操作编写帧缓冲驱动的主要工作就是编写fb_ops各个成员函数转载 2012-11-19 10:41:08 · 924 阅读 · 0 评论 -
OV9650驱动程序跟踪(转)
http://blog.csdn.net/shentuhongfeng/article/details/6075259转载 2012-10-29 14:40:13 · 1024 阅读 · 0 评论 -
s3c2410时钟信号:FCLK、HCLK和PCLK
s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针)s3c2410 芯片有这么一段话: FCLK is used by ARM920T ,内核时钟,主频。HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt contr转载 2012-10-29 14:56:10 · 1388 阅读 · 0 评论 -
linux驱动中的platform总线(转)
在设备驱动程序中经常会见到和platform相关的字段,分布在驱动程序的多个角落,这也是2.6内核中比较重要的一种机制,把它的原理弄懂了,对以后分析驱动程序很有帮助,下面简单介绍一下: 在linux2.6设备模型中,关心总线,设备,驱动这三个实体,总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动。相反,在系统每注册一个驱动的时候,寻找与之匹配的设备,匹配是由总线来完转载 2012-10-30 15:42:28 · 650 阅读 · 0 评论 -
file结构
void *private_data ;驱动程序可以这个字段保存数据、共享数据,一般在open进行初始化,把对应的数据保存在这个字段后其他的函数都可以通过file->private_data查看并处理数据。原创 2012-10-21 20:45:28 · 593 阅读 · 0 评论 -
i2c驱动
i2c几个结构体(/linux/i2c.h)i2c_adapter结构体struct i2c_adapter { struct module * owner; /* 所属模块*/ unsigned int id; /*algorithm 的类型,定义于i2c-id.h,以I2C_ALGO_ 开始*/ unsigned int class; struct i2c_al原创 2012-10-20 23:07:48 · 512 阅读 · 0 评论 -
关于driver_register函数干了什么
现在进入driver_register()函数去看看。在driver_register() 中,调用了driver_find(drv->name, drv->bus)函数,这里是干啥呢?这里是先去驱动打算挂牌的地方先查找一下,这个驱动是否已经挂牌(注册)过了。在哪里查找呢?代码中写得很清楚,去bus->p->drivers_kset中查找,看到这里,我决定这里不要再继续展开细细的分析,否则永远都无转载 2012-10-25 22:11:00 · 1534 阅读 · 0 评论 -
内核下的I2C驱动
1. 框架1.1 硬件协议简介1.2 驱动框架1.3 bus-drv-dev模型及写程序a. 设备的4种构建方法a.1 定义一个i2c_board_info, 里面有:名字, 设备地址 然后i2c_register_board_info(busnum, ...) (把它们放入__i2c_board_list链表) list_add_tail(&de转载 2012-11-04 00:50:12 · 1668 阅读 · 0 评论 -
基于2.6.35内核的OV9650摄像头驱动移植
基于2.6.35内核的OV9650摄像头驱动移植作者:冯利美,华清远见嵌入式学院讲师。一、 移植环境:【移植环境】1、 主机:Ubuntu 10.10发行版2、 目标机:FS_S5PC100平台3、 交叉编译工具:arm-none-linux-gnueabi-4.5.14、 摄像头模块:OV96505、Linux文件系统:rootfs. cramfs.6、内核:转载 2012-11-09 22:52:17 · 1384 阅读 · 1 评论 -
File_operations
File_operations结构体 file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 在系统内部,I/O设备的存取操作通过特定的入口点来进行,而这组特定的入口点恰恰是由设备驱动程序提供的。转载 2012-11-27 22:22:21 · 793 阅读 · 0 评论 -
创建 /dev/video0 节点
最近做摄像头驱动,发现没有 /dev/video0节点,经过查看发现是内核编译时没有注册设备应该用 video_register_device 注册一个 video_device 设备就可以看到 /dev/videoxint video_register_device(struct video_device *vdev, int type, int nr)void video_unre原创 2012-11-21 16:03:33 · 13855 阅读 · 5 评论 -
关于ioremap,request_mem_region
文章内容来自:http://blog.csdn.net/fudan_abc/archive/2007/10/04/1811451.aspx以我们家 Intel 为代表的 i386 系列处理器中 , 内存和外部 IO 是独立编址独立寻址的 , 于是有一个地址空间叫做内存空间 , 另有一个地址空间叫做 I/O 空间 . 也就是说 , 从处理器的角度来说 ,i转载 2012-11-29 18:52:34 · 736 阅读 · 0 评论 -
ov3640初始化参数
u8 ov3640_setting_15fps_VGA_640_480[][3] = {{0x30,0x12,0x80},{0x30,0x4d,0x45},{0x30,0xa7,0x5e},{0x30,0x87,0x16},{0x30,0x9c,0x1a},{0x30,0xa2,0xe4},{0x30,0xaa,0x42},{0x30,0xb0,0xff},{0x转载 2012-11-30 21:35:20 · 1250 阅读 · 0 评论 -
基于Linux的v4l2视频架构驱动编写
其实,我刚开始一直都不知道怎么写驱动,什么都不懂的,只知道我需要在做项目的过程中学习,所以,我就自己找了一个关于编写Linux下的视频采集监控项目做,然后上学期刚开学的时候听师兄说,跟院长做项目,没做出来也没关系,所以直接退出博士的团队,投靠了院长的门下,呵呵,说到这里其实并不是我太见风使驼了,而是····老是让我做单片机的东东,我嫌没意思,他也知道我一开始就要学嵌入式,所以,最后,我想了一下,既转载 2012-11-19 10:23:48 · 599 阅读 · 0 评论 -
V4L2应用程序框架
V4L2是V4L的升级版本,linux下视频设备程序提供了一套接口规范。常用的结构体在内核目录include/linux/videodev2.h中定义struct v4l2_requestbuffers //申请帧缓冲,对应命令VIDIOC_REQBUFSstruct v4l2_capability //视频设备的功能,对应命令VIDIOC_QUERYCAPst转载 2012-11-19 10:39:54 · 529 阅读 · 0 评论 -
OV9650 的调试笔记(转)
Ov9650 Cam 采集帧速太低。只有5帧左右。开始怀疑是mjpg-streamer的速度问题。但是在网上看到一个网友也是用这个系统做的一个直升机模型,说速率可以达到30帧。怀疑,和他交流下来,经他提醒,他是修改了ov9650的初始参数,默认的驱动参数com7寄存器设置的是0x00,这样默认是输出1280x1024,所以慢,只要改成小图片模式输出就可以明显提高速率,按照这个思路我该为0x4转载 2014-11-12 16:19:05 · 1980 阅读 · 1 评论