Chinaunix
标题: Uboot中start.S源码的指令级的详尽解析 [打印本页]
作者: crifan 时间: 2011-04-17 23:38
标题: Uboot中start.S源码的指令级的详尽解析
本帖最后由 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, 下载次数: 6597)
-----------------------------------------------------------------------------------------
目录
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.0 | 2011-04-17 | 详细解释了uboot的start.s中的每行代码;添加了相关知识点的详细解释 |
|
|
|
作者: crifan 时间: 2011-04-18 00:22
再啰嗦一句,写这种东西,真的不是一般的累啊。。。
作者: amarant 时间: 2011-04-18 08:55
呵呵,原來在這篇文章裏面全有啊。第一頁留個名
作者: ironfox 时间: 2011-04-19 17:05
赞楼主的分享精神
作者: asp00 时间: 2011-04-19 17:26
学习!!!
作者: yuweixian4230 时间: 2011-04-19 21:26
看帖,回帖
作者: ckelsel 时间: 2011-04-19 22:05
看看先
作者: ChiyuT 时间: 2011-04-19 23:01
强顶,正在头大这个东西。
作者: xxw19840406 时间: 2011-04-21 11:06
下了 回来顶一个
作者: chenrvmldd 时间: 2011-04-21 11:22
回复 1# crifan
crifan兄弟又发好文了呀,顶啊
作者: 醉酒大哥 时间: 2011-04-21 12:26
好人
作者: 醉酒大哥 时间: 2011-04-21 12:29
我靠,再顶一下,楼主简直就是极品
作者: crifan 时间: 2011-04-22 19:11
回复 12# 醉酒大哥
你这是夸人的吗。。。
作者: haizaolan 时间: 2011-04-23 16:43
谢谢你的优秀作品,认真拜读!
作者: aility 时间: 2011-04-24 11:08
支持楼主的经验总结!
作者: chenruiyong007 时间: 2011-08-25 00:32
谢谢楼主分享啊
作者: wsf618 时间: 2011-08-25 10:46
OK
作者: 林生2010 时间: 2011-08-25 12:41
顶一个
作者: litguy 时间: 2011-08-25 17:08
好东西,谢谢分享
作者: zaicichuxian 时间: 2011-09-13 12:38
下了 回来顶一个
作者: 5082126 时间: 2011-10-04 15:52
好贴,学习来......
作者: yuhundehao 时间: 2011-10-08 18:55
crifan兄弟又发好文了呀,顶啊
作者: locom 时间: 2011-10-09 11:08
谢谢分享!
作者: wuqingwei 时间: 2011-10-10 11:34
好东西,收藏了
作者: zy31887493 时间: 2011-12-26 09:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: fzct 时间: 2012-05-22 13:58
好文,感谢楼主分享
作者: xtggbmkk 时间: 2012-05-25 16:06
先顶,再下载!!
作者: gaotao628 时间: 2012-11-20 13:57
楼主辛苦了
作者: kentel 时间: 2012-11-23 11:59
多谢,收藏了:wink:
作者: mekaluo 时间: 2012-11-25 22:09
感谢分享...
楼主好人...
作者: noiplee 时间: 2012-12-06 20:30
最近正在看UBOOT源码啊,看到了很高兴!
作者: cliffordl 时间: 2013-01-05 10:17
回复 1# crifan
顶一下
作者: wxd9199 时间: 2013-04-22 22:18
看了你很多贴子,特意回复下。多谢!
作者: ganbo109 时间: 2013-05-03 14:48
作者: hukee 时间: 2013-06-05 13:34
这种帖子要顶,真正是cpu级别的移植呀,一般都是选择已经支持的cpu类型开发板板子,改外围的ddr频率和flash接口。
作者: lianyq1986 时间: 2013-07-01 13:27
)感谢分享!顶一个!
作者: liaohui198821 时间: 2013-07-05 20:57
crifan兄弟又发好文了呀,顶啊
作者: chaliks 时间: 2013-07-07 08:04
注释写得很详细,很不错的一份Uboot启动过程详解资料,谢谢楼主分享!
作者: SUPERWILL1002 时间: 2013-07-22 13:15
感謝分享 受益頗多唷
作者: wupinlang 时间: 2013-08-06 14:15
谢谢楼主分享!
作者: 虫虫2003 时间: 2013-08-07 00:12
学习一下,感谢LZ
作者: 578391555 时间: 2013-08-14 21:41
最近开始看uboot了,谢谢LZ
作者: sealinux 时间: 2013-08-23 15:03
写的挺详细,顶一个。
作者: Linux-learner 时间: 2013-08-23 19:14
写得确实够细致的,不错!
作者: lwd0702 时间: 2013-08-29 15:09
有时间得看看。
作者: JJJsy 时间: 2013-09-13 20:21
顶一个,谢谢分享....
作者: ggchao 时间: 2013-10-13 14:18
支持一下吧
作者: crifan 时间: 2013-10-17 09:52
hukee 发表于 2013-06-05 13:34
这种帖子要顶,真正是cpu级别的移植呀,一般都是选择已经支持的cpu类型开发板板子,改外围的ddr频率和flash ...
我的目标就是:
自己抽空先去搞懂
然后写教程,让你们也真正自己搞懂
不是只是看看别人的几行移植代码而一头雾水的那种
然后就可以自己做自己想要的事情了
作者: mlinmxf 时间: 2013-12-02 17:46
非常感谢,最近刚开始接触uboot,希望有用了
作者: 求成之路 时间: 2014-04-01 21:48
感谢楼主~回复 1# crifan
作者: _EBull 时间: 2014-05-12 13:57
楼主是好人
作者: 之戈之爱 时间: 2014-10-09 13:51
这样的好东西必须顶,辛苦了。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) |
Powered by Discuz! X3.2 |