编辑: 摇摆白勺白芍 | 2019-07-15 |
14 1.2.1. pWTCON INTMOD INTMSK INTSUBMSK CLKDIVN
14 1.2.2. ldr pWTCON
15 1.2.3. mov
17 1.2.4. str
17 1.3. 关闭中断
19 1.3.1. set INTMSK
19 1.3.2. set INTSUBMSK
20 1.3.3. set CLKDIVN
21 1.3.4. bl
22 1.4. 设置堆栈sp指针
23 1.4.1. stack_setup
23 1.4.2. calc stack
25 1.4.3. bl clock_init
26 1.4.4. adr
27 1.4.5. clear_bss
29 1.4.6. cal armboot size from _armboot_start
29 1.4.7. cal armboot size from CopyCode2Ram
31 1.5. 清除bss段33 1.5.1. clear_bss
33 1.5.2. clear css loop
33 1.5.3. ldr pc
33 1.5.4. cpu_init_crit
34 1.5.5. disable MMU
39 1.5.6. clear bits
40 1.5.7. bl lowlevel_init
43 1.6. 异常中断处理
43 1.6.1. macros stmia
43 1.6.2. cal reg value and store
47 1.6.3. irq_save_user_regs irq_restore_user_regs
48 1.6.4. exception handlers
50 1.6.5. Launch
52 1.6.6. int_return
53 2. start.S的总结
55 Uboot中start.S源码 的指令级的详尽解析 v 2.1. start.S各个部分的总结
55 2.2. Uboot中的内存的Layout
56 3. 相关知识点详解
58 3.1. 如何查看C或汇编的源代码所对应的真正的汇编代码
58 3.2. uboot初始化中,为何要设置CPU为SVC模式而不是设置为其他模式
59 3.3. 什么是watchdog + 为何在要系统初始化的时候关闭watchdog
61 3.3.1. 什么是watchdog
61 3.3.2. 为何在要系统初始化的时候关闭watchdog
61 3.4. 为何ARM7中PC=PC+8
62 3.4.1. 为何ARM9和ARM7一样,也是PC=PC+8
63 3.5. AMR寄存器的别名 + APCS
69 3.5.1. ARM中的寄存器的别名
69 3.5.2. 什么是APCS
71 3.6. 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
71 3.6.1. 保存现场/上下文
71 3.6.1.1. 什么叫做上下文context
71 3.6.2. 传递参数
72 3.6.3. 举例分析C语言函数调用是如何使用堆栈的
72 3.7. 关于为何不直接用mov指令,而非要用adr伪指令
73 3.8. mov指令的操作数的取值范围到底是多少
74 3.9. 汇编学习总结记录
77 3.9.1. 汇编中的标号=C中的标号
77 3.9.2. 汇编中的跳转指令=C中的goto
77 3.9.3. 汇编中的.globl=C语言中的extern
78 3.9.4. 汇编中用bl指令和mov pc,lr来实现子函数调用和返回
78 3.9.5. 汇编中的对应位置有存储值的标号 = C语言中的指针变量
79 3.9.6. 汇编中的ldr+标号,来实现C中的函数调用
81 3.9.7. 汇编中设置某个寄存器的值或给某个地址赋值
82 参考书目
85 vi 插图清单 1.1. LDR指令的语法
4 1.2. CPSR/SPSR的位域结构
11 1.3. pWTCON
14 1.4. INTMOD
14 1.5. INTMSK
15 1.6. INTSUBMSK
15 1.7. CLKDIVN
15 1.8. WTCON寄存器的位域
18 1.9. INTMSK寄存器的位域
20 1.10. INTSUBMSK寄存器的位域
21 1.11. INTSUBMSK寄存器的位域
22 1.12. macro的语法
45 1.13. LDM/STM的语法
45 1.14. 条件码的含义
46 2.1. Uboot中的内存的Layout
57 3.1. AMR7三级流水线
62 3.2. ARM7三级流水线状态
62 3.3. ARM7三级流水线示例
63 3.4. ARM7三级流水线 vs ARM9五级流水线
64 3.5. ARM7三级流水线到ARM9五级流水线的映射
64 3.6. ARM9的五级流水线示例
65 3.7. ARM9的五级流水线中为何PC=PC+8
67 3.8. ARM Application Procedure Call Standard (AAPCS)69 3.9. 数据处理指令的指令格式
75 vii 表格清单 1.1. global的语法
2 1.2. .word的语法
5 1.3. balignl的语法
6 1.4. CPSR Bitfield
11 1.5. CPSR=0xD3的位域及含义
13 1.6. 控制寄存器1的位域含义
40 1.7. 时钟模式