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

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

Version: 1.0

Author: green-waste (at) 163.com

--------------------------------------------------------------------------------

说明,由于本文内容太长,不方便在这里一点点贴出来,所以,此处只是贴出来目录。

对此内容感兴趣的话,自己下载PDF版本:

 

下载地址1:

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

http://blog.chinaunix.net/attachment/attach/77/44/27/277744275ae1eda228c561fa98e687e61b8fe90a.pdf

 

下载地址2:

Uboot中start.S源码的指令级的详尽解析
http://download.csdn.net/source/3200683

--------------------------------------------------------------------------------

 

目录
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

详细解释了ubootstart.s中的每行代码;

添加了相关知识点的详细解释

   

 

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值