自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

转载 Linux makefile 教程 非常详细,且易懂

最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。            于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。           后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比

2013-11-08 14:07:12 700

转载 inux输入子系统(8)--input core

第3章输入子系统核心层 上面两章分别讲了 Linux 输入子系统的设备驱动层和事件处理层,这两层的实现都是建立在输入核心层的基础之上的。核心层负责管理所有的资源并连接驱动层和事件处理层。3.1     input core 初始化输入子系统的核心层的实现都在 driver/input/input.c文件中, 初始化函数如 程序清单 3.1 所示。 程序清单

2013-09-30 15:40:49 579

转载 linux输入子系统(7)--mouse_handler的实现

2.4      mouse_handler的实现 在内核的 driver/input/mousedev.c 中内核已经实现了一个专门处理鼠标事件的 mousedev_handler 。这个 handler 占用的次设备号是 32~63 。虽然有 32 个次设备号可用,但是只有前 31 个可被用户所用,系统保留了最后一个,所以最多连接 31 个鼠标设备。mousedev_handl

2013-09-30 15:23:00 1338

转载 linux输入子系统(6)--- evdev_handler的实现

2.3     evdev_handler 的实现Linux 输入子系统已经建立好了几个 handler ,用来处理几类常见的事件,如鼠标、键盘、摇杆等。其中最为基础的是 evdev_handler,它是在 driver/input/evdev.c 中实现的。它能够接收任意类型的事件,任意id 的设备都可以和它匹配连接,它对应的设备节点为 /dev/eventX ,次设

2013-09-30 15:15:06 770

转载 linux输入子系统(5)

第2章输入子系统的事件驱动 上一章已经说过输入子系统分为三层,最上面的一层是事件处理层,我们暂时称它为事件驱动,这是相对于上一章的设备驱动来讲的。上一章介绍了设备驱动注册时要与匹配的 handler 连接,报告的事件也会分发给连接的 handler ,这一章介绍 handler 的相关操作。 2.1     重要的数据结构 首先介绍 input_handle ,

2013-09-30 15:02:52 594

转载 linux输入子系统(4)

1.5     事件报告的传递 输入子系统设备报告各种事件通过 input_report_XXX族函数,例如 程序清单1 .5 中报告按键事件。按键、相对坐标、绝对坐标和同步事件报告的函数如 程序清单1 .12 所示。 程序清单1 .12  事件报告函数 /* include/linux/input.h */ static inline vo

2013-09-30 14:54:39 651

转载 linux输入子系统(3)

1.4      input_dev 的注册在输入设备驱动的初始化函数的最后一步就是调用 input_register_device注册设备。这个函数如 程序清单 1 .9 所示。 程序清单1 .9  input_register_device /* driver/input/input.c */ int input_register_device(st

2013-09-30 14:40:59 611

转载 linux输入子系统(2)

1.3       输入子系统设备驱动讲解1.3.1   打开和关闭函数struct input_dev 中有 open 和 close 两个函数指针。在与 handler 第一次连接之后会调用 open 函数,断开连接会调用 close 。 open 中应该完成硬件初始化的相关工作,并且申请用到的其他资源,如中断号。 close 函数做相反的工作。1.3.2   事件类型

2013-09-30 14:32:05 719

转载 linux输入子系统(1)

第1章 Linux输入子系统设备驱动 Linux 输入子系统将输入驱动抽象为三层:事件处理层、核心层、设备驱动层。应用程序只需要跟事件处理层打交道,不需要察觉设备的变化。核心层是负责管理输入设备,并将消息在事件处理层和设备驱动层之间传递。由于事件处理和设备驱动的分离,使得应用程序读取输入信息的接口固定不变就可以适应新的同类输入设备。 表示事件处理层的数据结构是 struct i

2013-09-30 14:18:06 799

转载 实模式和保护模式

从80386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就切换到protected-mode。实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不

2013-09-29 23:31:34 556

转载 Linux的分页机制

先前我们介绍段机制的时候说到,x86的段机制把程序的逻辑地址转换成线性地址,这里要讲的分页机制是把线性地址映射成物理地址,也就说说,x86其实是用了两套机制把逻辑地址转换成物理地址的。我们也提到linux内核是怎样绕过段机制从而让x86的分段机制看起来不起作用的,我们还说到这样的处理造成了段的数据保护的问题。下来我们就来讨论x86的分页机制。我们的思路依然是先介绍x86的分页机制,然后再讨论lin

2013-09-29 21:41:05 785

转载 Linux的分段机制

一.内存地址分类    对于程序员来说,可以简单的把内存地址理解为一种访问存储单元的内容的一种方式。而对于80x86系列微处理器来说,我们需要区分三种地址:(1)逻辑地址    这种地址通常使用在机器语言里用于指定操作数或机器指令的地址。该类地址在著名的80x86分段体系架构中得到了很好体现,因此DOS程序员和windows程序员都不得不把他们的程序分成一段一段的(如代码段

2013-09-29 21:20:48 687

转载 input子系统详解

Input子系统详解一.Input子系统架构        Linux系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动,下面是Input子系统架构:二.Input系统的组成        输入子系统由驱动层(Drivers),输入子系统核心层( Input Core )和事件处理层(Event Handler)三部份组成。一个

2013-09-29 11:37:25 1687

转载 Android的编译系统(转载)

一、Makefile的主要流程以下主要流程都在build/core/main.mk里安排。初始化相关的参数设置(buildspec.mk、envsetup.mk、config.mk)检测编译环境和目标环境决定目标product读取product的配置信息及目标平台信息清除输出目录检查版本号读取Board的配置读取所有Module的配置根据配置产生必要的规则(build/core/Mak

2013-09-01 23:17:19 527

转载 Android Building System 总结

花了一个月的时间来看Android Make,在网上总是看到某某大虾说一天就把Android Make overview了一下,不得不感叹现在大虾的强大和咱那连蜗牛都可以鄙视一下的进度。不过总算是彻底看清的Android make这个系统,不得不当初架构出这套机制的神人顶礼膜拜一下,虔诚地烧三柱高香,惊叹于神人的伟大的时候也越感自己的沧海一粟,苦海无边,回头无岸,就加油滑水吧。      闲话

2013-09-01 23:15:53 560

转载 android anr分析方法

一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:Servi

2013-09-01 23:05:47 757

转载 android的logcat详细用法

android的logcat详细用法Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用.使用logcat命令你可以用 logcat 命令来查看系统日志缓冲区的内容:[adb] logcat [] ... [] ...请查看Listing oflogcat

2013-09-01 23:01:54 463

转载 Linux下Ramdisk根文件系统制作过程解析(转载)

本文讲述了Linux下Ramdisk根文件系统制作过程。    一、在一个已建好的文件系统上进行修改     设已建立好的文件系统压缩文件为ramdisk.gz     1、解压     #cd ramdisk.gz所在目录     #gunzip ramdisk.gz     在解压后,得到文件系统镜象文件ramdisk, 覆盖了原来的压缩文件 

2013-09-01 23:00:15 1438

转载 Android Power Management

Android Power Management         总体上来说Android的电源管理还是比较简单的, 主要就是通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理架构图如下: (注该图来自Steve Guo) 接下来我们从Java应用层面, Android framework层面, Linux内核层面分别进行详细的讨论:应用层的使用:

2013-09-01 22:58:41 1967

转载 git使用详细介绍

1. Git概念 1.1. Git库中由三部分组成        Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。 1) 工作目录:用户本地的目录; 2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Gi

2013-09-01 22:55:37 510

转载 Android.mk文件详解介绍

Android.mk 编译文件是用来向 Android NDK描述你的 C,C++源代码文件的,   这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了 docs/OVERVIEW.TXT 文件,了解了它们的脚色和用途。一、概述  一个 Android.mk file 用来向编译系统描述你的源代码。具体来说:  (1) 该文件是GNU Makefile的一小部分,会

2013-09-01 22:53:28 690

Linux程序设计第4版

Linux程序设计第4版

2013-05-24

空空如也

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

TA关注的人

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