图书介绍
深入理解BOOTLOADERpdf电子书版本下载
- 胡尔佳编著 著
- 出版社: 北京:机械工业出版社
- ISBN:711148570X
- 出版时间:2015
- 标注页数:268页
- 文件大小:29MB
- 文件页数:278页
- 主题词:单片微型计算机
PDF下载
下载说明
深入理解BOOTLOADERPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 BootLoader的概念 1
1.1 BootLoader的角色 1
1.2 BootLoader的来历 2
1.3 BootLoader的概念 6
1.3.1 MCU下的BootLoader 10
1.3.2 嵌入式ARM和Linux下的BootLoader 17
1.3.3 PC下的引导流程 18
1.4 本章小结 20
第2章 Linux开发环境 21
2.1 编辑器Vim 21
2.1.1 Vim介绍 22
2.1.2 Vim的两个基本模式 22
2.1.3 Vim的两个常用模式 24
2.1.4 Vim的启动与退出 25
2.1.5 Vim下光标的移动 26
2.1.6 Vim下的复制、粘贴和删除 28
2.1.7 Vim下的撤销和重复 28
2.1.8 Vim下的查找和替换 28
2.1.9 Vim下的文件恢复 29
2.1.10 Vim下的插件 29
2.2 编译器GCC和交叉编译器 30
2.2.1 GCC的编译流程 30
2.2.2 GCC的常用编译选项 31
2.2.3 交叉编译器 35
2.3 常用shell命令和脚本 37
2.3.1 find命令 38
2.3.2 grep命令 42
2.3.3 管道与重定向 46
2.4 工程管理Make和Makefile 49
2.4.1 Make和Makefile 49
2.4.2 Makefile中的变量 52
2.4.3 自动推导规则 53
2.4.4 嵌套的Makefile 53
2.4.5 Make伪目标 54
2.4.6 自动化变量 56
2.4.7 Make的内嵌函数 56
2.5 本章小结 60
第3章 ARM体系结构 61
3.1 处理器模式 61
3.2 异常 62
3.3 ARM寄存器 63
3.4 通用寄存器 64
3.4.1 未分组的寄存器:R0~R7 65
3.4.2 分组的寄存器:R8~R14 65
3.4.3 寄存器R15:程序计数器 66
3.5 程序状态寄存器 66
3.5.1 PSR位的类型 66
3.5.2 条件标志位 67
3.5.3 中断禁止位 68
3.5.4 模式位 68
3.6 本章小结 68
第4章 ARM指令集 69
4.1 数据处理指令 69
4.2 分支指令 73
4.3 软中断指令 74
4.4 程序状态寄存器指令 75
4.5 协处理器指令 76
4.6 加载常量的伪指令 78
4.7 本章小结 78
第5章 ARM寻址模式 79
5.1 寻址模式1——数据处理指令的寻址模式 79
5.1.1 编码格式 80
5.1.2 移位器操作数 80
5.1.3 数据处理操作——立即数 81
5.1.4 数据处理操作——寄存器 82
5.1.5 数据处理操作——立即数的逻辑左移 83
5.1.6 数据处理操作——寄存器的逻辑左移 84
5.1.7 数据处理操作——立即数的逻辑右移 85
5.1.8 数据处理操作——寄存器的逻辑右移 85
5.1.9 数据处理操作——立即数的算术右移 86
5.1.10 数据处理操作——寄存器的算术右移 87
5.1.11 数据处理操作——立即数的循环右移 88
5.1.12 数据处理操作——寄存器的循环右移 89
5.1.13 数据处理操作——扩展的循环右移 90
5.2 寻址模式2——字或无符号字节的load/store指令 90
5.2.1 编码格式 91
5.2.2 立即数偏移 92
5.2.3 寄存器偏移 93
5.2.4 比例寄存器偏移 94
5.2.5 立即数的前变址寻址 95
5.2.6 寄存器的前变址寻址 96
5.2.7 比例寄存器的前变址寻址 97
5.2.8 立即数的后变址寻址 99
5.2.9 寄存器的后变址寻址 100
5.2.10 比例寄存器的后变址寻址 101
5.3 寻址模式3——杂类load/store指令的寻址方式 103
5.3.1 编码格式 103
5.3.2 杂类load/store——立即数偏移 104
5.3.3 杂类load/store——寄存器偏移 105
5.3.4 杂类load/store——立即数的前变址寻址 106
5.3.5 杂类load/store——寄存器的前变址寻址 107
5.3.6 杂类load/store——立即数的后变址寻址 108
5.3.7 杂类load/store——寄存器的后变址寻址 109
5.4 寻址模式4——批量load/store 110
5.4.1 编码格式 110
5.4.2 批量load/store——执行后增加 111
5.4.3 批量load/store——执行前增加 112
5.4.4 批量load/store——执行后减少 112
5.4.5 批量load/store——执行前减少 113
5.4.6 用于栈操作的批量load/store 114
5.5 寻址模式5——协处理器的load/store 115
5.5.1 编码格式 115
5.5.2 协处理器的load/store——立即数偏移 116
5.5.3 协处理器的load/store——立即数的前变址寻址 117
5.5.4 协处理器的load/store——立即数的后变址寻址 118
5.5.5 协处理器的load/store——无索引 119
5.6 本章小结 119
第6章 编译和链接 120
6.1 ELF文件结构描述 122
6.2 段表 128
6.3 符号表结构 133
6.4 存储空间分配 138
6.4.1 简单的存储布局 138
6.4.2 实际采用的空间布局 139
6.5 重定位信息 140
6.5.1 重定位表项 140
6.5.2 重定位类型 142
6.6 静态链接和重定位 143
6.6.1 符号和符号表 144
6.6.2 符号解析 145
6.6.3 重定位 146
6.7 本章小结 150
第7章 链接脚本 151
7.1 链接脚本的基本概念 152
7.2 链接脚本格式 152
7.3 简单的链接脚本示例 153
7.4 简单的链接脚本命令 154
7.4.1 入口点 154
7.4.2 文件命令 155
7.4.3 格式命令 156
7.4.4 区域别名 157
7.4.5 杂类命令 159
7.5 为符号分配值 160
7.5.1 简单的分配 161
7.5.2 HIDDEN 161
7.5.3 PROVIDE 162
7.5.4 PROVIDE HIDDEN 162
7.5.5 源代码引用 162
7.6 段命令 164
7.6.1 输出段描述 164
7.6.2 输出段名称 165
7.6.3 输出段地址 165
7.6.4 输入段描述 166
7.6.5 输出段数据 171
7.6.6 输出段关键字 172
7.6.7 输出段丢弃 172
7.6.8 输出段属性 172
7.6.9 覆盖描述 175
7.7 内存命令 177
7.8 链接脚本的表达式 178
7.8.1 常量 178
7.8.2 符号常量 179
7.8.3 符号名称 179
7.8.4 孤立的段 179
7.8.5 位置计数器 180
7.8.6 运算符 182
7.8.7 赋值 183
7.8.8 内建函数 183
7.9 本章小结 187
第8章 Linux下开发流水灯 188
8.1 GNU ARM汇编简介 188
8.2 流水灯的硬件描述 191
8.3 流水灯的汇编实现 193
8.4 流水灯的编译和链接 195
8.5 本章小结 196
第9章 U-Boot代码的分析 197
9.1 U-Boot简介 197
9.2 U-Boot目录结构 198
9.3 U-Boot配置和编译 200
9.4 U-Boot代码分析 207
9.4.1 SPL代码追踪 208
9.4.2 U-Boot代码追踪 233
9.5 本章小结 245
第10章 实现简单的BootLoader 246
10.1 STM32下的BootLoader设计 246
10.2 硬件平台pcDuino简介 251
10.2.1 pcDuino nano配置 252
10.2.2 pcDuino nano的接口和外设 253
10.2.3 平台和主芯片介绍 254
10.3 三种方式实现代码复制和跳转 255
10.3.1 方式一 255
10.3.2 方式二 258
10.3.3 方式三 259
10.4 实现BootLoader 261
10.4.1 广义上的BootLoader 261
10.4.2 如何引导Linux 264
10.4.3 引导代码实现 266
10.4.4 BootLoader引导Linux总结 267
10.5 本章小结 267