- 博客(89)
- 资源 (4)
- 收藏
- 关注
转载 内核抢占和schedule()函数的分析
内核抢占和schedule()函数的分析标签: schedulepreempt-diTIF-NEED-Rthread-infPREEMPT-AC2015-07-22 17:31 523人阅读 评论(0) 收藏 举报 分类:校招准备(12) 版权声明:本文为博主原创文章,未经博主允许不得转载。1.线程描述符:struct t
2017-06-10 10:39:15
519
转载 乱序执行的原理——减轻数据灾难的影响
处理器基本上会按照程序中书写的机器指令的顺序执行。按照书写顺序执行称为按序执行(In-Order )。按照书写顺序执行时,如果从内存读取数据的加载指令、除法运算指令等延迟(等待结果的时间)较长的指令后面紧跟着使用该指令结果的指令,就会陷入长时间的等待。尽管这种情况无可奈何,但有时,再下一条指令并不依赖于前面那条延迟较长的指令,只要有了操作数就能执行。此时可以打乱机器指令的顺序,就算指令位于
2015-06-29 11:04:30
552
原创 choose_freq分析
choose_freq分析1 800000:85 998400:90 1094400:80 1190400:80 1248000:80 1305600:80例子1: loadadjfreq=cpu_load*pcpu->policy->cur=92*998400循环1: prevfreq = freq=998400; tl=90(998400:90) 通过当前频率找到
2015-05-10 16:11:07
345
转载 (forward)看到的一篇比较好的AudioFlinger分析
一 目的 本文承接Audio第一部分的AudioTrack,通过AudioTrack作为AF(AudioFlinger)的客户端,来看看AF是如何完成工作的。在AT(AudioTrack)中,我们涉及到的都是流程方面的事务,而不是系统Audio策略上的内容。WHY?因为AT是AF的客户端,而AF是Android系统中Audio管理的中枢。AT我们分析的是按流程方法,那么以
2014-07-17 11:38:19
1031
转载 linux jdk install
解压jdk包到/usr/java/jdk1.7.0_25配置环境变量①进入编辑profile文件[plain] view plaincopyprint?#vim /etc/profile #vim /etc/profile②在profile文件最后追加入如下内容: export JAVA_HOME=/usr/java/j
2014-03-20 19:37:32
511
Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据
http://blog.youkuaiyun.com/droidphone/article/details/5941344Android Framework的音频子系统中,每一个音频流对应着一个AudioTrack类的一个实例,每个AudioTrack会在创建时注册到AudioFlinger中,由AudioFlinger把所有的AudioTrack进行混合(Mixer),然后输送到AudioHar
2014-03-05 19:28:55
131
proc文件系统编程
struct proc_dir_entry * hello_dir=NULL;struct proc_dir_entry * entry=NULL;hello_dir=proc_mkdir("hello_cmd",NULL);entry=create_proc_entry("he_cmd",S_IRUGO|S_IWUSR,hello_dir);entry->read_pro
2012-05-17 10:53:24
116
原创 栈(C语言实现)
数据结构——栈(C语言实现) 1 /*stack头文件*/ 2 #include stdio.h> 3 #include stdlib.h> 4 5 typed
2011-06-24 16:17:00
592
原创 时间片和优先级调度如何配合
<br />http://blog.youkuaiyun.com/phunxm/archive/2009/12/27/5083405.aspx<br />.<br />Windows在线程优先级上是以“谁将得到CPU”为基准的,但这个方法是实际上如何工作的呢?下面的部分将解释在线程的级别上,由优先级驱动的,抢占式的多任务的调度是如何工作的。注意到Windows在处理线程调度决策上,单处理器系统和多处理器系统是不同的,这将在后续部分解释。 <br />(1)自愿切换<br />线程可能调用Win32的
2011-05-19 10:58:00
2697
转载 Android高通平台处理器间通讯驱动
Android高通平台处理器间通讯驱动<br /> 高通平台AP与CP直接通信由Share Memory负责,这是一块两端可以同时操作的内存区域。由于高通平台Modem占主导作用,在Application Processor启动初始化时,从Share Memory区读取已经由Modem predeclared的一些数据。<br /><br />Share memory根据功能,分为静态+动态部分,每个部分又分为数个小区,每个区的大小不一,与本区实现的功能相关。Modem会把所有区的
2011-05-13 14:02:00
1439
转载 android 3G pppd 调试记录
<br />android 3G pppd 调试记录。 收藏 <br />android 3G pppd 调试记录。<br />1. JAVA 部分<br />android/development/data/etc/apns-conf_sdk.xml ---> system/etc/apns-conf.xml<br />注意 apns 的版本, <br /><apns version="6"><br /><apn carrier="中国联通 3g 网络 (China Unicom)"<br />
2011-04-14 11:14:00
4020
原创 Java中接口的作用
Java中接口的作用 收藏 java不允许多重继承,也就是说一个子类只能有一个父类,Son extends FatherA,FatherB 是错误的 为了弥补这点不足,java允许实现多个接口,Son extends FatherA implements AnotherFatherA,AnotherFatherB是允许的 接口中的方法没有实体,就这一点而言就相当于abstact class,如: interface ainter{ void dosth(i
2011-04-14 09:15:00
866
原创 将android源码中的camera应用导入Eclipse
出现下面的错误<br />import android.media.MediaMetadataRetriever;<br />import android.media.ExifInterface;<br />import android.os.SystemProperties;<br />有很多包找不到 请问为什么?对我有用[1]丢个板砖[0]引用举报管理TOP回复次数:6<br /> jinlking等 级:#1楼 得分:0回复于:2009-11-21
2011-04-13 16:30:00
1426
原创 关于android源码导入 eclipse的问题1
关于android源码导入 eclipse的问题[问题点数:40分,结帖人:youngmanl_ren] * * youngmanl_ren * (youngmanl_ren) * * 等 级: * 结帖率:100.00% * 楼主发表于:2010-10-04 02:01:36最近要搞android的mms一块,所以要先看看android mms的源码罗!于是把下载下来的源码导入到了eclipse工程,但出现了很多包找
2011-04-13 16:28:00
2457
原创 Android的Intent+uri应用实例
Android的Intent+uri应用实例 2011-04-12 14:251.Install安装程序 Uri uri = Uri.fromParts(“package”, packageName, null); //packageName为包名,比如com.android123.apkInstaller Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED, uri); sta
2011-04-13 10:26:00
1244
转载 android-ril 分析 -radiooption
<br />先看Android.mk<br /><br /># For radiooptions binary<br /># =======================<br />include $(CLEAR_VARS)<br />LOCAL_SRC_FILES:= /<br /> radiooptions.c<br />LOCAL_SHARED_LIBRARIES := /<br /> libcutils /<br /> <br />LOCAL_CFLAGS := / <br /> <b
2011-04-08 15:42:00
2128
原创 android init(system/core/init/init.c)分析
http://blog.youkuaiyun.com/wuyun2009/archive/2010/06/08/5656241.aspxhttp://blog.youkuaiyun.com/evanwu_85/archive/2010/08/19/5823717.aspx
2011-04-07 16:46:00
743
原创 linux守护进程编程(2)
http://blog.youkuaiyun.com/tyyhong/archive/2009/09/19/4570779.aspx
2011-04-07 14:23:00
404
转载 函数
<br />1. mount<br />这几天在写关于文件管理方面的程序,需要从usb host上挂载文件系统,用system调用mount程序来实现手工挂载,看了看mount函数。觉着用函数调用要好一些。 int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data); source :设备 /dev/sda等 target :
2011-04-07 11:12:00
461
原创 安装和卸载Android应用程序(apk包)
安装和卸载Android应用程序(apk包) <br /> <br /> 一、 安装<br /> <br />1. 安装第三方应用<br />$ adb install apk文件名<br />2. 安装系统应用<br />$ adb remount<br />$ adb push apk文件名 /system/app // apk文件名形如testme.apk<br />二、 卸载<br />1. $ adb uninstall 包名
2011-04-01 14:46:00
1026
原创 Android ADB驱动安装详解
<br /> <br />先下载android的sdk,http://developer.android.com/sdk/<br />添加环境变量<br />1.<br />首先确认手机连接上电脑,lsusb查看下设备记录。Bus 007 Device 009: ID 18d1:4e12<br /><br />2.<br />vim/etc/udev/rules.d/51-android.rules<br />SUBSYSTEM=="usb", SYSFS{"idVendor"}
2011-03-29 16:11:00
1411
原创 Linux下Android ADB驱动安装详解
Linux下Android ADB驱动安装详解收藏Linux下Android ADB驱动安装详解概述<br />最近由于内置的合作商比较多,本人使用的Ubuntu系统好多厂商的Android手机都无法正确的识别,经过一番折腾,和查阅SDK,现把Linux下ADB驱动配置的方法和当中会遇到的相关问题的解决方法整理出来贡献给大家。<br />Linux下使用手机USB调试模式连接ADB进行Android程序的调试,配置驱动没有Windows来的直观。具体步骤<br />首先确认手机连接上电脑,lsusb查看下设
2011-03-29 15:29:00
1130
原创 pdf 下载地址
http://ardownload.adobe.com/pub/adobe/reader/unix/8.x/8.1.7/chs/AdobeReader_chs-8.1.7-1.i386.deb
2011-03-29 14:33:00
538
原创 ubuntu 10.04/10.10中直接安装kscope
在ubuntu 1004中直接安装kscope的方法:-.pcb { margin-right: 0pt; }在ubuntu 1004中直接安装kscope的方法: <br />1. download kscope deb <br />wget http://ftp.debian.org/pool/main/k/kscope/kscope_1.6.2-1_i386.deb<br />2. 下载后一定不要用命令行去安装这个包. 直接点击 会调用 gdebi 去安装这个包 <br />3.
2011-03-29 14:29:00
1295
原创 Platform bus
http://blog.youkuaiyun.com/yangzhu1982/archive/2011/02/15/6186047.aspxhttp://blog.youkuaiyun.com/armeasy/archive/2010/11/07/5993210.aspxhttp://blog.youkuaiyun.com/armeasy/archive/2010/11/07/5993200.aspx
2011-03-16 20:00:00
495
原创 cdev结构体及其相关函数
<br />http://blog.youkuaiyun.com/z08053520/archive/2010/03/18/5390604.aspx
2011-03-16 17:42:00
374
原创 exit(),_exit()的区别
exit(),_exit()的区别 收藏 Linux的源码#define __NR_exit 1#define __NR__exit __NR_exit /* 摘自文件include/asm-i386/unistd.h*/ "__NR_"是在Linux的源码中为每个系统调用加上的前缀,请注意第一个exit前有2条下划线,第二个exit前只有1条下划线。Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,因为这些库函数与系统调用的关系非常紧密,所以习惯
2011-03-16 13:37:00
623
原创 NAND Flash代码
<br />初始化调用sh_flctl.c中flctl_probe对flctl->chip进行初始化.同时调用nand_scan_ident然后调用nand_scan_ident然后
2011-03-14 17:46:00
229
原创 JNI技术与Android应用
<br />http://www.cnblogs.com/yc_sunniwell/archive/2010/07/05/1771149.html
2011-03-14 13:19:00
564
转载 android使用socket使底层和framework通信
android使用socket使底层和framework通信<br />工作学习2010-12-15 00:24:00阅读199评论0 字号:大中小 订阅一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framework自由通信,具体实现如下:<br /> an
2011-03-11 17:30:00
677
转载 Android如何生成设备节点
<br />Android如何生成设备节点 收藏 <br />原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://buaadallas.blog.51cto.com/399160/394350<br />在Android中,由于没有mdev和udev,所以它没有办法动态的生成设备节点,那么它是如何做的呢?<br />我们可以在system/core/init/下的init.c和devices.c中找到答案:<br />init.c中<br /
2011-03-04 17:54:00
1079
转载 file结构体和inode结构体
file结构体和inode结构体 收藏 (1)struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建和驱动源码中,struct file的指针通常被命名为file或filp。如下所示:struct file { union {
2011-03-04 17:45:00
975
原创 java 接口 实现和继承关系
http://blog.youkuaiyun.com/lyflower/archive/2009/05/20/4204449.aspxjava 接口 实现和继承关系 收藏 一。抽象类有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一个分类或抽象概念,它的实例没有任何意义,因此不希望它能被实例化。例如:有一个父类“ 水果(Fruit)”,它有几个子类“苹果(Apple)”、“橘子(Orange)”、“香蕉(Banana)”等。水果在这里仅仅只是作为一个分类,显然水果的实例没有什么意义(就好像一个人如果告诉你他
2011-03-04 15:11:00
585
原创 嵌入式或LINUX相关研发面试题目
<br />嵌入式或LINUX相关研发面试题目 收藏 <br />一、ANSI C/C++方面的知识 <br />一.1、简答题。下面的题目必须全部答对才给分(20分): <br />1、 如何在C中初始化一个字符数组。 <br />2、 如何在C中为一个数组分配空间。 <br />3、 如何初始化一个指针数组。 <br />4、 如何定义一个有10个元素的整数型指针数组。 <br />5、 s[10]的另外一种表达方式是什么。 <br />6、 GCC3.2.2版本中支持哪几种编程语言。 <br />7、
2011-03-03 13:23:00
786
原创 USB2.0速度识别
<br />http://hi.baidu.com/doyanger/blog/item/af45d995dd64f419d31b704d.html
2011-03-03 00:12:00
636
转载 设备节点的动态建立
<br />设备节点的动态建立 收藏 <br /> 我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。 <br />内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个
2011-03-02 10:59:00
1041
原创 c++ try catch 问题
<br />c++ try catch 问题<br />http://blog.youkuaiyun.com/windhaunting/archive/2009/10/27/4735338.aspx
2011-03-02 10:17:00
534
转载 linux 中断的上半部和下半部
linux 中断的上半部和下半部2009-12-09 07:27另外,与Linux中断息息相关的一个重要概念是Linux中断分为两个半部:上半部(tophalf)和下半部(bottom half)。上半部的功能是"登记中断",当一个中断发生时,它进行相应地硬件读写后就把中断例程的下半部挂到该设备的下半部执行队列中去。因此,上半部执行的速度就会很快,可以服务更多的中断请求。但是,仅有"登记中断"是远远不够的,因为中断的事件可能很复杂。因此,Linux引入了一个下半部,来完成中断事件的绝大多数使命。下半部和上半
2011-03-01 15:49:00
566
原创 Android HAL实例解析
<br />http://blog.youkuaiyun.com/hongtao_liu/archive/2010/12/07/6060734.aspx
2011-02-28 17:38:00
407
原创 C语言extern与static的用法,及extern “c 收藏
C语言extern与static的用法,及extern “c 收藏 一、c语言static与extern的用法1.static和extern:大工程下我们会碰到很多源文件。文件a.cstatic int i; //只在a文件中用int j; //在工程里用static void init() //只在a文件中用{}void callme() //在工程中用{ static int sum;}上面的全局i变量和init()函数只能用在a.c文件中,全局变量sum的作用域只在callme里。变量j和函数c
2011-02-25 14:54:00
452
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人