Android培训班(96)内核解压过程9

前面已经把定位的数据通过加载LC0结构来加载到寄存器里,已经具备了定位的条件。那么内核进行重定位主要做些什么事情呢?要了解整个过程,当然要学习编译原理,因为进行重定位之后,主要是为了建立C语言的运行环境的需求。由于C语言是基于栈式的语言,又有全局变量,说明内存结构至少有两个,一个是全局数据区,一个是栈。因此,重定位就是修改全局数据区和栈的访问。在全局数据的内存的表达方式,GCC是使用GOT(GLO...
阅读(1973) 评论(0)

Android培训班(95)内核解压过程8

内核在上面处理完关闭中断,并且确认进入系统模式后,就需要解决第一个问题:解决自己到底在那里运行的问题。这个问题,就好比一个人在大海里航行而没有指南针,根本找不到北在那里,急切地想知道方向在那里。如果在白天还可以靠大阳就知道了方向,在晚上可以靠北斗星,在内核里是否也有这样的大自然的指示呢?在内核里没有天然的指示,但可以有人为的,下面就来看看内核到底是怎么添加自己的太阳,自己的北斗星呢。内核在那里运行...
阅读(2084) 评论(0)

Android培训班(94)内核解压过程7

通过上面的架构的学习,可以知道ARM体系总共有8个架构,每个架构有着不同的功能,因此下面的这个宏,就是选择第2个架构,因为第2个构架与后面的架构是有着很大的区别,比如第2个架构是24位地址线的,而后面架构全是32位的。并且支持的指令和寄存器也存在着差别,所以需要根据不同的架构来选择编译的代码,否则就会让CPU运行不能识别的指令。从这里学习到的知识点,就是可以定义宏来选择不同的CPU兼容性的代码。#...
阅读(1989) 评论(0)

Android培训班(93)内核解压过程6

在了解ARM公司的产品架构之前,先来看看ARM公司的历史,这样对看懂内核的代码会很大帮助的,否则看到内核里有众多的宏定义,支持不同的结构指令选择,倒底是怎么回事,也是迷茫的,不解的。近来微软公司宣布Windows8正式支持ARM处理器,这是计算机发展历史上的一件大事,标志着X86结构的处理器的主导地位发生了动摇,ARM处理器将在市场上渐渐成为主流,恐怕指日可待。难怪有人惊呼,Intel公司将被击败...
阅读(2126) 评论(0)
    个人资料
    • 访问:5574849次
    • 积分:72912
    • 等级:
    • 排名:第25名
    • 原创:1584篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2082条
    文章存档
    最新评论