上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页
摘要: 1. 为什么要打印函数调用堆栈? 打印调用堆栈可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系。比如函数A可能被B/C/D调用,如果只看代码,B/C/D谁调用A都有可能,如果打印出调用堆栈,直接就把谁调的打出来了。不仅如此,打印函数调用堆栈还有另一个好处。在Android代码里, 阅读全文
posted @ 2016-12-09 14:12 CrazyDiode 阅读(3533) 评论(0) 推荐(1) 编辑
摘要: Android系统的启动主要包括三个阶段: ①BootLoader启动 ②Linux Kernel启动 ③Android系统启动 前面我们大致分析了前面两个步骤,即u-boot和内核的启动流程(内核启动流程待完善-_-!!),这次就来分析以下Linux内核启动之后是怎样挂载起Android这个“根文 阅读全文
posted @ 2016-11-11 08:59 CrazyDiode 阅读(1369) 评论(0) 推荐(1) 编辑
摘要: Linux内核的启动分为压缩内核和非压缩内核两种,这里我们以压缩内核为例。压缩内核运行时,将运行一段解压缩程序,得到真正的内核镜像,然后跳转到内核镜像运行。此时,Linux进入非压缩内核入口,在非压缩内核入口中,完成各种初始化操作后跳转到C语言入口处运行。主要流程如下所示。 1.解压缩内核镜像 解压 阅读全文
posted @ 2016-11-06 14:05 CrazyDiode 阅读(1208) 评论(0) 推荐(0) 编辑
摘要: 1.配置交叉编译器 默认情况下,内核构建的是与宿主机相同的体系架构镜像。如果要交叉编译,需要设置两个变量ARCH和CORSS_COMPILE。 ①ARCH:指明目标体系架构,如x86、arm、mips等。 ②CROSS_COMPILE:指定使用的交叉编译器的前缀。例如arm-linux-。在内核顶层 阅读全文
posted @ 2016-11-03 23:27 CrazyDiode 阅读(2412) 评论(0) 推荐(0) 编辑
摘要: 内核的根 Makefile 负责构建两个主要的文件:vmlinux (内核镜像可执行文件)和模块文件。内核的 Makefile 从定义如下变量开始: 这些变量决定了当前内核的版本,并且被使用在很多不同的地方,比如同一个 Makefile 中的 KERNELVERSION : 接下来我们会看到很多if 阅读全文
posted @ 2016-11-01 23:21 CrazyDiode 阅读(617) 评论(0) 推荐(1) 编辑
摘要: 在u-boot中,通过bootm命令启动内核。bootm命令的作用是将内核加载到指定的内存地址,然后通过R0、R1、R2寄存器传递启动参数之后启动内核。在启动内核之前需要对环境做一些初始化工作,主要有如下几个方面: (1)、cpu 寄存器设置 * R0 = 0 * R1 = 板级 id * R2 = 阅读全文
posted @ 2016-10-28 08:31 CrazyDiode 阅读(1716) 评论(0) 推荐(0) 编辑
摘要: 从大方面来说,u-boot的启动分成两个阶段,第一个阶段主要的职责是准备初始化的环境,主要有以下几点 ①设置异常向量表 ②把CPU的工作模式设置为SVC32模式 ③关闭中断、MMU和cache ④关闭看门狗 ⑤初始化内存、时钟、串口 ⑥设置堆栈 ⑦代码搬移 ⑧清bss段 ⑨跳转到c语言中执行(第二阶 阅读全文
posted @ 2016-10-25 09:17 CrazyDiode 阅读(2246) 评论(1) 推荐(0) 编辑
摘要: 参考Friendlyarm的文档,编译uboot的流程为 这个过程主要涉及到两个文件,顶层的Makefile文件和mkconfig文件,makeconfig文件是一个脚本,通过文件的注释可以了解到它的作用 意思是,mkconfig 是用来创建头文件和链接脚本,并以此来为特定的开发板配置u-boot的 阅读全文
posted @ 2016-10-21 21:58 CrazyDiode 阅读(1801) 评论(2) 推荐(0) 编辑
摘要: 1.什么是tombstone 当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的 阅读全文
posted @ 2016-10-20 12:42 CrazyDiode 阅读(71125) 评论(2) 推荐(5) 编辑
摘要: Compatibility Test Suite How does the CTS work? The Compatibility Test Suite (CTS) is a free, commercial-grade test suite, available for download. The 阅读全文
posted @ 2016-10-19 09:09 CrazyDiode 阅读(4265) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页