Linux驱动开发
jiang_dlut
Sleeping in Linux.
展开
-
Linux 驱动开发-字符设备驱动
***************************************************************1。首先书写字符驱动程序。 /*globalvar.c*/#include //模块所需的大量符号和函数定义#include //指定初始化和清楚函数#include //文件系统相关的函数和头文件#include //cdev结构的头文件#include //在内核和用户空间中移动数据的函数MODULE_LIC原创 2010-08-19 10:16:00 · 758 阅读 · 0 评论 -
深入分析 Linux 内核链表
<br /><br /><br />深入分析 Linux 内核链表<br /><br /><br /><br /><br /><br />级别: 初级<br />杨沙洲 (pubb@163.net)国防科技大学计算机学院<br />2004 年 8 月 01 日本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。<br />一、 链表数据结构简介<br />链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一转载 2010-09-06 10:14:00 · 496 阅读 · 0 评论 -
video for linux 编程概述
<br />1.什么是video4linux<br />Video4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。<br /><br />2.Video4linux下视频编程的流程<br />(1)打开视频设备:<br />(2) 读取设备信息<br />(3)更改设备当前设置(没必要转载 2010-09-25 08:50:00 · 1654 阅读 · 0 评论 -
Linux USB鼠标驱动注解及测试
<br />http://www.linuxidc.com/Linux/2010-01/23976p6.htm转载 2010-09-28 21:32:00 · 969 阅读 · 0 评论 -
异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select函数: <br /> 系统提供select函数来实现多路复用输入/输出模型。原型: <br /> #include sys/time.h> <br /> #include unistd.h> <br /> select函数: <br /> 系统提供select函数来实现多路复用输入/输出模型。原型: <br /> #i转载 2010-10-11 14:36:00 · 605 阅读 · 0 评论 -
深入分析 Linux 内核链表(转)
深入分析 Linux 内核链表<br /> 杨沙洲 (pubb@163.net)国防科技大学计算机学院杨沙洲,目前在国防科技大学计算机学院攻读软件方向博士学位。对文中存在的技术问题,欢迎向 pubb@163.net质疑。 <br />简介: 本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。标记本文!<br />发布日期: 2004 年 8 月 01 日<br />一、 链表数据结构简介<br />链表转载 2010-10-25 09:35:00 · 644 阅读 · 0 评论 -
Linux源地址
http://cn.archive.ubuntu.com/ubuntu/pool/universe/原创 2010-10-26 17:32:00 · 805 阅读 · 0 评论 -
Linux音频编程指南
Linux音频编程指南<br /> 肖文鹏 (xiaowp@263.net), 自由软件爱好者本文作者肖文鹏是一名自由软件爱好者,主要从事操作系统和分布式计算环境的研究,喜爱Linux和Python。你可以通过 xiaowp@263.net与他取得联系。 <br />简介: 虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序,同时还给出转载 2011-01-07 09:47:00 · 858 阅读 · 0 评论 -
深入嵌入式linux知识要点
<br />1.linux理论<br /> <br />1.计算机体系结构<br />2.CPU结构<br />3.内存管理<br />4.文件系统<br />5.进程调度<br /> <br />2.linux驱动<br /> <br />1.i2c驱动添加使用 (inno,摄像头)<br />2.spi驱动添加和读写 (inno,spi的flash)<br />3.io驱动原创 2011-04-15 12:55:00 · 718 阅读 · 0 评论 -
BootLoader简介
简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于AR原创 2011-11-12 20:30:00 · 864 阅读 · 0 评论 -
Linux kermit 打印时间-即添加时间戳
set line /dev/ttyS0 set speed 115200set carrier-watch offset handshake noneset flow-control nonerobustset file type inset file name litset rec pack 1000set send pack 100000set wind原创 2012-11-07 20:13:52 · 3567 阅读 · 0 评论 -
交叉编译的Makefile模板
之前写的Makefile 范例。两个版本,For PC and Cross compile,以后直接用这个模板。include $(CLEAR_VARS)INCLUDE = -I. -I../include -I../zlib \ CFLAGS = $(INCLUDE)#FOR PC compile#LIBS = -L/usr/lib/i386-l原创 2012-11-10 19:45:15 · 6554 阅读 · 1 评论 -
usr/bin/ld: i386 architecture of input file XXX.a( xxx.o) is incompatible with i386:x86-64 output
这个问题是原来在32位Linux 系统下编译的o文件残留,在64位编译时候所提示的编译错误。make clean 可以解决。也可手动删除提示的o文件,之后重新编译。原创 2015-04-24 13:02:46 · 11399 阅读 · 2 评论 -
interface_to_usbdev() -- 根据usb_interface指针intf获取usb_device的地址。
<br />interface_to_usbdev() -- 根据usb_interface指针intf获取usb_device的地址。原创 2010-09-06 09:39:00 · 3867 阅读 · 0 评论 -
USB Video Class及其实现
1 Video Class 基础概念<br />Usb协议中,除了通用的软硬件电气接口规范等,还包含了各种各样的Class协议,用来为不同的功能定义各自的标准接口和具体的总线上的数据交互格式和内容。这些Class协议的数量非常多,最常见的比如支持U盘功能的Mass Storage Class,以及通用的数据交换协议:CDC class。此外还包括Audio Class, Print Class等等。<br /> 理论上说,即使没有这些Class,通过专用驱动也能够实现各种各样的应用功能。但是,正如M转载 2010-09-19 21:45:00 · 6912 阅读 · 0 评论 -
摄像头视频采集压缩及传输
引言:摄像头基本的功能还是视频传输,那么它是依靠怎样的原理来实现的呢?所谓视频传输: 就是将图片一张张传到屏幕,由于传输速度很快,所以可以让大家看到连续动态的画面,就像放电影一样。一般当画面的传输数量达到每秒24帧时,画面就有了连续性。下边我们将介绍摄像头视频采集压缩及传输的整个过程。一.摄像头的工作原理(获取视频数据)摄像头的工作原理大致为:景物通过镜头(LENS)生成的光学图像投射到图像传感器表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DS转载 2010-09-07 15:26:00 · 3021 阅读 · 0 评论 -
Linux 驱动开发
1。 写一个简单的驱动程序,命名为Hello.c #include #include #include static int __init hello_init(void){ printk(KERN_INFO "Hello world/n"); return 0;}static void __exit hello_exit(void){ printk(KERN_INFO "Goodbye world/n");}module_init(hel原创 2010-08-18 16:05:00 · 451 阅读 · 0 评论 -
Linux下USB驱动之skeleton分析
Usb_skeleton.c,是USB驱动的框架,适合USB驱动的初学者。 1.结构体 内核其实就是一坨坨的数据结构,加上一根根链表。 对于初学者,如果直接看USB驱动代码,大概会被那些名字相近的结构体弄得晕头转向,比如usb_host_interface和 usb_interface,看着看着就把两个混淆了。所以,在学习USB驱动之前,建议把相关结构体都拎出来看一下,其实,也就那么几个结构体在那装神弄鬼。USB skeleton驱动中用到的主要字段已用蓝色标出: e转载 2010-08-24 08:28:00 · 778 阅读 · 0 评论 -
Linux 驱动开发-字符设备驱动一些函数用法
unregister_chrdev_region | 释放设备号在调用 cdev_del()函数从系统注销字符设备之后,unregister_chrdev_region()应该被调用以释放原先申请的设备号,其函数原型为:<br />引用 voidunregister_chrdev_region(dev_tfirst,unsignedintcount);register_chrdev_region && alloc_chrdev_region | 分配设备号在调用 cdev_add()函数向系原创 2010-08-20 10:22:00 · 2231 阅读 · 0 评论 -
Linux 驱动开发Camera.log文件学习
<br /><br />Bus 002 Device 002: ID 0781:a7c1 SanDisk Corp. <br />Device Descriptor:<br /> bLength 18<br /> bDescriptorType 1<br /> bcdUSB 2.00<br /> bDeviceClass 0 (Defined at Interface level)原创 2010-08-20 17:15:00 · 1098 阅读 · 0 评论 -
我是USB -学习笔记
<br /> 一个接口对应一个驱动,一个驱动往往可以支持多个接口!<br /> <br />蒲 松 龄 曰 , 每 个 男 人 的 心 中 都 有 一 个 狐 狸 精 , 每 个 写 usb 驱 动 的 人 心 中 都 有 一 个<br />usb_driver。一般来说,我们平时所谓的编写usb驱动指的也就是写usb接口的驱动,需要<br />以一个struct usb_driver结构的对象为中心,以设备的接口提供的功能为基础,开展usb<br />驱动的建设。<br />83原创 2010-08-24 10:39:00 · 692 阅读 · 0 评论 -
Linux驱动发开,usb设备的probe全过程
本文将详细讲述2.6.22下的一个USB设备插上linux系统的PC后是如何一步一步调到我们的usb设备驱动的probe函数的, 我们知道我们的USB驱动的probe函数中的一个参数是interface结构, 因此一般来说, 一个USB设备中的任何一个接口都应该有对应的一个驱动程序,当然也有例外(如cdc-acm). 我们知道USB设备都是通过插入上层HUB的一个Port来连入系统并进而被系统发现的, 当USB设备插入一个HU转载 2010-08-23 16:23:00 · 4365 阅读 · 0 评论 -
linux kernel 2.4 和 2.6 的区别
<br />作者:晏渭川<br />随着Linux2.6的发布,由于2.6内核做了教的改动,各个设备的驱动程序在不同程度上要<br />进行改写。为了方便各位Linux爱好者我把自己整理的这分文档share出来。该文当列举<br />了2.6内核同以前版本的绝大多数变化,可惜的是由于时间和精力有限没有详细列出各个<br />函数的用法。<br />特别声明:该文档中的内容来自http://lwn.net,该网也上也有各个函数的较为详细的<br />说明可供各位参考。如果需要该文档转载 2010-08-24 13:53:00 · 792 阅读 · 0 评论 -
Linux自动生成设备名的方法
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_create创建对应的设备。大致用法如下:struct class *myclass = class_cr转载 2010-08-24 17:12:00 · 1093 阅读 · 0 评论 -
usb_control_msg函数用法
<br />usb_control_msg是没有用到urb的在USB中简单进行发送和接收的一种机制,用于少量的数据通信。原型为: 程序代码linux+v2.6.35/drivers/usb/core/message.c<br /> 104/**<br /> 105 * usb_control_msg - Builds a control urb, sends it off and waits for completion<br /> 106 * @dev: pointer to the us转载 2010-08-25 08:58:00 · 19769 阅读 · 1 评论 -
网站资料
http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&q=Logitech+driver+Linux&aq=f&aqi=&aql=&oq=&gs_rfai=#include #include #include #include #include #include #include #include #include /* 设备ID号 */#define USB_WEBCAM_VENDOR_ID原创 2010-08-27 16:24:00 · 755 阅读 · 0 评论 -
Linux内核的ioctl函数学习
我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl, 所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …);其中fd就是用户程序打开设备时使用转载 2010-09-07 10:37:00 · 713 阅读 · 0 评论 -
Linux V4L2 摄像头视频采集
<br />一,什么是video4linux<br />Video4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/videoN下,N可能为0,1,2,3... 一般0.<br />另,推荐一个用于播放从摄像头采集到的raw数据的播放器RawPlayer,只需要把采集的数据保存到文件***.yuv就OK了。<br转载 2010-09-07 15:19:00 · 16525 阅读 · 1 评论 -
Linux QT摄像头采集图像
Linux下使用各种设备是一件令人兴奋的事情。在Unix的世界里,用户与硬件打交待总是简单的。最近笔者在Linux下搞了摄像头的开发,有一点感想发于此处。Linux中操作一个设备一般都是打开(open),读取(read)和关闭(close)。使用Read的大多是一些字符型设备,然而对于显示屏或者摄 像头这种字符设备而已,挨个字的读写将使得系统调用变得频繁,众所周之,系统调用对于系统而已是个不小的开销。于是有内存映射(mmap)等物,本例中将 讲述在Linux下开发摄像头的一般过程以及使用Qt进行界面开发转载 2010-09-07 13:38:00 · 6521 阅读 · 4 评论 -
Linux sed 替换多个文件中的特定字符
命令:sed -i "s/A/B/g" `grep "A" -rl path`A:要替换的字符AB:替换成字符Bpath: 需要替换的文件路径。原创 2017-03-27 20:13:52 · 1683 阅读 · 0 评论