- 博客(87)
- 资源 (1)
- 收藏
- 关注
转载 我对Linux用户空间与内核空间数据传递的几点理解和总结
转自:http://hi.baidu.com/zengzhaonong/item/3182da4b38865f0fc1161393(1)让我们忽略Linux对段式内存映射的支持。在保护模式下,我们知道无论CPU运行于用户态还是核心态,CPU执行程序所访问的地址都是虚拟地址,MMU 必须通过读取控制寄存器CR3中的值作为当前页面目录的指针,进而根据分页内存映射机制(参看相关文档)将该虚拟
2013-08-10 15:53:07
454
转载 Linux内核空间和用户空间详解
转自:http://soft.chinabyte.com/os/197/12334697.shtmllinux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分
2013-08-10 15:52:02
450
转载 Linux用户空间与内核空间
Linux用户空间与内核空间转自:http://blog.youkuaiyun.com/f22jay/article/details/7925531Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。
2013-08-10 15:48:07
394
转载 android驱动开发---效率与工具
转自:http://www.360doc.com/content/12/0225/15/8204997_189530723.shtml一、在驱动开发中,效率很重要。1.锁的选用 a)免锁算法 >> 细颗粒的锁 >> 粗颗粒的锁。 b)中断与轮询 通常情况下,中断方式比轮询更有效率。但如果数据量非常非常大,一个数据没有处理完,下一次数据
2013-08-10 11:44:58
403
转载 .bashrc和.bash_profile的区别
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell 的设置.其中的设置对所有的用户有用; /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.其中的设置仅对当前用户有用; ~/.bash_profil
2012-10-18 15:14:39
368
原创 用tslib实现Android触摸屏校准
1,触摸屏校准通用方法 主要采用以下公式,实现触摸屏校正,其中XL, YL是显示屏坐标,XT, YT是触摸屏坐标, XL = XT*A+YT*B+C; YL = XT*D+YT*E+F; 公式(1) 由于具体计算是希望是整数运算,所以实际中保存的ABCDEF为整数,而增加一个参数Div, 由以下公式实现: XL = (XT*A+YT*B+C) / Div; YL =
2012-03-02 21:00:12
934
原创 android proc 进程信息解析
如何查看ANDROID进程信息呢,可以先进入ADB SHELL,然后在PROC文件夹下,有很多对应进程ID号的子文件夹,进入对应的文件夹内,可以看到有以下信息,就可以查询到你的进程信息了。参数如下:/proc//maps查看进程的虚拟地址空间是如何使用的。该文件有6列,分别为:地址:库在进程里地址范围权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有;偏
2012-03-02 20:57:22
140
原创 GIT原理,知其然,知其所以然
GIT版本控制工具原理仓库的组织结构及相关概念仓库的组织管理形式这部分,应该说是版本管理工具设计上最核心的内容。SVN属于中心式的仓库管理,完整的仓库数据,统一维护在服务器端的仓库中,对于客户端来说,本地取得的数据不是完整的仓库,只是仓库中特定版本的部分或全部数据,同时,客户端还负责维护本地数据的变更情况,在客户端并不拥有仓库完整的历史数据。本地的工作树和仓库是相对独立的。对于Gi
2012-02-11 20:04:41
5321
原创 git -svn 在Ubuntu下的安装与应用
Git是一款分布式版本管理工具,由linux的缔造者Linus Torvalds设计并实现,具体关于Git的介绍和使用方法可参见其官方站。这里要说的是Git是如何做到既可以管理好本地代码又可以与已有的SVN中心库进行同步的。1、安装git-svn默认包含在Git的安装包中,不过在Ubuntu中,git-svn是作为一个独立的Package需要额外安装的
2012-02-11 17:19:00
461
原创 如何在svn系统中使用git
如果正在使用svn,打算换到git,又暂时不想放弃已有的svn代码库,可以选择git-svn。说一说我自己从svn到git的经验吧。开始安装最新版本的git,从git 1.5.3以后支持git-svn,git和svn的配合就要借助这个功能。安装完毕后要做一些简单的配置。最直接的做法就是创建修改~/.gitconfig。下面是我的.gitconfig[user]
2012-02-11 17:01:35
348
转载 git 实用积累---git svn
1, Git SVN 工作流程 尽管你可以从网上找到成千上万篇关于Git和git-svn, 但是本文主要介绍如何在一个以svn作为版本管理软件的项目里使用git。(假如你已经有了git-svn工具, 那我们就开始用git吧!) 先介绍些背景知识, Git 是 Linus Torvalds 为Linux内核开发的一套版本控制软件。他对版本控制有些特殊的要求,但是没有一个能满足他的
2012-02-10 21:07:51
3721
原创 android屏幕方向调整
屏是LANDSCAPE的,要让它默认显示为PORTRAIT.1.kernel里要旋转FrameBuffer. 启动参数里加入fbcon=rotate:1 (0:正常屏; 1:顺时钟转90度; 2:转180度; 3:顺时钟转270度;)最后生成的autoconf.h里有类似项:#define CONFIG_CMDLINE "console=ttySAC0,115200 fbc
2012-01-04 17:45:53
3445
原创 Android系统的HAL——Mapper.cpp
该文件中的几个主要函数是gralloc_module_t结构函数指针的具体实现。struct private_module_t HAL_MODULE_INFO_SYM = { base: { common: { tag: HARDWARE_MODULE_TAG, version_major: 1,
2012-01-04 17:34:28
621
原创 Android系统的HAL ——Framebuffer.cpp
Framebuffer.cpp就是以前的EGLdisplaysurface.cpp改进版1、int fb_device_open(hw_module_t const* module, const char* name, hw_device_t** device)1)gralloc_open(module, &gralloc_device);2)初始化fb_contex
2012-01-04 17:31:44
1051
原创 LCD屏的调试注意事项
1. Pix clock是否在规定的范围内。2. Pclk是否极性正确。上升沿还是下降沿。3. 变频引起的闪屏问题。可以通过锁定频率来试验是否是变频引起。
2012-01-04 17:18:17
1389
转载 Android下Java通过JNI访问硬件
view plainJava code package xxxxxxx.xx; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class I2cRadioTest extends Activity { private stati
2012-01-04 16:58:42
1512
1
转载 android访问i2c
不知道该写点什么,今天回了个帖,就粘这吧,留个念想。view plainclass I2c { public native int open(String path); public native int read(int fileHander, int slaveAddr, int buf[], int bufLen); public native int wr
2012-01-04 16:58:02
2175
2
转载 Android平台开发-Android keypad map-Android按键事件
http://hi.baidu.com/419836321/blog/item/28b59fd4601bb4de51da4bb6.html一、Android底层按键事件处理过程 在系统启动后,在文件。。。中,android 会通过 static const char *device_path = "/dev/input"; bool Ev
2012-01-04 16:45:34
662
转载 Android Make脚本的简记
http://hi.baidu.com/419836321/blog/item/3c0dd50eee52a0306159f36c.html内容提要文档简要整理Android的make脚本的内容。以供备忘和参考。 1. Build LayersBuild Layers描述的是产品的硬件配置情况,据此make时选择不同的配置和模块。按照从上到下的顺序,Build
2012-01-04 16:44:21
850
转载 Android的传感器HAL层的书写---基础篇
http://www.linuxidc.com/Linux/2011-09/43681.htm关于传感器,大家在日常的生活中用的很多。比如楼宇的楼梯灯,马路上的路灯等等。那么我们手机里的传感器又可以起到哪些作用呢?现在看下我们的Android中给提供了哪些吧。有加速度传感器,磁场,方向,陀螺仪,光线,压力,温度,接近传感器。---------------------------
2012-01-04 16:41:07
515
转载 Android 上层界面到内核代码的完整的流程分析,以alarm为例子
http://blog.youkuaiyun.com/k229650014/article/details/6729483很久之前写的一个流程文档,从上层界面一直调用到内核的过程,最近同事跟我要,我看了下又在整理了下,纯属个人分析(不过都运行验证过),不对的请大牛指出Alarm 调用流程,alarm的流程实现了从上层应用一直到下面driver的调用流程,下面简单阐述:
2012-01-04 16:38:58
554
转载 Android HAL实例解析
http://hi.baidu.com/419836321/blog/item/9104c7a8907682e61e17a2c9.html一、概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法。二、HAL介绍现有HAL架构由Patrick Brady (Google
2012-01-04 16:16:53
339
转载 Linux I2C核心、总线与设备驱动
本章导读I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。Linux定义了系统的I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这3部分相互协作,形成了非常通用、可适应性很强
2011-12-30 22:00:09
933
转载 android访问i2c&&Android下Java通过JNI访问硬件
http://blog.youkuaiyun.com/yanjiashang/article/details/6791830-android访问i2cclass I2c { public native int open(String path); public native int read(int fileHander, int slaveAddr, int buf[],
2011-12-29 17:06:53
1478
1
转载 Android中G-Sensor相关流程
http://apps.hi.baidu.com/share/detail/233118821.使G-sensor正常工作需要做的事:G-sensor driver文件包括:driver/i2c/chips/lis331dl.cdriver/i2c/chips/sensorioctl.hinclude/linux/lis331dl.h并在/kernel/
2011-12-24 15:59:10
668
转载 Android触摸屏输入系统
http://blog.youkuaiyun.com/zhiyu_jiang/article/details/6845402 1.触摸屏硬件原理1.1电阻触摸屏 中断产生。触摸屏芯片根据触摸按下时电阻分压值发生变化而产生中断,该中断输入给CPU。产生的条件很简单,主要有VDD,GND信号即可。因此,我们在调试时,可以在没有驱动的情况下去测量中断脚,是否在有触摸时发生变化,以前验证模块
2011-12-24 13:54:44
412
原创 高通Android平台下关于display部分的几个关键问题
显示部分的几个问题这几天通过实际测试澄清了一下,主要是下图中各个模块的使用状况以及HAL层几个模块的调用流程。以问题的方式描述如下:1、Ap是怎么进行显示的?Surfaceflinger负责所有上层的显示处理,对于AP(2D或是3D的应用程序)而言,只要到surfaceflinger中创建surface,设置好参数,接下来都是统一交给surfaceflinger进行处理2、Surfac
2011-12-24 12:49:28
847
转载 浅谈Android系统开发中LOG的使用
http://blog.youkuaiyun.com/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。在Android系统中,提供了简单、便利的LOG机制,开发人员可以方便地使用。在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查
2011-12-23 15:48:28
535
1
转载 Android触摸屏输入系统
http://blog.youkuaiyun.com/zhiyu_jiang/article/details/6845402 1.触摸屏硬件原理1.1电阻触摸屏 中断产生。触摸屏芯片根据触摸按下时电阻分压值发生变化而产生中断,该中断输入给CPU。产生的条件很简单,主要有VDD,GND信号即可。因此,我们在调试时,可以在没有驱动的情况下去测量中断脚,是否在有触摸时发生变化,以前验
2011-12-23 15:46:22
381
转载 请把Camera hold住 - Android高通平台调试Camera驱动全纪录
http://blog.youkuaiyun.com/qianjin0703/article/details/6738490 项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求。1日 搭平台,建环境,编译内核,烧写代码。我是一直在Window下搭个虚拟机登服务器搞开发的,对Linux系统环境实在无爱,每每一到项目刚开始要搭环境
2011-12-23 15:34:59
709
原创 让adb logcat打印内核调试信息
在默认情况下,adb logcat只能显示应用程序的调试信息,我把logcat.cpp修改了一下,让它同时可以打印内核调试信息:修改的文件:system/core/logcat/logcat.cpp1、首先先加入头文件#include //add by 2、定义所使用的TAG#define KERNEL_TAG "Kernel"
2011-12-22 16:51:46
2789
转载 使用logwrapper工具将可执行程序的输出写入日志系统
在init进程执行动作(action)或启动服务(service)时,默认已将标准输入、标准输出、标准错误从定向到/dev/__null__这个“无底洞”节点,所以任何的输出都会被忽略,但有时我们确实是想把一些执行文件的输出记录下来以便我们进行分析,这里logwrapper这个工具可以派上用场了。该工具的大致实现思路是:logwrapper程序会开辟一个子进程来执行我们的可执行文件,父
2011-12-22 15:08:58
613
转载 Cscope的使用(领略Vim + Cscope的强大魅力)
http://blog.youkuaiyun.com/dengxiayehu/article/details/63302001、Cscope介绍 Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能够做更多的事。在Vim中,通过cscope的查询,跳转到指定的地方就像跳转到任何标签;她能够保存标签栈,所以通过合适的键盘映射绑定,你能够在函数
2011-12-22 15:06:28
1769
转载 刚进入Android终端即可使用busybox的命令
http://blog.youkuaiyun.com/dengxiayehu/article/details/6991894Android中的内置sh可是出了名的难用,只支持少得可怜的常用命令,所以大家一般都喜欢推一个busybox进去以方便使用。具体方法请参见:在Android模拟器中安装busybox这篇文章。但是这里又出现一个问题就是,就是我们每次adb shell进入Android
2011-12-22 15:04:18
712
转载 目标文件格式分析工具: ar,nm,objdump,objcopy,readelf
http://blog.youkuaiyun.com/ldf198312/article/details/6679854如果普通编程不需要了解这些东西,如果想精确控制你的目标文件的格式或者你想查看一下文件里的内容以便作出某种判断,那么你可以看一下下面的工具:ar,nm,objdump,objcopy。具体用法请参考man在线手册。ar基本用法 ar命令可以
2011-12-21 16:47:07
373
转载 Android-2.2display系统介绍-SW架构
http://blog.youkuaiyun.com/ldf198312/article/details/6732207一、Overview上图的原型取自高通的文档,由于原图无法描述现有的架构,我在原图的基础了做了些修改,主要是增加了overlay部分,另外其他部分根据现有的软件也做了些许改动。下面先对上图做个大概的介绍,后面会针对重点部分做详细的分析。最上面一层为应用程序
2011-12-21 16:43:20
399
转载 LCD 调试总结
porority of HSYNC, VSYNC is very important in LCD debug follow Steps for Debug1) check the power supply is correct2) check the clock for LCD is correct and output normally3) check the CPU si
2011-12-21 09:59:59
926
转载 MSM7X平台LCD_PCLK的设置
http://blog.youkuaiyun.com/qq413187589原始代码中Pclk设置为8M但对于320*480的lcd需要提高到10M左右。于是直接修改bootloader和kernel中的两处lcdc_clock_init(8000000);pinfo->clk_rate = 8000000;下载后开机失败,打印log显示:Can't set MDP LCDC
2011-12-20 20:49:36
675
转载 i2c 子系统
http://blog.youkuaiyun.com/gaomaolin_88_163/article/details/6719130#commentscl===============================本文系本站原创,欢迎转载!转载请注明出处:http://blog.youkuaiyun.com/gdt_a20===============================
2011-12-19 21:31:35
956
转载 于Android LCD和键盘背光亮度
http://blog.youkuaiyun.com/sunnytina/article/details/6336889 应用设计1.1 设置进度条范围背光设置是在:设置->声音和显示->亮度,通过进度条来设置的。 文件:packages/apps/Settings/src/com/Android/settings/BrightnessPreference.java
2011-12-19 20:05:16
629
cmd常用命令集锦
2014-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人