- 博客(87)
- 资源 (36)
- 收藏
- 关注
原创 三轴陀螺仪MPU3050驱动解析
MPU3050是invensense公司的三轴陀螺仪芯片,三轴陀螺仪最大的作用就是“测量角速度,以判别物体的运动状态,所以也称为运动传感器.下图是MPU3050的系统框图,芯片有1个中断引脚,可以通过i2c来控制,获取x Gyro,y Gyro,z Gyro设备驱动中用mpu3050_sensor结构体来描述MPU3050设备对象(对象中包含i2c客户端及输入设备来处理获取的x,y,z轴数据的传递
2014-03-28 22:39:43 10502 1
原创 三轴加速度传感器bma150驱动解析
BMA150 博世 三轴加速度传感器SPI(4线,3线),i2c,中断引脚频响+/- 2g,4g,8g;带宽25~1500hz,中断触发内部加速度求值低功耗,快速唤醒包含数据寄存器,控制寄存器,状态寄存器,设置寄存器及EEPROM寄存器读写使用i2c接口,所以需要驱动i2c设备数据需要获取xyz值,所以可以添加成input设备用一个bma150_data数据对象来描
2014-03-27 12:14:50 7666
原创 exec函数族
exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件exec函数族共6个函数:1.int execl(const char *path, const char *arg0, ... /*, (char *)0 */);path:路径arg0,arg1,...,argn:参数#include in
2014-01-23 16:07:17 2803
原创 linux网络设备—mdio总线
一.结构体struct mii_bus { const char *name; //总线名 char id[MII_BUS_ID_SIZE]; //id void *priv; //私有数据 int (*read)(struct mii_bus *bus, int phy_id, int regnum); //读方法 int (*write)(struct mii_bus
2013-11-14 09:38:28 10336 2
原创 linux网络设备—PHY
一.结构体1.PHY设备struct phy_device { struct phy_driver *drv; //PHY设备驱动 struct mii_bus *bus; //对应的MII总线 struct device dev; //设备文件 u32 phy_id; //PHY ID enum phy_state state; //PHY状态 u32 dev_f
2013-11-14 09:37:58 10877 5
原创 动态域名ddns开源客户端inadyn的移植
一.交叉编译http://inatech.eu/inadyn/readme.html下载inadyn.v1.96.2.zip解压cd inadyn修改makefileCOMPILE=gcc -Wall -pedantic -c $(ARCH_SPECIFIC_CFLAGS) $(CFLAGS) -o "$(OUTDIR)/$(*F).o" $(CFG_INC) "$<"L
2013-11-09 09:26:22 7216 1
原创 深入解析linux下rtc架构
一.描述rtc相关结构体1.rtc设备struct rtc_device //rtc设备{ struct device dev; //设备文件 struct module *owner; //所有者 int id; //次设备号 char name[RTC_DEVICE_NAME_SIZE]; //rtc设备名 const struct
2013-10-26 16:24:45 6525
原创 web服务器goahead的移植
1.网上下载goahead-3.1.1-0-src.tgz包2.解压tar -zxvf goahead-3.1.1-0-src.tgz3.编译cd goahead-3.1.1-0make CC=arm-none-linux-gnueabi-gcc ARCH=arm在linux-arm-default/bin中可以找到goahead4.测试修改运行./goahead测
2013-10-22 12:46:56 5708
原创 嵌入式ntp服务器的移植
一.交叉编译1.官网下载http://www.ntp.org/点击download选项页我的版本是ntp-4.2.6p5.tar.gz2.解压tar -zxvf ntp-4.2.6p5.tar.gz3.进入解压目录配置./configure --host=arm-linux CC=arm-none-linux-gnueabi-gcc或者指定安装路径./configu
2013-09-11 13:19:37 5827
原创 uvc摄像头代码解析6
10.扫描视频设备链和注册视频设备10.1 uvc视频链struct uvc_video_chain { //uvc视频链 struct uvc_device *dev; //uvc设备 struct list_head list; //uvc视频链链表头 struct list_head entities; //uvc实体链表头 struct uvc_entit
2013-09-11 12:57:34 8329 4
原创 uvc摄像头代码解析5
8.初始化uvc控制8.1 重要结构体struct uvc_control { //uvc控制 struct uvc_entity *entity; //uvc实体 struct uvc_control_info info; //uvc控制信息 __u8 index; //索引值 __u8 dirty:1, loaded:1, modified:1,
2013-09-11 12:56:36 9909 1
原创 uvc摄像头代码解析4
7.uvc_parse_format7.1 uvc格式描述符struct uvc_format_desc { //uvc格式描述符char *name; //uvc格式描述符名字__u8 guid[16];//全局唯一ID__u32 fcc; //压缩格式};7.2 uvc解析1个格式描述符static int uvc_parse_format(st
2013-08-30 10:50:07 9056 2
原创 uvc摄像头代码解析2
1.uvc驱动模块入口module_init(uvc_init); //1.模块入口2.初始化函数static int __init uvc_init(void) // 2.初始化函数{ int result; result = usb_register(&uvc_driver.driver); // 3.注册usb设备驱动(usb摄像头设备) if (result =
2013-08-26 10:32:56 11860 4
原创 uvc摄像头代码解析1
一.FAQ1.判断自己的摄像头是否支持uvc标准输入lsusb //列出usb设备Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 003: ID 0c45:62f1 Microdia //摄像头Bus 002 Device 001: ID 1d6b:0002 L
2013-08-26 09:34:20 11224 3
原创 ini文件解析c库(iniparser)
一.交叉编译ini解析库1.官方网站http://ndevilla.free.fr/iniparser下载iniparser-3.1.tar.gz2.解压tar -zxvf iniparser-3.1.tar.gz cd tar -zxvf iniparser3.修改makefileCC = gcc 修改为--> CC = arm-none-linux-gnueabi
2013-07-27 22:01:26 13245 1
原创 ffmpeg,live555,mplayer交叉编译
一.ffmpeg的编译1.从官网http://ffmpeg.org/下载 ffmpeg-2.0.tar.gz2.解压tar -zxvf ffmpeg-2.0.tar.gz 3.配置生成makefile./configure --enable-cross-compile --cross-prefix=arm-none-linux-gnueabi- --arch=arm --tar
2013-07-25 15:11:57 5949
原创 tcpdump交叉编译及使用
第一步.下载官方网站:http://www.tcpdump.org/需要下载libpcap包和tcpdump包我下载的版本是:libpcap-1.4.0.tar.gz和tcpdump-4.4.0.tar.gz第二步.编译libpcap包2.1 解压tar -zxvf libpcap-1.4.0.tar.gz2.2 进入解压目录cd libpcap-1.4.0/2.3
2013-07-23 22:34:25 10050
原创 lsof交叉编译
一.交叉编译1 下载网上搜索lsof-4.80.tar.gz2.解压tar -zxvf lsof-4.80.tar.gzcd lsof_4.80tar -xvf lsof_4.80_src.tar 3.根据/lsof-4.80/lsof_4.80_src/00XCONFIG文件设置环境变量export LSOF_CC="/opt/GCC/bin/arm-none-l
2013-07-23 19:50:50 6404
原创 web服务器thttpd的移植
1.官网下载http://www.acme.com/software/thttpd/ 版本thttpd-2.25b.tar.gz2.解压 tar -zxvf thttpd-2.25b.tar.gz3../configure4.修改makefileCC = gcc -> CC = arm-none-linux-gnueabi-gcc总共有3个makefile要改压缩根
2013-07-23 13:45:23 2943 1
原创 web服务器boa的移植
1.下载官方网站http://www.boa.org/我下载的是0.94.13版本2.解压tar -zxvf boa-0.94.13.tar.gz3.进入src目录./configure配置一下生成makefile文件4.修改makefileCC = gcc CPP = gcc -E改为CC = arm-none-linux-gnueabi-gcc
2013-07-21 14:24:32 4037
原创 嵌入式linux下u盘升级的设计
一.内核配置,配置使其支持u盘make menu_config Device Drivers ---> [*]USB support --> USB Mass Storage supportu盘底层依赖scsi,所以scsi的配置也要配置好二.设计更新代码我是这么设计的:写个应用程序存放在文件系统的/bin目录下,取名up
2013-07-11 15:26:21 5103 1
原创 MTD设备驱动--NAND flash
前面的文章MTD设备驱动(http://blog.csdn.net/paomadi/article/details/9262307)讲了mtd设备的架构组织其中讲述了调用int add_mtd_partitions(struct mtd_info *master,const struct mtd_partition *parts,int nbparts) 该函数一个作用是mtd_info
2013-07-08 13:02:23 3268
原创 MTD设备驱动
MTD(memory technology device):内存技术设备是linux用于描述ROM,NAND,NOR等内存设备的子系统的抽象MTD设备可以按块读写也可以按字节读写,也就是说MTD设备既可以是块设备也可以是字符设备一.MTD设备基础1.关键结构体对象在MTD中用mtd_info来描述一个内存设备struct mtd_info { u_char type;
2013-07-07 12:15:58 6029 1
原创 usb键鼠驱动分析
一、鼠标linux下的usb鼠标驱动在/drivers/hid/usbhid/usbmouse.c中实现1.加载初始化过程1.1模块入口module_init(usb_mouse_init);1.2初始化函数static int __init usb_mouse_init(void) //初始化{ int retval = usb_register(&usb_mou
2013-06-29 11:27:40 5053
原创 让qt应用程序支持触摸
一.设备驱动我的触摸屏是usb接口的可以参考下这2篇文件http://blog.csdn.net/paomadi/article/details/8754783 usb触摸屏http://blog.csdn.net/paomadi/article/details/8309861 输入子系统不是usb接口的或者自己想写多一个也可以(需要我的源码的请留邮箱说下,我贴一部分)us
2013-06-20 14:03:47 19104 26
原创 alsa音频架构4-声卡控制
第十五部分 声卡控制接口前面第一篇中讲到了每注册一个声卡都会创建注册一个对应的声卡控制设备,并给出了其操作函数集snd_ctl_f_ops,在"amixer,aplay,arecord的使用"一文中提及了amixer如何设置获取声卡的控制选项 接着在第二篇中讲到Asoc声卡驱动编写的步骤,步骤中没牵扯到控制设备的控制选项,这里要补充第5个步骤第5个步骤就是在设备驱动中要调用snd_
2013-05-31 12:57:31 4003 3
原创 alsa音频架构3-pcm
第十四部分 snd_pcm1.pcm结构体struct snd_pcm { struct snd_card *card; //声卡 struct list_head list; int device; //设备号 unsigned int info_flags; unsigned short dev_class; unsigned short dev_subclass; ch
2013-05-30 23:52:57 7416 2
原创 amixer,aplay,arecord交叉编译及使用
一.amixer用于控制设置 amixer的帮助提示信息Usage: amixer [command]Available options: -h,--help this help -c,--card N select the card -D,--device N select the device, default 'default' -d,-
2013-05-30 04:26:26 11567
原创 alsa音频架构2-ASoc
设计ASoc的目的是为嵌入式系统片上处理器音频单元或外部的音频解码芯片提供更好的ALSA支持ASoC有多个组件组成snd_soc_platform/snd_soc_codec/snd_soc_dai/snd_soc_card以及ALSA的snd_pcmsnd_soc_platform和snd_soc_codec就行平台与设备的关系缺一不可,snd_soc_card是它们实例化的一个对象
2013-05-28 11:58:21 5792 2
原创 linux中的轮询机制select/poll/epoll
参考:StephenChan's Tech Spacehttp://www.cnblogs.com/xuxm2007/archive/2011/08/15/2139809.htmlhttp://xingyunbaijunwei.blog.163.com/blog/static/76538067201241685556302/比较 select sel
2013-05-23 12:46:51 12667
转载 成大事必备9种能力、9种手段、9种心态
出处:http://blog.csdn.net/tigerdsh/article/details/8890086成大事的九种手段:1、敢于决断--克服犹豫不定的习性 很多人之所以一事无成,最大的毛病就是缺乏敢于决断的手段,总是左顾右盼、思前想后,从而错失成功的最佳时机。成大事者在看到事情的成功可能性到来时,敢于做出重大决断,因此取得先机。2、挑战弱点--彻底改变自己的缺
2013-05-06 16:10:27 1397
原创 alsa音频架构1
第一部分 alsa子系统关键结构体对象等1.声卡设备类型定义#define SNDRV_DEV_TOPLEVEL ((__force snd_device_type_t) 0)#define SNDRV_DEV_CONTROL ((__force snd_device_type_t) 1) #define SNDRV_DEV_LOWLEVEL_PRE ((__force snd_dev
2013-05-06 09:16:41 5156
原创 【android】根据init.rc启动action和service
一、init.rc语法规则1.init.rc文件的内容主要分类动作(Action)命令(Commands)服务(Services)选项(Options)触发(trigger)2.动作和命令一起使用on 2.1.trigger是触发条件,为真执行命令trigger有以下几种类型boot /init.conf加载完毕时触发=
2013-04-08 14:13:15 11250 1
原创 usb触摸屏驱动
源码在/drivers/input/touchscreen/usbtouchscreen.c中static int __init usbtouch_init(void) //入口函数{ return usb_register(&usbtouch_driver); //注册usb触摸屏驱动}module_init(usbtouch_init);看usbtouch_driver的定义s
2013-04-03 13:09:43 7643 1
原创 linux 中断机制浅析
一、中断相关结构体1.irq_desc中断描述符struct irq_desc {#ifdef CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED struct irq_data irq_data;#else union { struct irq_data irq_data; //中断数据 struct { unsigned int irq;
2013-03-27 09:26:43 4425 1
原创 网卡从24c02获取设置mac地址
#include #include #include unsigned char mac_read(unsigned char command){ int ret; unsigned char buf; struct i2c_adapter *a = i2c_get_adapter(1); struct i2c_msg msg[2] = { { .addr = 0
2013-03-22 14:02:19 2770
原创 linux gpio接口
一.相关结构体1.gpio_chip代表一个芯片的一个gpio bankstruct gpio_chip { //gpio bank const char *label; //bank名 struct device *dev; //设备文件 struct module *owner; //模块所有者 int (*request)(struct gpio_chip *chip,u
2013-03-01 11:50:17 7098
原创 二 spi 子系统(spidev.c)
一.spidev.c文件看一个设备驱动的方法:概览下重要的结构体spidev_data及全局变量device_list,bufsiz,SPIDEV_MAJOR...module_init标识的入口初始化函数spidev_init,(module_exit标识的出口函数)设备与设备驱动匹配时候调用的probe方法spidev_probe设备驱动的操作函数集file_operati
2013-02-27 14:50:03 10458 2
linux 2+1+2
2012-08-20
Universal-USB-Installer-1.8.1.5.exe
2010-12-02
Advanced_Programming_In_The_UNIX_Environment(2005)2Ed
2010-12-02
SoftICE for XP
2010-11-06
coreutils linux终端源码
2010-09-02
网络调试助手+串口调试助手
2010-08-11
SD卡 物理层协议
2010-08-03
C # 记事本源代码
2010-07-23
Linux DeviceDrivers 3rd Edition
2010-07-23
华为PCB布线规范 华为PCB布线规范
2010-07-14
云计算 Cloud Computing--michael miller
2010-06-24
linux内核 0.11版本源码 带中文注释
2009-08-31
The Linux Kernel Module Programming Guide2.6.pdf
2009-07-29
Building.Embedded.Linux.Systems.Aug.2008.pdf
2009-07-29
S3C44B0X中文数据手册1~17
2009-07-15
现代电子技术实践基础教程
2009-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人