SoloLinux
专注Kernel,GPU Driver,ROCM,CPU, Power/Performance开
展开
-
opendir ,readdir 测试demo
#include#include #include#includeint main(int argc,char **argv){ DIR * dir; struct dirent * ptr; int i; if(argc==1) dir=opendir("./"); else dir=opendir(argv[1]原创 2013-12-05 15:48:41 · 1384 阅读 · 0 评论 -
三星平臺添加模擬i2c 控制器
/* I2C12 */#if defined(CONFIG_PN65N_NFC)static struct i2c_board_info i2c_devs12_emul[] __initdata = {};#endif聲明一個i2c board 結構體.#if defined(CONFIG_PN65N_NFC)static struct i2c_gpio_platform原创 2013-11-20 14:41:16 · 1413 阅读 · 0 评论 -
SPI 三线与四线区别总结
关于SPi协议的三线和四线区分一直都比较疑惑.今天总结一下.在维基网上有如下一段话:Three-wire serial buses As mentioned above, one variant of SPI uses single bidirectional data line (slave out/slave in, called SISO) instead o原创 2013-09-22 16:27:31 · 14003 阅读 · 0 评论 -
read 系统调用剖析 (vfs分析 address_space page cache)
Read 系统调用在用户空间中的处理过程Linux 系统调用(SCI,system call interface)的实现机制实际上是一个多路汇聚以及分解的过程,该汇聚点就是 0x80 中断这个入口点(X86 系统结构)。也就是说,所有系统调用都从用户空间中汇聚到 0x80 中断点,同时保存具体的系统调用号。当 0x80 中断处理程序运行时,将根据系统调用号对不同的系统调用分别处理(调用不同的内转载 2013-09-05 11:01:29 · 1749 阅读 · 0 评论 -
MP Control 模块boost功能
高通平台有自己的performance 模块, 常见的场景是加速响应用户的触控响应. 主要分为java 应用层,Native 层, 和私有库,以及Kernel的支持.java层的应用场景.原创 2016-03-15 16:03:01 · 3301 阅读 · 1 评论 -
Linux内核源码分析方法
Linux内核源码分析方法陈莉君 2013年03月22日 星期五 09:16 | 3328次浏览 | 1条评论编者话:以下是刚接触内核三个月的同学,通过对一个内核特性的分析,总结出一套分析内核的方法。 一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读转载 2016-03-22 20:23:08 · 1878 阅读 · 0 评论 -
MDDI接口简单了解
MDDI接口简单了解分类: framebuffer-lcd驱动2011-08-12 16:30 1293人阅读 评论(1) 收藏 举报一:背景高通MDP下面可以接三种屏的接口:LCDC,MDDI,EBI2.之前所接触的都是LCDC接口的,MDDI没有做过,也没有分析过。公司MDDI接口的屏也有,看了看MDDI接口的pin脚比LCDC少多了,很可能以后会经常用。在网上找了些资转载 2012-10-24 17:32:27 · 4062 阅读 · 0 评论 -
通过DEFINE 生存config.h 配置
DEFINES += \ BOARD=$(PROJECT) \ PROJECT_$(PROJECT)=1 \ TARGET_$(TARGET)=1 \ PLATFORM_$(PLATFORM)=1 \ ARCH_$(ARCH)=1 \ $(addsuffix =1,$(addprefix WITH_,$(ALLMODULES)))原创 2012-06-27 17:31:04 · 988 阅读 · 0 评论 -
make menuconfig 无法启动处理方法
ake menuconfig *** Unable to find the ncurses libraries *** required header files.问题:lzz@lzz-virtual-machine:~/linux-2.6.32.2$ make menuconfig *** Unable to find the ncurses libraries or原创 2012-07-02 11:19:10 · 4810 阅读 · 0 评论 -
浅谈ARM裸板调试
http://blog.csdn.net/nanjianhui/article/details/4189270 我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一块ARM板,基于S3C6410的,但是我们把原来的M-DDR DRAM和Nandflash全部都换掉了,硬件做了不小的改动。以前也做过转载 2012-07-28 14:37:23 · 986 阅读 · 0 评论 -
workqueque 使用例子
create_singlethread_workqueue创建新的workqueque , 并会创建一个专用的内核线程, 一般不创建是调用自动默认的内核线程, 如果考虑实时性的关系.自定义的内核线程处理快一些. 默认的如果work 比较多时就会delay .bridge_wq = create_singlethread_workqueue("mdm_bridge");原创 2016-03-07 15:03:31 · 658 阅读 · 0 评论 -
Bluetooth 分析Enable流程
Z:\8939_21391\packages\apps\Bluetooth\src\com\android\bluetooth\btservice\AdapterState.javaprivate class OffState extends State { @Override public void enter() { infoLog("Entering原创 2015-09-10 14:39:12 · 2316 阅读 · 0 评论 -
dumpsys 用法
adb shell dumpsys > a.txt 或者单独 dumpsys 下面的单个服务. Currently running services: AtCmdFwd SurfaceFlinger accessibility account activity alarm app原创 2013-09-26 22:08:11 · 5597 阅读 · 0 评论 -
工作日志:串口外设的开发总结
这个demo耗费了好长的时间, 今天算是告一段落了. 主要实现了以下一些功能.A. 在手机安装该apk , 并添加相应的控制button.B . 点击控制button,穿参数到JNI层,JNI进行实际的串口操作.C. JNI通过read,write 读写串口,使之进行相应的功能操作.D. 实现java 层的callback函数, JNI中在打开设备后进行阻塞读取,如果有数据,则通原创 2013-08-03 15:10:07 · 1148 阅读 · 0 评论 -
修改内部emmc 和外部sdcard 挂载点
下面为修改sdcard 挂载点patchdiff --git a/device/qcom/msm8x25q_l451/vold.emmc.fstab b/device/qcom/msm8x25q_l451/vold.emmc.fstabindex 2ab2a99..bda8b27 100755--- a/device/qcom/msm8x25q_l451/vold.em原创 2013-09-11 18:16:47 · 3346 阅读 · 0 评论 -
USB子系统gadget analyse
struct usb_gadget_driver { char *function; enum usb_device_speed speed; void (*unbind)(struct usb_gadget *); int原创 2013-01-21 10:18:21 · 1152 阅读 · 0 评论 -
USB Skeleton driver 分析记录
/* * USB Skeleton driver - 2.2 * * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of th原创 2013-01-18 16:00:05 · 1028 阅读 · 0 评论 -
i2c_get_clientdata和to_i2c_client 的使用获取平台设备
struct mxt224_data {struct i2c_client *client;struct input_dev *input_dev;struct early_suspend early_suspend;u8 family_id;u32 finger_mask;int gpio_read_done;struct object_t *objects;u8原创 2013-05-24 21:09:52 · 4673 阅读 · 0 评论 -
ioctl命令详解
昨天复习了一下对于ioctl 的使用和实现举个例子 吧。/* ioctl command for BMA220 device file*/static long bma220_ioctl(struct file *file,unsigned int cmd, unsigned long arg){int err = 0;unsigned char data[6];原创 2012-10-12 10:33:16 · 1595 阅读 · 0 评论 -
宏定义和宏编译
// 以下是宏定义的一些用法 11.4.2 #if defined… #else …#endif此编译指令为#ifdef … #else …#endif的等价编译指令。其语法格式如下:#if defined 常量表达式代码段1#else代码段2#endif或#if defined (常量表达式)代码段1#else代码段2#endif此编译指令的简单形式为单分支的条件原创 2012-02-07 17:35:22 · 1908 阅读 · 2 评论 -
字符串按某个字母截断
#include #include int main() { char ptr[]={ "abcdefghijklmnopqrstuvwxyz "}; char *p,*str= "m "; p=ptr; printf( "%s\n ",strsep(&p,str)); printf( "%s\n ",p); str= "s "; p原创 2012-05-15 14:17:46 · 1035 阅读 · 0 评论 -
__raw_writeb __raw_writel __raw_readb
#include static unsigned char __raw_readb(unsigned int ptr){ return *((volatile unsigned char *)ptr);}static unsigned int __raw_readl(unsigned int ptr){ return *((volatile unsigned int *)ptr)原创 2012-01-12 16:13:46 · 1371 阅读 · 0 评论 -
fedora install make 3.81
to builde android real6410 , on fedora 14.it needs make 3.81here is how i install make 3.81[root@localhost yuanwei]# wget ftp://rpmfind.net/linux/centos/5.7/os/x86_64/CentOS/make-3.81-3.el5.x原创 2012-02-06 02:08:12 · 1763 阅读 · 0 评论 -
MT6573添加新硬件模块驱动方法
MTk6573平台的自动化程度很高,比如直接添加个文件夹就可以自动编译驱动到内核里面在大makfile 里面添加如下的配置信息,就会把下面的文件自动调用makefile编译。CUSTOM_KERNEL_LCM2=nt35510 # 其中的LCM2 就是我们自己添加的文件夹了。 里面还有个文件夹nt35510CUSTOM_UBOOT_LCM2=nt35510、原创 2012-02-02 11:18:31 · 1075 阅读 · 0 评论 -
read, write 函数用法
读函数read ssize_t read(int fd,void *buf,size_t nbyte) read函数是负责从fd中读取内容.成功时,read返回实际所读的字节数,如果返回的值是0,表示已经读到文件的结束了.小于0表示出现了错误.如果错误为EINTR说明读是由中断引起的, 如果是ECONNREST表示网络连接出了问题.写函数write ssize_t writ原创 2012-01-11 11:56:20 · 1073 阅读 · 0 评论 -
i2c_master_send()函数实例
ssize_t mt6326_write_byte(u8 cmd, u8 writeData){ char write_data[2] = {0}; int ret=0; write_data[0] = cmd; /原创 2011-09-21 14:54:04 · 6363 阅读 · 0 评论 -
MTK6573 闪光灯测试
/*******************************************************************************/以下的代码加在kd_flashlightlist.c 里面的probe函数里面。开启LDO函数声明 extern void upmu_ldo_enable(upmu_ldo_list_enum ldo, kal_boo原创 2011-11-22 13:20:54 · 2655 阅读 · 0 评论 -
电容感应触摸屏工作原理
基本结构: 电容技术的触摸屏是一块四层复合玻璃层,玻璃屏的内表面和夹层各涂有一层ITO导电层,最外层是只有0.0015毫米厚的硅土玻璃保护层。内层ITO作为屏幕层,以保证良好的工作环境,夹层ITO涂层作为检测定位的工作层,在四个角或四条边上引出四个电极。值的导体,经由控制器度(模拟-数字转换),得到X,Y轴的坐标值。 工作原理: 电容感应触摸屏,采用电容模拟技术原理。基原创 2011-12-28 20:09:45 · 1494 阅读 · 0 评论 -
More Effective C++:理解new和delete
转载自:http://dev.yesky.com/242/2585242.shtml 人们有时好像喜欢故意使C++语言的术语难以理解。比如说new操作符(new operator)和operator new的区别。 当你写这样的代码:string *ps = new string("Memory Management");转载 2013-08-16 15:40:08 · 793 阅读 · 0 评论 -
Linux文件查找命令find,xargs详述
Linux文件查找命令find,xargs详述总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是zhyfly兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读;目录版权声明前言:关于find命令一、find 命令格式转载 2013-01-13 23:43:54 · 613 阅读 · 0 评论 -
Linux串口编程
转载自:http://www.cppblog.com/amazon/archive/2010/01/28/106644.html1.串口操作需要的头文件#include //标准输入输出定义#include //标准函数库定义#include //Unix标准函数定义#include #include #inclu转载 2013-05-02 21:17:19 · 754 阅读 · 0 评论 -
各种I/O模型的比较
本文章参考《UNIX网络编程--第一卷:套接口API(第3版)》---第6章第2节--I/O模型另外一篇讲得更好的文章,里面详细讲述了阻塞 非阻塞 同步 异步这几个阻塞I/O非阻塞I/OI/O复用(select和poll)信号驱动I/O(SIGIO)异步I/O(POSIX的aio_系列函数)以下所有例子都使用recvfrom()函数来做讲解。转载 2014-03-16 23:00:27 · 1077 阅读 · 0 评论 -
Linux进程调度原理
Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效; 2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间; 3.保证公平和避免饥渴; 4.SMP调度:调度程序必须支持多处理系统; 5.软实时调度:系统必须有效的调用实时进程,但不保证一定满足转载 2016-02-15 09:43:33 · 538 阅读 · 0 评论 -
内存对齐.结构体对齐
__attrubte__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。#define __u8 unsigned char#define __u16 unsigned short/* __attribute__ ((packed)) 的位置约束是放于声明的尾部“;”之前 */struct str_s转载 2013-01-07 13:07:01 · 657 阅读 · 0 评论 -
CGroup 介绍、应用实例及原理描述
CGroup 介绍、应用实例及原理描述CGroup 技术被广泛用于 Linux 操作系统环境下的物理分割,是 Linux Container 技术的底层基础技术,是虚拟化技术的基础。本文首先介绍了 Cgroup 技术,然后通过在 CentOS 操作系统上部署、配置、运行一个实际多线程示例的方式让读者对物理限制 CPU 核的使用有一个大概的了解,接着通过讲解 CGroup 内部的转载 2016-03-22 21:26:46 · 986 阅读 · 0 评论 -
键盘驱动的原理
键盘驱动的设置1,一般要初始化矩阵键盘的行数和列数,设置矩阵的扫描驱动线的开始gpio,设置矩阵的扫描输入线的开始gpio,利用循环分别对每个扫描驱动线的gpio初始化为输出脚,利用循环分别对每个扫描输入线的gpio初始化为输入脚。2, 在模块加载函数中注册输入设备。注册输入设备转载 2011-07-07 17:35:20 · 1059 阅读 · 0 评论 -
Linux输入子系统
这个大哥的博客讲的不错。。转来了。。多谢了。。 地址 http://blog.csdn.net/zhenwenxian/article/details/6064234Linux输入子系统按键与触摸屏的设备驱动,在Linux系统中实现这类设备驱动的方法是利用转载 2011-07-07 17:32:51 · 617 阅读 · 0 评论 -
几个常用的宏:likely和unlikely __raw_writel
在源码中,宏likely和unlikely 是这么定义的(位于include/linux/compiler.h):#define likely(x) __builtin_expect(!!(x), 1)#define unlikely(x) __builtin_expect(!!转载 2011-07-07 17:22:07 · 804 阅读 · 0 评论 -
linux等待队列(转载)
linux等待队列(转载)Posted on 2010-01-18 18:01 放飞自我 阅读(667) 评论(0) 编辑 收藏 (转载) Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过lis转载 2012-05-16 11:23:49 · 489 阅读 · 0 评论 -
Linux Kernel and Android 休眠与唤醒(中文版)
以下内容翻墙所得作者网站“ http://www.thinksrc.com/2010/04/18/suspend-cn.html Linux Kernel and Android 休眠与唤醒(中文版)四月 18th, 2010 0 Comments/6533 hitsTable of Contents简介国际化版本信息对于休眠(sus转载 2012-05-16 11:15:38 · 874 阅读 · 0 评论