高通平台工作总结(二) 1. 修改I2C_4的驱动能力解决I2C通信不稳定问题。 由于I2C_4的通信不稳定导致SMB1360充电功能不正常, 解决方案是修改文件msm8916-pinctrl.dtsi 中代码: i2c_4_active: i2c_4_active {drive-strength = ;/* 4 MA */bias-disable = ;/
高通平台工作总结(一) 1. svn 获取工程代码命令:svn co svn+ssh://10.20.30.18/svn-repos/msm8916/branches/LA1.1-CS-r113502.22. 如何确定那些dtsi文件实际会用到。 修改代码 kernel/arch/arm/kernel/devtree.c中的函数 setup_machine_fdt 中以下这行:
《人性的弱点》总结之一 --- 人际交往的基本技巧 最近读了戴尔.卡耐基的《人性的弱点》,感觉不错,先做个简单的总结。共有14篇,第一篇是人际交往的技巧。共有3章。1. 不要批评、指责或抱怨2. 真挚诚恳的赞美3. 激发别人的强烈需求
用 addr2line 定位 OOPS 死机代码位置 1. 一般 OOPS 死机时内核的 LOG kmsg 中会出现些函数地址等信息。比如下面的信息。 2. 执行 android代码包中的addr2line bin文件,比如文件 ./prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-addr2line (1). 如果不确定addr2line的具体名称,可以用 gr
oprofile的使用 1. 检查内核编译 编译开关 CONFIG_KALLSYMS_ALL=y CONFIG_PROFILING=y CONFIG_OPROFILE=y2. 用户空间配置 (1). 拷贝vmlinux到目标机 adb push out/target/product/Q8145SA/vmlinux /data
ubuntu 12.04 下安装android编译环境 1. 下载安装ubuntu系统,安装的是 ubuntu-12.04.4-dvd-amd64.so 下载链接为: http://cdimage.ubuntu.com/releases/12.04/release/ubuntu-12.04.4-dvd-amd64.iso2. 安装需要的软件包 sudo apt-get install -y git gnupg flex bis
在ubuntu12.04下安装无线网卡rtl8192eu驱动 在Ubuntu上安装无线网卡比较麻烦,不象windows下的驱动,而且厂家比较的驱动光盘也没有linux系统下的驱动,只能参考网上的资料来安装,以下是我的安装过程。1. 下载并解压驱动代码包 rtl8192eu-master.zip unzip rtl8192eu-master.zip2. 进入目录 rtl8192eu-master 并编译,安装驱动 (1). cd rt
linux ------ V4L2 视频驱动简述 V4L2视频驱动主要涉及到以下几个知识点:摄像头方面的知识、Camera解码器、控制器、V4L2的API和数据结构、V4L2的驱动架构。 一. 视频驱动的整体框架 Video的基本框架图如下: 对驱动程序员来说,主要是关心camera驱动这部分代码的实现。 二. V4L2重要的数据结构
linux ------ USB设备驱动 USB是通用串行接口,具有USB接口的设备很多,比如U盘,MP3,PC CAMERA等。USB分主机端与设备端,在LINUX系统里面,在USB主机端集成了一个根HUB和主控制器,系统启动的时候会对根HUB帮主控制器进行牧举并加载驱动,然后会启动一个守护进程专门监视控制器总线上的变化,如果有新的设备接入,该守护进程就会被调用并对设备进行枚举,然后会产生一个热插拔的事件。LINUX内核已经写好USB
linux ------ framebuffer 驱动 framebuffer 设备即帧缓冲设备(简写fb)提供了显示接口的抽象描述。他同时代表着显示接口的存储区,应用程序通过定义好的函数访问,不需要知道底层的任何操作。 Framebuffer 驱动使用的设备节点,通常位于/dev 目录,如/dev/fb*.从用户角度看,fb 设备和其他/dev 下面的设备类似:普通的字符设备,主设备号29,次设备号定义fb 的索引。通常,使用如下方式(前面的数字表示
linux ------ platform device 与 platform driver 从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用 platform_driver 进行注册。 Linux platform driver 机制和传统的device driver机制(即:通过 driver_
linux ------ 设备驱动模型之二(bus, device, driver) bus, device, driver属于设备驱动模型的高层部分,驱动程序员直接跟它们打交道,它们构成LINUX设备驱动模型这个建筑的外在表现。 一. 总线及其注册 总线是设备驱动模型的核心,它把设备与驱动紧密的联系起来,完成各自的使命。 总线有具体的物理总线抽象,比如PCI, I2C总线,也有虚拟的总线,比如platform总线。符合LINUX设备驱动
linux ------ 设备驱动模型之一(sysfs, koject, kset) 随着linux系统越来越成熟,设备驱动加入了一些新的特性,之前独立的设备驱动已经无法胜任这种工作,于是linux系统找出一种方式,让各种设备及其驱动程序有效的联系起来,形成一个“群体”,这就是设备驱动模型。 设备驱动模型最基本的元素包括:sysfs, kobject, kset。 一. sysfs是2.6版本之后加入的一个文件系统接口,它把内核里面的各种kob
linux ------ I2C 子系统及设备驱动 1. I2C 子系统框架图 从框架中看,用户应用通过/sys或者/dev中的设备节点来访问I2C设备。内核空间中的I2C分I2C client driver、I2C-Core与I2C Adapter driver三部分。其中I2C-Core是linux内核实现好的代码,I2C Adapter driver是具体CPU硬件平台的host 控制器
linux ------ input 子系统设备驱动 linux 的input 子系统主要分:input驱动层、input core层,input handle层与应用空间层,应用空间层不属于内核,处于应用的范畴。 input core 与 input handle是linux 内核实现好的部分,不需驱动程序员来处理,如果想完成输入设备的驱动,只需现实input driver层的代码。
linux ------ 时间管理、内存使用及内核与用户间的数据传递 linux 系统的时间操作分2类:延时与定时。延时是2个动作之前插入一段等待时间,定时是等待一段时间后执行某个动作,定时的典型应用是轮询。 内存分物理内存与虚拟内存,对使用者来说一般指虚拟内存,内核会通过内存管理模块转换成物理内存。 数据传递,是说用户空间与内核空间之间的数据传递方式,由于内核与用户处于2个不同的空间,2者之间