自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(20)
  • 收藏
  • 关注

转载 u-boot

u-boot编译过程理解   标签:社会2010-04-28 14:07 星期三   u-boot的源代码包含对几十种处理器、数百种开发板的支持。可是对于特定的开发板,配置编译过程只需要其中部分程序。这里具体以S3C2410 & arm920t处理器为例,具体分析S3C2410处理器和开发板所依赖的程序,以及u-boot的通用函数和工具。    编译

2013-03-04 20:23:06 284

原创 草稿

q public void forEachBlockDepthFirst(boolean reverse, SsaBasicBlock.Visitor v) { BitSet visited = new BitSet(blocks.size()); // We push the parent first, then the child

2013-01-24 10:17:59 139

转载 ubuntu下终端常用命令

# ctrl + l - 清屏 # ctrl + c - 终止命令 # ctrl + d - 退出 shell,好像也可以表示EOF # ctrl + z - 将当前进程置于后台,fg还原。 # ctrl + r - 从命令历史中找 # ctrl + a - 光标移到行首 # ctrl + e - 光标移到行尾 # ctrl + u - 清除光标到行首的字符 # c

2013-01-22 13:16:17 267

原创 optimize之一

.optimize      ssaMeth = SsaConverter.convertToSsaMethod(rmeth, paramWidth, isStatic);        runSsaFormSteps(ssaMeth, steps);        RopMethod resultMeth = SsaToRop.convertToRopMethod(ssaMeth

2013-01-21 14:02:12 153

原创 整理综合之二------从BasicBlock到Regops(二)

processBlock@Ropper.java--->sim.simulate其中,            for (int off = bb.getStart(); off                 int length = code.parseInstruction(off, visitor);                visitor.setPreviou

2013-01-13 22:14:53 167

原创 整理综合之二------从BasicBlock到Regops(一)

doit@Ropper.java /** * Does the conversion. */ private void doit() { int[] workSet = Bits.makeBitSet(maxLabel); Bits.set(workSet, 0); addSetupBlocks();

2013-01-13 22:10:53 307

原创 整理综合之一 ----从Bytecode到BasicBlock

一、第一次visitor.visitXXXX等 ,从Bytecode开始,转换为 。。。调用过程 。。。。。1.visitNoArgs@BasicBlocker主要对应的Bytecode如下: public void visitNoArgs(int opcode, int offset, int length, Type type) { switc

2013-01-13 20:15:23 307

原创 translateAndGetResult @ RopTranslator.java 源码分析------流水记录(二)

outputInstructions@RopTranslator.java private void outputInstructions() { BasicBlockList blocks = method.getBlocks(); int[] order = this.order; int len = order.length;

2013-01-12 22:37:31 348

原创 translateAndGetResult @ RopTranslator.java 源码分析------流水记录(一)

private DalvCode translateAndGetResult() { pickOrder(); outputInstructions(); StdCatchBuilder catches = new StdCatchBuilder(method, order, addresses); ret

2013-01-12 14:55:31 273

原创 machine.run源码阅读记录---流水帐(二)

1.destCount;localTarget; pos; 已经赋值, (一)中提到 if (destCount == 0) { dest = null; switch (opcode) { case ByteOps.POP: case ByteOps.PO

2013-01-09 16:23:33 250

原创 Simulator.java中 visitXXX方法---流水记录

1.visitConstant   其中,machine.popArgs@BaseMachine.javapublic final void popArgs(Frame frame, int count) { ExecutionStack stack = frame.getStack(); clearArgs(); if (

2013-01-08 10:29:16 682

原创 pthread_key_create

list0:int pthread_key_create(pthread_key_t *key, void (*destructor_function)(void *)){ uint32_t err = ENOMEM; tlsmap_t* map = tlsmap_lock(); int k = tlsmap_alloc(map, destru

2012-09-01 10:08:57 107

原创 JNI_CreateJavaVM函数分析

22222jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args){ const JavaVMInitArgs* args = (JavaVMInitArgs*) vm_args; JNIEnvExt* pEnv = NULL; JavaVMExt* pVM = NULL; cons

2012-08-23 14:41:11 386

原创 JNI_CreateJavaVM函数

jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args){ const JavaVMInitArgs* args = (JavaVMInitArgs*) vm_args; JNIEnvExt* pEnv = NULL; JavaVMExt* pVM = NULL; const char*

2012-08-23 14:40:33 846

原创 第六章 高级字符驱动程序操作 (二)

6.poll和select1.poll原型:unsigned int (*poll) (struct file *filep, poll_table *wait);使用非阻塞I/O经常使用poll、select和epoll调用。1)这些调用会阻塞进程,直到给定的文件描述符集合中的任何一个可读取或写入。2)poll被调用时,该设备方法分两步处理:step1:在一个或多个可指示

2012-08-21 16:29:50 110

原创 第六章 高级字符驱动程序操作(一)

1.ioctl用户空间:int ioctl(int fd, unsigned long cmd, ...);驱动程序的ioctl原型:int (*ioctl) (struct inode *inode ,struct file *filp, unsigned int cmd, unsigned long arg);2.ioctl命令号2.1命令号在系统范围内应该 唯一。老方

2012-08-21 16:23:20 321

转载 zygote启动http://bbs.gfan.com/android-2766439-1-1.html

http://bbs.gfan.com/android-2766439-1-1.html

2012-08-21 13:52:27 260

转载 linux内核 使用的 gnu c 扩展

文章来源:http://hi.baidu.com/shlongli/blog/item/22120f38c8bfe820b8998fca.html GNU CC是一个功能非常强大的跨平台C编译器,它对C语言提供了很多扩展,这些扩展对优化、目标代码布局、更安全的检查等方面提供了很强的支持。本文把支持GNU扩展的C语言称为GNU C。    Linux内核代码使用了大量的GNU C

2012-08-19 10:11:01 609

原创 android启动代码分析

PARSEZ——CONFIGstatic void parse_config(const char *fn, char *s){ struct parse_state state; char *args[INIT_PARSER_MAXARGS]; int nargs; nargs = 0; state.filename = fn; state

2012-08-19 09:24:36 114

原创 slab_alloc 函数分析

static __always_inline void *slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, unsigned long addr){ void **object; struct kmem_cache_cpu *c; unsigned long flags; unsigned int objsize; gfpf

2012-08-16 11:00:01 318

空空如也

空空如也

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

TA关注的人

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