crifan 发表于 2011-04-17 23:38

Uboot中start.S源码的指令级的详尽解析

本帖最后由 crifan 于 2013-08-22 12:41 编辑

最新地址:Uboot中start.S源码的指令级的详尽解析
Uboot中start.S源码的指令级的详尽解析Version: 1.0Author: green-waste (at) 163.com----------------------------------------------------------------------------------------- 说明,由于本文内容太长,不方便在这里一点点贴出来,所以,此处只是贴出来目录。对此内容感兴趣的话,自己下载PDF版本:-----------------------------------------------------------------------------------------目录
1. 正文之前 3
1.1. 本文内容 3
1.2. 本文目标 3
1.3. 代码来源 3
1.4. 关于本文内容的组织形式 3
1.5. 阅读此文所要具有的前提知识 3
1.6. 声明 3
2. start.S详解 4
2.1. 设置CPU模式 4
2.2. 关闭看门狗 16
2.3. 关闭中断 20
2.4. 设置堆栈sp指针 24
2.5. 清除bss段 32
2.6. 异常中断处理 44
3. 相关知识点详解 57
3.1. uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式 57
3.2. 什么是watchdog + 为何在要系统初始化的时候关闭watchdog 58
3.2.1. 什么是watchdog 58
3.2.2. 为何在要系统初始化的时候关闭watchdog 59
3.3. 为何ARM7中PC=PC+8 59
3.3.1. 为何ARM9和ARM7一样,也是PC=PC+8 60
3.4. AMR寄存器的别名 + APCS 65
3.4.1. ARM中的寄存器的别名 65
3.4.2. 什么是APCS 67
3.5. 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈 67
3.5.1. 保存现场/上下文 67
3.5.1.1. 什么叫做上下文context 68
3.5.2. 传递参数 68
3.5.3. 举例分析C语言函数调用是如何使用堆栈的 68
3.6. 关于为何不直接用mov指令,而非要用adr伪指令 70
3.7. mov指令的操作数的取值范围到底是多少 71
4. 引用 74
图表
图表 1 global的语法 5
图表 2 LDR指令的语法 7
图表 3 .word的语法 8
图表 4 balignl的语法 9
图表 5 CPSR/SPSR的位域结构 13
图表 6 pWTCON 16
图表 7 INTMOD 16
图表 8 INTMSK 17
图表 9 INTSUBMSK 17
图表 10 CLKDIVN 17
图表 11 WTCON寄存器的位域 20
图表 12 INTMSK寄存器的位域 21
图表 13 INTSUBMSK寄存器的位域 22
图表 14 CLKDIVN的位域 23
图表 15 控制寄存器1的位域含义 40
图表 16 时钟模式 41
图表 17 关于访问控制位在域访问控制寄存器中的含义 41
图表 18 关于访问允许(AP)位的含义 42
图表 19 macro的语法 45
图表 20 LDM/STM的语法 46
图表 21 条件码的含义 46
图表 22 ARM中CPU的模式 57
图表 23 AMR7三级流水线 59
图表 24 ARM7三级流水线状态 60
图表 25 ARM7三级流水线示例 60
图表 26 ARM7三级流水线 vs ARM9五级流水线 61
图表 27 ARM7三级流水线到ARM9五级流水线的映射 61
图表 28 ARM9的五级流水线示例 62
图表 29 ARM9五级流水线的执行机构的细节 65
图表 30 ARM寄存器的别名 66
图表 31 数据处理指令的指令格式 72
图表 32 mov指令0xe3a00453的位域含义解析 73
版本历史:

版本时间内容
1.02011-04-17详细解释了uboot的start.s中的每行代码;添加了相关知识点的详细解释






crifan 发表于 2011-04-18 00:22

再啰嗦一句,写这种东西,真的不是一般的累啊。。。

amarant 发表于 2011-04-18 08:55

呵呵,原來在這篇文章裏面全有啊。第一頁留個名

ironfox 发表于 2011-04-19 17:05

赞楼主的分享精神:em27:

asp00 发表于 2011-04-19 17:26

学习!!!

yuweixian4230 发表于 2011-04-19 21:26

:mrgreen::mrgreen::mrgreen:
看帖,回帖

ckelsel 发表于 2011-04-19 22:05

看看先:em14:

ChiyuT 发表于 2011-04-19 23:01

强顶,正在头大这个东西。

xxw19840406 发表于 2011-04-21 11:06

下了回来顶一个

chenrvmldd 发表于 2011-04-21 11:22

回复 1# crifan
crifan兄弟又发好文了呀,顶啊
页: [1] 2 3 4 5 6
查看完整版本: Uboot中start.S源码的指令级的详尽解析