自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 autoconf.h

在执行make menuconfig保存配置后会把所有的配置信息保存到源码顶层目录下的.config文件中,然后会根据.config中的内容在include/generated目录下更新autoconf.h文件的内容。autoconf.h中就是C语言用到的所有的在配置过程中产生的宏。autoconf.h文件是自动包含的,不需要C代码文件中显示包含,在内核源码的根目录下的Makefile中实现了自动

2014-01-03 17:34:14 3189

转载 linux 下开机自动加载驱动模块

呼呼,好久不见前一段时间开发了一个linux下的PCI数据采集板卡的驱动,在驱动调试时,一直使用insmod 动态的加载驱动模块(ko文件).现在驱动基本开发结束,要提交给客户,使用insmod加载时,对客户来说不太好,比较麻烦,所以不能采用这种方法。由于刚开始做驱动,还不知道如何在linux启动时自动加载自己的驱动模块,就对自动加载模块这方面深入了一下。最终通过与COT(一个

2013-12-26 23:02:56 1554

转载 LINUX内核USB子系统学习笔记之初识USB (带枚举usb数据包)

这个是USB系统的拓扑图,4个部分构成:USB主机控制器,根集线器,集线器,设备。其中Root Hub与USB主机控制器是绑定在一起的。再了解一下USB驱动框架:USB通信都是由host端发起的。USB设备驱动程序分配并初始化一个URB发给USB Core,USB Core改一改,发给USB主机控制器驱动,USB主机控制器驱动把它解析成包,在总线上进行传送。USB Core是由

2013-12-11 00:25:13 1140

转载 linux usb 驱动详解 三

本部分的一些示例源码来自drivers/usb/usb-skeleton.c,它是Linux内核为我们提供的最基础的USB驱动程序,USB骨架程序)驱动程序把驱动对象注册到 USB 子系统中,之后使用供应商(idVendor)和设备(idProduct)标识来判断对应的硬件是否已经安装.驱动的设备支持列表struct usb_device_id 结构提供了这个驱动支持的不同

2013-12-11 00:22:26 718

转载 linux usb 驱动详解 二

USB 设备驱动代码通过urb和所有的 USB 设备通讯。urb用 struct urb 结构描述(include/linux/usb.h )。urb 以一种异步的方式同一个特定USB设备的特定端点发送或接受数据。一个 USB 设备驱动可根据驱动的需要,分配多个 urb 给一个端点或重用单个 urb 给多个不同的端点。设备中的每个端点都处理一个 urb 队列, 所以多个 urb 可在队列清空之

2013-12-11 00:20:19 790

转载 linux usb 驱动详解 一

内核使用2.6.29.4      拓扑结构上, 一个 USB 子系统并不是以总线的方式来分布; 它是一棵由几个点对点连接构成的树。这些连接是连接设备和集线器的4线电缆(地, 电源, 和 2 个差分信号线), 如同以太网的双绞线。USB主控制器负责询问每个USB设备是否有数据需要发送。由于这个拓扑结构,一个 USB 设备在没有主控制器要求的情况下不能发送数据. 也就是说:USB是单主方

2013-12-11 00:18:20 769

转载 圈圈USB学习笔记5--关于HID协议

HID协议规定了两种条目:短条目和长条目(这儿没有用到长条目,不管它).其中短条目的结构如下图所示:要判断一个短条目具体是哪种类型,先查看bType确定出主条目、全局条目、局部条目的一种,然后再跟据bTag确定具体的类型。1. 关于第三章USB鼠标的ReportDescriptor,从条目前缀结构中可以发现,这一节的条目类型只有这三种(0xC0,唉,对不起你啊):   0x1 --

2013-12-11 00:05:38 2029

转载 USB学习笔记(3)—— 小结

看到笔记2,还是2010年的了,时间飞逝啊,抽空把圈圈的书分章节,对照着CDC,HID,仅批量传输之类的协议,看完了,收获不少。说到USB开发,圈圈的书其实讲的不是很透彻,在开始具体实例之前,应该有个总的概括性的讲述,可惜没有,自己总结,如下:       USB设备的开发,我将其分为三类。       第一类是USB的标准类设备,比如,HID类(Human Interface Devic

2013-12-11 00:01:41 1005

转载 USB学习笔记3:端点与传输模式

端点——端点位于USB 外设内部,所有通信数据的来源或目的都基于这些端点,是一个可寻址的FIFO。每个USB 外设有一个唯一的地址,可能包含最多十六个端点。主机通过发出器件地址和每次数据传输的端点号,向一个具体端点(FIFO)发送数据。每个端点的地址为0 到15,一个端点地址对应一个方向。所以,端点2-IN 与端点2-OUT 完全不同。 每个器件有一个默认的双向控制端点0,因此不存在端点0

2013-12-10 23:47:36 2281

转载 Linux下面写i2c设备的驱动-如何枚举产生i2c_client

i2c--2.6.34文档:如何枚举产生i2c_client============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu版权没有,但是转载请保留此段声明============================================

2013-12-10 09:49:29 820

转载 linux设备模型之i2c子系统

转载请注明出处:http://www.cnblogs.com/gdt-a20===============================      I2c子系统将i2c控制器(i2c寄存器所在的那块电路)抽象出来,用adapter(适配器)这个结构来描述,可以说一个适配器就代表一条i2c总线,而挂接在i2c总线上的设备是用client这个结构体来表述,另外i2c_bus上的设备链表挂接的

2013-12-10 09:45:59 859

转载 Android LayoutInflater inflate

LayoutInflater常用于动态载入布局文件,需要使用LayoutInflater.inflate()来载入;获得 LayoutInflater 实例的三种方式1. LayoutInflater inflater = getLayoutInflater();//调用Activity的getLayoutInflater() 2. LayoutInflater infla

2013-11-21 23:41:14 662

转载 设备驱动之一 - linux读写信号量semaphore .

读写信号量(rw_semaphore)  读写信号量对访问者进行了细分,或者为读者,或者为写者,读者在保持读写信号量期间只能对该读写信号量保护的共享资源进行读访问,如果一个任务除了需要读,可能还需要写,那么它必须被归类为写者,它在对共享资源访问之前必须先获得写者身份,写者在发现自己不需要写访问的情况下可以降级为读者。读写信号量同时拥有的读者数不受限制,也就说可以有任意多个读者同时拥有一个读

2013-07-06 17:44:06 776

原创 power

http://blog.csdn.net/am_111/article/details/6584679http://wenku.baidu.com/view/05d4e84f2e3f5727a5e962e3.htmlhttp://blog.csdn.net/dwyane_zhang/article/details/7099723http://wenku.baidu.com/view/f

2013-06-14 21:09:12 858

转载 Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节 .

Recovery服务毫无疑问是Recovery启动模式中最核心的部分。它完成Recovery模式所有的工作。Recovery程序对应的源码文件位于:/gingerbread0919/bootable/recovery/recovery.c。一、 Recovery的三类服务:         先看一下在这个源码文件中开始部分的一大段注释,这将对我们理解Recove

2013-05-12 17:31:49 572

转载 sysfs的uevent及DEVICE_ATTR

sysfs接口函数的建立_DEVICE_ATTR  2012-05-09 11:36:46|  分类:linux文件系统 |  标签:device_attr  sysfs接口函数  |字号大中小 订阅说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR,原型是#define DEVICE_ATTR(_name, _mode, _show, _store

2013-05-12 17:29:34 1082

转载 使能linux驱动中的dev_dbg .

linux设备驱动调试,我们在内核中看到内核使用dev_dbg来控制输出信息,这个函数的实质是调用 printk(KERN_DEBUG )来输出打印信息。要打开这个开关需要下面两步。     1、打开调试开关:你调试的文件中必然包含了,或者《linux /paltforam_device.h》,后者包含了前者,在包含此头文件之前,使用#define DEBUG 1 来打开调试开关:例如

2013-05-12 17:28:00 886

原创 linux电源管理的uevent上报

作为一名嵌入式软件程序猿,很多时候我们都需要知道linux或android等设备的电源使用相关的情况。如是否有充电器连接、是否在充电、是否充满等状态,linux kernel可以通过uevent机制进行上报事件。     源码目录下相关文档:  /include/linux/power_supply.h  // 公用的一些数据结构等的定义,包括电源的各项属性、状态及读写这些属性的一些接口函

2013-05-12 17:25:11 3358

转载 linux内核学习(6)Kbuild Makefile语法分析 .

(博主注:推荐一篇很好的linux kernel顶层makefile的分析文章:http://wenku.baidu.com/view/16f2742d3169a4517723a3b6.html###) 实际文档位置:linux-2.6.XX.yy/Documentation/kbuild/makefiles.txt,此为翻译稿。**************************

2013-05-12 13:39:15 1239

转载 git详解系列

Git详解之一 Git起步:http://www.open-open.com/lib/view/open1328069609436.htmlGit详解之二 Git基础:http://www.open-open.com/lib/view/open1328069733264.htmlGit详解之三 Git分支:http://www.open-open.com/lib/view/open1328

2013-05-12 02:34:51 675

转载 Git详解之一 Git起步

起步本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。 1.1 关于版本控制什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,

2013-05-12 02:00:53 586

转载 Git详解之三 Git分支

Git 分支几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是难以置信

2013-05-12 01:58:52 728

转载 Git分支管理策略

如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System)。眼下最流行的"版本管理系统",非Git莫属。相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易

2013-05-12 01:57:33 589

转载 GIT分支管理是一门艺术

英文原文:http://www.nvie.com/posts/a-successful-git-branching-model/  原文作者:Vincent Driessen  本文经Linux大棚博主总结精简而成。  1   GIT,在技术层面上,绝对是一个无中心的分布式版本控制系统,但在管理层面上,我建议你保持一个中心版本库。  2   我建议,一个中心版本库(我们

2013-05-12 01:54:56 866

原创 git获取linux内核源码及分支管理

1.    环境:ubuntu12.04.2.    git安装:sudo apt-get install git-core ,安装完后查看版本如下:          3.   获取linux内核源码:    在kernel的官网上有三种版本,mainline,stable,longterm    mainline是主线版本,最新的,    stable是稳定版,

2013-05-12 01:33:35 10684

转载 register_chrdev,class_create()

在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_cre

2013-05-03 17:57:31 2006

转载 宏定义中的#,##

1、在一个预处理器宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。(原文:When you put a # before an argument in a preprocessormacro, the preprocessor turns that argument into a character array. This,combined with the fact t

2013-04-25 20:27:26 443

转载 MODULE_DEVICE_TABLE

1. MODULE_DEVICE_TABLE (usb, skel_table);该宏生成一个名为__mod_pci_device_table的局部变量,该变量指向第二个参数。内核构建时,depmod程序会在所有模块中搜索符号__mod_pci_device_table,把数据(设备列表)从模块中抽出,添加到映射文件/lib/modules/KERNEL_VERSION/modules.pci

2013-04-22 14:32:23 1001

转载 linux的初始化函数(late_initcall和module_init)

在init.h 中有如下定义#define pure_initcall(fn)  __define_initcall("0",fn,1)#define core_initcall(fn)  __define_initcall("1",fn,1)#define core_initcall_sync(fn)  __define_initcall("1s",fn,1s)#

2013-04-22 11:05:33 1763

转载 Linux NFS 服务器部署时权限设置的注意事项

NFS、简言之、便是文件服务器   在部署过程中、文件的读写权限是比教容易出错   本博文按以下 6 个方面展开、但重点放在文件权限上、      ● 原理   ● /etc/exports   ● 文件权限   ● Server/Client 配置   ● 2 个常用命令   ● Troubleshoting   ● 经验建议      ㈠ 原理

2013-04-19 10:10:12 4243

转载 单片机内部EEPROM的应用

STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。知识点:ISP与IAP介绍ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简

2013-04-19 09:58:10 1601

转载 ubuntu构建嵌入式nfs服务

---东方绿洲          2010-05-06一、环境        服务器端:PC机,Ubuntu10.04操作系统        客户机端 :ARM9开发板(2440)二、安装NFS服务器程序       安装NFS服务器的方法很简单,可以使用Synaptic(新立得)软件包管理器安装,搜索“nfs”,选择软件包"nfs-kernel-server"项进行安装即可,

2013-04-19 09:54:13 591

转载 ubuntu 12.04(64位)下搭建android2.3/android4.2/4.1/4.0开发环境

本文介绍在WIN7操作系统通过在虚拟机VMWARE和Ubuntu下搭建了一个android2.3/android4.2/android4.1/android4.0编译环境的操作过程,包括LINUX系统安装,JDK安装,samba服务和ssh服务安装。因为要下载补丁,需要网络支持,要能够上网。电脑要64位cpu,安装好win7操作系统。第一步:下载ubuntu地址:LINUX有3

2013-04-18 11:40:36 554

转载 Android源代码目录结构简要分析

frameworks 目录 (核心框架——java及C++语言).|-- base    (基本内容)|   |-- api   (?都是xml文件,定义了java的api?)|   |-- awt   (AWT库)|   |-- build   (空的)|   |-- camera   (摄像头服务程序库)|   |-- cmds   (重要命令:am、app_pro

2013-04-18 10:59:19 562

转载 如何解包/编辑/打包boot.img文件

感谢本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxrose还有好多不知名的作者们在wiki上的不懈努力。来源:http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images

2013-04-18 10:52:57 573

转载 android平台刷机包的制作研究

android平台刷机包的制作研究 1~2(研究2.2rom用到的知识)最近有朋友问偶如何制作android平台的刷机包的问题。总算说服自己研究一下如何制作一个android平台的刷机包,可能我了解的方法还不是很全面,也走了不少的弯路,但是以此做为一串探索的足迹,希望能为来者节约宝贵的时间,也请对此感兴趣的各位同仁尽量避免偶曾经犯过的错误。在此先要明确声明一下:由于

2013-04-18 10:30:28 560

转载 关于boot.img和recovery.img的编辑和修改

以下是偶翻译的关于boot.img和recovery.img的编辑和修改方面的文章,希望能够为感兴趣的朋友节约一些看资料的时间。感谢本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxrose还有好多不知名的作者们在wiki上的不懈努力。如何解包/编辑/大包boot.img文件很多人用自己的方式解

2013-04-17 18:26:27 876

转载 关于recovery、radio、boot等刷机名词意思

转载来的!一、 recovery 在刷机这件事中你经常会看到recovery的身影,从字面上来看就是【恢复】的意思,大家可以直接把recovery当作一个【刷机界面】。一般某些手机的刷机和提ROOT也需要recovery的刷新。再说一下recovery 几个主要的功能,不过每个手机的recovery 都有一些区别,可能不太一样,如果你手机中的recovery没有以下选项也属正常

2013-04-17 18:24:23 1956

转载 瑞芯微2816和2808开ROOT,修改固件教程!

瑞芯微android固件包介绍­瑞芯微的android固件包分两种:­一种为量产升级包(暂且如此称呼吧,PS:其实称之为开发包较为合适,因为是使用开发工具进行升级。),使用量产升级工具RKAndroidTool.exe进行升级,量产升级包的文件包含:HWDEF、package-file、parameter、recover-script、Rock28Boot(L).bin、update-scri

2013-04-17 18:23:21 2382

转载 android编译全过程

本文主要参考官方文档(http://source.android.com/download)和网上相关资料(http://blog.csdn.net/HKjinzhao/archive/2009/03/18/4002326.aspx,http://www.williamhua.com/2009/04/30/how-to-build-android-15-kernel-image/)。网上的资料对于

2013-04-17 18:00:06 696

空空如也

空空如也

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

TA关注的人

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