- 博客(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关注的人
RSS订阅