- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 高通平台工作总结(二)
1. 修改I2C_4的驱动能力解决I2C通信不稳定问题。 由于I2C_4的通信不稳定导致SMB1360充电功能不正常, 解决方案是修改文件msm8916-pinctrl.dtsi 中代码: i2c_4_active: i2c_4_active {drive-strength = ;/* 4 MA */bias-disable = ;/
2016-02-16 20:08:44 5644
原创 高通平台工作总结(一)
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 中以下这行:
2016-02-16 19:38:25 5272 1
原创 《人性的弱点》总结之一 --- 人际交往的基本技巧
最近读了戴尔.卡耐基的《人性的弱点》,感觉不错,先做个简单的总结。共有14篇,第一篇是人际交往的技巧。共有3章。1. 不要批评、指责或抱怨2. 真挚诚恳的赞美3. 激发别人的强烈需求
2016-02-01 11:32:46 4975
原创 用 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
2016-01-15 18:33:03 1336
原创 oprofile的使用
1. 检查内核编译 编译开关 CONFIG_KALLSYMS_ALL=y CONFIG_PROFILING=y CONFIG_OPROFILE=y2. 用户空间配置 (1). 拷贝vmlinux到目标机 adb push out/target/product/Q8145SA/vmlinux /data
2016-01-12 16:24:21 833
原创 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
2016-01-11 17:16:42 639
原创 在ubuntu12.04下安装无线网卡rtl8192eu驱动
在Ubuntu上安装无线网卡比较麻烦,不象windows下的驱动,而且厂家比较的驱动光盘也没有linux系统下的驱动,只能参考网上的资料来安装,以下是我的安装过程。1. 下载并解压驱动代码包 rtl8192eu-master.zip unzip rtl8192eu-master.zip2. 进入目录 rtl8192eu-master 并编译,安装驱动 (1). cd rt
2016-01-11 16:59:26 3865
原创 linux ------ V4L2 视频驱动简述
V4L2视频驱动主要涉及到以下几个知识点:摄像头方面的知识、Camera解码器、控制器、V4L2的API和数据结构、V4L2的驱动架构。 一. 视频驱动的整体框架 Video的基本框架图如下: 对驱动程序员来说,主要是关心camera驱动这部分代码的实现。 二. V4L2重要的数据结构
2014-03-10 14:37:48 1540
原创 linux ------ USB设备驱动
USB是通用串行接口,具有USB接口的设备很多,比如U盘,MP3,PC CAMERA等。USB分主机端与设备端,在LINUX系统里面,在USB主机端集成了一个根HUB和主控制器,系统启动的时候会对根HUB帮主控制器进行牧举并加载驱动,然后会启动一个守护进程专门监视控制器总线上的变化,如果有新的设备接入,该守护进程就会被调用并对设备进行枚举,然后会产生一个热插拔的事件。LINUX内核已经写好USB
2014-03-07 16:37:12 4016
原创 linux ------ framebuffer 驱动
framebuffer 设备即帧缓冲设备(简写fb)提供了显示接口的抽象描述。他同时代表着显示接口的存储区,应用程序通过定义好的函数访问,不需要知道底层的任何操作。 Framebuffer 驱动使用的设备节点,通常位于/dev 目录,如/dev/fb*.从用户角度看,fb 设备和其他/dev 下面的设备类似:普通的字符设备,主设备号29,次设备号定义fb 的索引。通常,使用如下方式(前面的数字表示
2014-03-06 16:18:30 1146
原创 linux ------ platform device 与 platform driver
从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用 platform_driver 进行注册。 Linux platform driver 机制和传统的device driver机制(即:通过 driver_
2014-03-05 14:21:46 664
原创 linux ------ 设备驱动模型之二(bus, device, driver)
bus, device, driver属于设备驱动模型的高层部分,驱动程序员直接跟它们打交道,它们构成LINUX设备驱动模型这个建筑的外在表现。 一. 总线及其注册 总线是设备驱动模型的核心,它把设备与驱动紧密的联系起来,完成各自的使命。 总线有具体的物理总线抽象,比如PCI, I2C总线,也有虚拟的总线,比如platform总线。符合LINUX设备驱动
2014-03-04 15:36:38 968
原创 linux ------ 设备驱动模型之一(sysfs, koject, kset)
随着linux系统越来越成熟,设备驱动加入了一些新的特性,之前独立的设备驱动已经无法胜任这种工作,于是linux系统找出一种方式,让各种设备及其驱动程序有效的联系起来,形成一个“群体”,这就是设备驱动模型。 设备驱动模型最基本的元素包括:sysfs, kobject, kset。 一. sysfs是2.6版本之后加入的一个文件系统接口,它把内核里面的各种kob
2014-03-03 16:45:51 1120
原创 linux ------ I2C 子系统及设备驱动
1. I2C 子系统框架图 从框架中看,用户应用通过/sys或者/dev中的设备节点来访问I2C设备。内核空间中的I2C分I2C client driver、I2C-Core与I2C Adapter driver三部分。其中I2C-Core是linux内核实现好的代码,I2C Adapter driver是具体CPU硬件平台的host 控制器
2014-02-28 15:13:59 1012 2
原创 linux ------ input 子系统设备驱动
linux 的input 子系统主要分:input驱动层、input core层,input handle层与应用空间层,应用空间层不属于内核,处于应用的范畴。 input core 与 input handle是linux 内核实现好的部分,不需驱动程序员来处理,如果想完成输入设备的驱动,只需现实input driver层的代码。
2014-02-27 14:48:09 788
原创 linux ------ 时间管理、内存使用及内核与用户间的数据传递
linux 系统的时间操作分2类:延时与定时。延时是2个动作之前插入一段等待时间,定时是等待一段时间后执行某个动作,定时的典型应用是轮询。 内存分物理内存与虚拟内存,对使用者来说一般指虚拟内存,内核会通过内存管理模块转换成物理内存。 数据传递,是说用户空间与内核空间之间的数据传递方式,由于内核与用户处于2个不同的空间,2者之间
2014-02-26 15:06:35 567
转载 linux ------ 驱动模型开发之linux platfoem总线机制讲解与实例开发
linux驱动模型开发——linux platfoem总线机制讲解与实例开发 转载:http://blog.csdn.net/xdw1985829/article/details/6925994 1、概述: 通常在Linux中,把SoC系统中集成的独立外设单元(如:I2C、IIS、RTC、看门狗等)都被当作平台设备来处理。 从Linux2.6起,引入了一套新的驱动管理和注册
2014-02-25 16:06:15 643
原创 linux ------ 中断处理及延时操作
linux 系统的中断分上半部与下半部2部分,上半部是硬件中断,会关闭中断,一般处理时间较短,处于中断上下文。下半部有Tasklet与工作队列2种,是中断处理的延时操作,如果中断需要处理较复杂的事务,一般会放到下半部来执行。Tasklet运行在中断上下文,不允许睡眠。工作队列运行在进程上下文,可以睡眠,意味着会引起进程的切换。 1. 一般的中断代码
2014-02-25 15:27:19 2163
原创 linux ------ 资源互斥与同步机制
linux 系统支持多进程与多处理器,这样对共享资源的访问会存在竞争状态,所以需要处理好对资源的互斥与同步。 共享资源访问出现竞争状态叫做并发,一般并发的来源有以下3种: (1). 中断处理产生并发。 (2). 调度器可抢占导致进程间产生并发。 (3). 多处理器不同进程间的并发
2014-02-25 10:17:55 951
原创 linux ------ 字符设备驱动框架
linux 字符设备驱动是3种类型中最简单的一种,其实就是实现 file_operations 中的函数,基本实现框架如下: 1, 需要包含的头文件: #include #include #include #include #include
2014-02-24 17:17:46 578
原创 图解排序算法及C语言实现之 ------ 堆排序:Heap Sort
一、定义及算法原理 1. 什么叫堆排序? 顾名思义,就是利用堆的结构进行排序的一种算法。那么什么叫堆呢?其实堆是一个二叉树,它首先是一个完全二叉树,并且,非叶子节点不小于左右孩子节点的值或者不大于左右孩子节点的值,不小于左右孩子的叫大顶堆,反之称为小顶堆。我们按大顶堆的情况来分析堆排序的过程,小顶堆情况类似。
2014-01-14 14:01:07 1356
原创 图解排序算法及C语言实现之 ------ 快速排序:Quick Sort
上一篇写了冒泡排序,比较简单,也好理解,这章写效率高一些的排序算法---快速排序。 一、定义及算法原理 1. 什么叫快速排序? 顾名思义,就是速度很快的排序,据说是目前效率最好的排序算法了。它实际是冒泡排序的升级版,也是通过交换来完成的排序,只不过它比较与交换的元素的距
2014-01-13 12:38:08 1331
原创 图解排序算法及C语言实现之 ------ 冒泡排序:Bubble Sort
近来闲着没事,把数据结构温习了一遍,想着用图解的方式来描述一下排序的算法。好了,废话少说,下面进入正题。先讲最简单的冒泡排序。 1.什么叫冒泡排序? 形象的说就是水泡由小到大从底下往上冒,最终形成从上到下按小到大顺序排列的序列。 2.基本算法原理 元素从底到上,两两比较进行交换,小的值放在上面,直到最后,形成
2014-01-10 14:26:16 2049
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人