自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(365)
  • 资源 (2)
  • 收藏
  • 关注

转载 Android Java 中Thread与Runnable的区别

FROM:http://blog.sina.com.cn/s/blog_8f5097be01011hbu.html在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是

2013-12-12 12:39:57 3545

转载 Vundle(Vim bundle) 是一个vim的插件管理器。

其Github地址为: https://github.com/gmarik/vundle如何使用Vundle  (个人使用环境为ubuntu 12.10)    1. 从Github下载vundle到本地:          $  git clone https://github.com/gmarik/vundle.git  ~/.vim/bundle/vundle

2013-12-11 14:17:48 969

转载 vim FILETYPE

FILETYPE*filetype.txt* For Vim version 6.4. 文件类型 *filetype* *file-type*1. 文件类型 |filetypes|2. 文件类型插件

2013-12-11 12:24:22 7667

转载 Linux内核spin_lock 要防止该锁在中断处理程序调用

static inline void __raw_spin_lock(raw_spinlock_t *lock){        preempt_disable();        spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);        LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw

2013-12-09 17:03:44 2253

转载 Microsoft Radio Interface Layer

microsoftinterfacelayersmsfunctioncommand目录(?)[+]CellcoreRadio Interface LayerWhat is a RIL driverIOControlDevice Power StateMultiplexer ProtocolRIL ModulesRIL ProxyNotification

2013-11-22 11:49:52 5605

转载 Android源代码目录结构

androidsystem工具fontslinux内核includeAndroid 2.2|-- Makefile|-- bionic               (bionic C库)|-- bootable            (启动引导相关代码)|-- build                 (存放系统编译规则及generic等基础开发包配置)

2013-11-21 18:01:32 1129

转载 Android的implements是什么意思

extends 继承:  类X 通过extend 类Y来添加功能,或者添加变量,或者添加方法,或者覆盖类Y的方法。一个接口extends另外一个接口来添加方法。与implements的区别:implements 实现父类,子类不可以覆盖父类的方法和变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。 extends, 可以实现父类,也可以调用父类初始化 this.parent()。而

2013-11-21 17:33:21 14258

转载 Android JNI 使用的数据结构JNINativeMethod详解

Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数。其中很重要的区别是Andorid使用了一种Java 和 C 函数的映射表数组,并在其中描述了函数的参数和返回值。这个数组的类型是JNINativeMethod,定义如下:typedef struct {const char* name;const char* signature;void* f

2013-11-21 15:41:58 864

转载 android源码结构

android源码结构 Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相

2013-10-11 17:49:03 693

转载 jdk与jre的区别

JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。如果安装了JDK,会发同你的电脑有两

2013-10-11 16:56:59 594

转载 download repo

mkdir ~/bin $ PATH=~/bin:$PATH下载repo$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo

2013-09-30 14:55:54 819

转载 how to setup SSH on ubuntu

1. sudo apt-get install openssh-client openssh-server 2. 启动ssh。ssh默认安装在/usr/local/sbin/目录下,使用 /usr/local/sbin/sshd 启动ssh服务,该服务默认侦听22端口。3、检查ssh服务是否启动:netstat -tnlp|grep :22

2013-09-30 14:47:46 1115 1

转载 Java关键字static、final使用小结

static 1. static变量    按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:   对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是

2013-09-24 21:13:24 872

转载 Linux 下压缩与解压.zip和.rar及.7z文件

对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:1)对于.ziplinux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,可用命令zip -help和unzip -help查看,这里只做简单介绍,举例说明一下其用法:# zip yajiu.zip yajiu.jpg yajiu.png这

2013-09-23 21:10:17 36421 1

转载 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取

多寄存器和堆栈寻址的用法:多寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB;堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;弄清堆栈寻址的SP的变化:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;IA: 每次

2013-09-13 20:49:49 6350

转载 linux 下platform设备和驱动注册的先后顺序

在内核源代码中,platform 设备的初始化(注册)用arch_initcall()调用,它的initcall 的level为3;而驱动的注册用module_init()调用,即device_initcall(),它的initcall 的level为6。 kernel 初始化时(kernel_init@init/main.c),按照内核链接文件中(arm系统:kernel/arch/a

2013-09-13 15:15:08 1941

转载 softirq原理以及源码分析

Linux 的softirq机制是与SMP紧密不可分的。为此,整个softirq机制的设计与实现中自始自终都贯彻了一个思想:“谁触发,谁执行”(Who marks,Who runs),也即触发软中断的那个CPU负责执行它所触发的软中断,而且每个CPU都由它自己的软中断触发与控制机制。这个设计思想也使得softirq 机制充分利用了SMP系统的性能和特点。 多个softirq可以并行执行,甚至同

2013-09-11 17:12:46 909

转载 Driver porting: Network drivers betwwen 2.4 and 2.6

Much of the core network driver API has not been changed between the 2.4 and 2.6 kernels. With only a relatively small amount of work, most drivers should function just fine under 2.6. If, however, yo

2013-09-11 16:56:18 960

转载 Android Power Management

From eLinux.orgContents [hide] 1wakelocks1.1Creating a wakelock1.2Using a wakelock inside the kernel1.3Using a wakelock from user space1.4Sample 'cat /proc/wakelocks' outpu

2013-09-09 21:40:06 863

转载 inux mount一个硬盘

在linux下加载一块硬盘从总体上分为以下几个步骤:1、用fdisk对硬盘进行分区2、用mkfs.ext3对硬盘进行格式化3、建立一个挂接目录(如果需要挂接到已存在的目录,此步骤可以省略)4、用mount将该分区挂接到指定的目录5、如果想实现启动时自动挂接,那么还需要修改fstab文件具体操作如下:[root@redhad ~]# fdisk -l   --查看硬盘分区

2013-08-29 15:41:19 692

转载 linux中实现fiq模式(关于arm中断,唤醒中断)

因为sep4020的唤醒需要用到fiq模式,上网搜索了一下linux暂时不支持fiq,但是仔细查看了entry-armv.S的文件,其实linux不是不支持linux,只是不能支持太复杂的操作(这个说法待考证,可能通过修改部分源代码也能实现,因为我在arch/arm/kernel下发现fiq.c文件,有时间再确认下),但是最基本的入口低级操作还是存在的,只需要改动相应的地方就能实现简单的功能。

2013-08-22 16:13:16 4200

转载 linux boot 常见问题

不少用户在尝试引导内核的时候,遇到了一些意外,内核的引导在某一点突然中断,并且不能进行下去,有时候是有个软件的bug导致的,而有时候可能是由于内核的错误的配置导致的,这篇文章是为开发者提供一些帮助来诊断为什么不能正常引导内核并且找出其中可能的原因。问题1:内核只引导到"Starting Kernel...",然后串口终端就没有输出了,举个例子:## Booting kernel from 

2013-08-15 13:37:55 1139

转载 linux下mmap的使用

共 享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空 间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易 见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道

2013-08-13 19:30:59 1335

转载 常用ARM汇编指令及ATPCS规则

在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时的初始化,进出中断时的环境保存、恢复,对性能要求非常苛刻的函数等。1、相对跳转指令: b 、 bl不同之处在于: bl 指令除了跳转之外,还将返回地址( bl的下一条指令的地址)保存在 lr 寄存器中。跳转范围:当前指令的前后32M。它们是与位置无关的指令。示例:        b    fun1

2013-08-09 20:28:52 830

转载 ARM汇编基础

void test2(int a,int b,int c){   int k=a,j=b,m=c;  }GCC反汇编:00000064 :  mov     ip, sp                  //IP=SP;保存SP  stmdb   sp!, {fp, ip, lr, pc}   //先对SP减4,再对fp,ip,lr,pc压栈。---------1

2013-08-09 13:31:39 823

转载 Android的RIL驱动模块telephony启动流程

#includestdio.h>#include fcntl.h>#include errno.h>int main(){    int ret;    int fd = open("/dev/tty1", O_RDONLY);    fcntl(fd, F_SETFL, O_NONBLOCK);    ret = read(fd,NULL,

2013-08-08 20:35:24 2610

转载 运算符优先级

1级优先级 左结合  () 圆括号   [] 下标运算符   -> 指向结构体成员运算符   . 结构体成员运算符 2级优先级 右结合   ! 逻辑非运算符   ~ 按位取反运算符   ++ 前缀增量运算符   -- 前缀增量运算符   + 正号运算符  - 负号运算符   (类型) 类型转换运算符   * 指针运算符   & 地址与运算

2013-08-07 14:03:57 1046

转载 Android parcel mechanism

一.先从Serialize说起         我们都知道JAVA中的Serialize机制,译成串行化、序列化……,其作用是能将数据对象存入字节流当中,在需要时重新生成对象。主要应用是利用外部存储设备保存对象状态,以及通过网络传输对象等。 二.Android中的新的序列化机制         在Android系统中,定位为针对内存受限的设备,因此对性能要求更高,另外系统中采用了新

2013-08-07 11:55:41 736

转载 软件静态分析以及工具Klocwork介绍

软件静态分析以及工具Klocwork介绍1. 软件静态分析软件静态分析无需执行程序代码,就能发现代码的质量和安全问题,这种技术能够把缺陷的发现和解决时间向前推移至编码阶段。从而显著降低缺陷解决的成本,提高软件的质量。一般来说,静态分析的准入条件是代码能够通过编译,而它的退出条件则是所报告的可能存在的缺陷都得到合理的评估。2. 软件静态分析与编译,代码审查,动态测试的关系 

2013-08-07 11:33:14 13289 4

转载 objdump 反汇编

objdump是gcc工具,用来查看编译后目标文件的组成。常用命令:objdump -x obj:以某种分类信息的形式把目标文件的数据组成输出;objdump -t obj:输出目标文件的符号表()objdump -h obj:输出目标文件的所有段概括()objdump -j ./text/.data -S obj:输出指定段的信息(反汇编源代码)objdump -S ob

2013-07-19 21:52:38 18516

转载 C语言和ARM汇编语言的相互调用

1.汇编程序访问C语言全局变量全局变量只能通过地址间接调用,为了访问C语言中全局变量,首先要通过extern伪指令引入全局变量,然后将其地址装入寄存器中。对于unsigned char类型,使用LDRB/STRB访问;对于unsigned short类型,使用LDRH/STRH访问;对于unsigned int类型,使用LDR/STR访问;对于char类型,使用LDRSB/

2013-07-19 16:48:56 8007

转载 Make a AutoBuild System with Git Server 转载

转载:  一个autobuild系统, 如果您和我有同样的需求, 不妨跟随我一起搭建一个这样的系统, easy and simple, have fun :)Why:  事情是这样开始的, 我自己的项目放置在github上, 这是一个linux项目, 然而我所用来开发的机器是mac, 它不能用来编译所有的模块, 每次我都需要push提交之后, 再去server上pull下来, 然后

2013-07-17 13:41:33 992

转载 u-boot 代码中常见汇编指令

汇编存储cachec扩展编译器在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时初始化,进出中断时的环境保护,恢复等对性能有要求的地方。ARM指令集可以分为六大类,分别为数据处理指令 、Load/Store指令 、跳转指令 、程序状态寄存器处理指令 、协处理器指令 和异常产生指令 。 ARM 指令使用的基本格式如下: 〈opcode〉{〈cond〉}{S}     〈Rd〉

2013-07-12 20:37:10 1053

转载 linux内核调试指南

目录(?)[+]linux内核调试指南大海里的鱼有很多而我们需要的是鱼钩一只一些前言作者前言知识从哪里来为什么撰写本文档为什么需要汇编级调试第一部分基础知识总纲内核世界的陷阱源码阅读的陷阱代码调试的陷阱原理理解的陷阱建立调试环境发行版的选择和安装为什么选debiandebian与ubuntu从0安装debiandebian重要命令中文环境

2013-07-12 20:18:38 5933 1

转载 汇编语言中的CPSR 和 SPSR

CPSR:程序状态寄存器(current program status register) ,cpsr在用户级编程时用于存储条件码。CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。  SPSR:程序状态保存寄存器。SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志位、中断

2013-07-12 13:43:16 3063

转载 some assemble instructions reference

1.汇编指令LSL2012-11-15 15:03 匿名 |分类:汇编语言 | 浏览623次R1=0x31,R2=0x2 则执行指令ADD  R0,R1,R2 LSL #3 后,R0的值是???   R0最终的值是0x198首先 R1+R2=0x33被送到R0第二条逻辑左移3位,0x33左移3位的结果就是0x198,R0为32为寄存器而非8位寄存器,所以左移并没

2013-07-11 14:23:42 1097

转载 arm boot flow

基于ARM的芯片多数为复杂的片上系统,这种复杂系统里的多数硬件模块都是可配置的,需要由软件来设置其需要的工作状态。因此在用户的应用程序之前,需要由专门的一段代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言。一般通用的内容包括:中断向量表初始化存储器系统初始化堆栈初始化有特殊要求的断口,设备初始化用户程序执行环境改变处理器模

2013-07-11 14:10:08 957

转载 R中的grep、grepl、sub、gsub、regexpr、gregexpr等函数

R中的grep、grepl、sub、gsub、regexpr、gregexpr等函数都使用正则表达式的规则进行匹配。默认是egrep的规则,也可以选用Perl语言的规则。在这里,我们以R中的sub函数为例(因为该函数可以返回替换字符串后的具体内容)介绍正则表达式的用法。  对该函数的逻辑参数都使用默认值(ignore.case = FALSE,表示大小写敏感;extended = TRUE,表

2013-07-09 12:54:13 49064 1

转载 linux中awk下 gsub函数用法

gsub函数则使得在所有正则表达式被匹配的时候都发生替换gsub(regular expression, subsitution string, target string);简称 gsub(r,s,t)  一、遇到的问题:问题:echo "a b c 2011-11-22 a:d" | awk '$4=gsub(/-/,"",$4)'为啥 输出后 2011-11-22 变

2013-07-09 12:35:12 5612

转载 SUBSTR()函数

是从给定的字符表达式或备注字段中返回一个子字符串。2.语法格式:SUBSTR(cExpression,nStartPosition [,nCharactersReturned])其中,cExpression指定要从其中返回字符串的字符表达式或备注字段;nStartPosition用于指定返回的字符串在字符表达式或备注字段中的位置,nCharactersReturned用于指定返回的

2013-07-09 11:49:20 2097

arm-linux-gcc-4.4.3 交叉编译链

arm linux gcc 交叉编译链,如果你想编译linux 内核,并可运行在arm 机器上,请下载此工具链

2012-01-27

linux v1.13 source code

this is linux source code

2008-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除