免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 25759 | 回复: 51
打印 上一主题 下一主题

[BootLoader] Uboot中start.S源码的指令级的详尽解析 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-17 23:38 |只看该作者 |倒序浏览
本帖最后由 crifan 于 2013-08-22 12:41 编辑

最新地址:Uboot中start.S源码的指令级的详尽解析



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

Version: 1.0

Author: green-waste (at) 163.com

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

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

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

Uboot中start.S源码的指令级的详尽解析.pdf (1.86 MB, 下载次数: 6596)

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

目录
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中的每行代码;添加了相关知识点的详细解释





评分

参与人数 1可用积分 +6 收起 理由
send_linux + 6 辛苦了,感谢分享原创啊!

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2011-04-18 00:22 |只看该作者
再啰嗦一句,写这种东西,真的不是一般的累啊。。。

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
3 [报告]
发表于 2011-04-18 08:55 |只看该作者
呵呵,原來在這篇文章裏面全有啊。第一頁留個名

论坛徽章:
0
4 [报告]
发表于 2011-04-19 17:05 |只看该作者
赞楼主的分享精神

论坛徽章:
0
5 [报告]
发表于 2011-04-19 17:26 |只看该作者
学习!!!

论坛徽章:
0
6 [报告]
发表于 2011-04-19 21:26 |只看该作者

看帖,回帖

论坛徽章:
0
7 [报告]
发表于 2011-04-19 22:05 |只看该作者
看看先

论坛徽章:
0
8 [报告]
发表于 2011-04-19 23:01 |只看该作者
强顶,正在头大这个东西。

论坛徽章:
0
9 [报告]
发表于 2011-04-21 11:06 |只看该作者
下了  回来顶一个

论坛徽章:
0
10 [报告]
发表于 2011-04-21 11:22 |只看该作者
回复 1# crifan
crifan兄弟又发好文了呀,顶啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP