深入理解BootLoader

深入理解BootLoader

作者:胡尔佳

出版社:机械工业

出版年:2015年12月

ISBN:9787111485704

所属分类:教辅教材

书刊介绍

《深入理解BootLoader》内容简介

BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射,从而将系统的软硬件环境设置成一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
胡尔佳,编著

作品目录

前言
第1章:BootLoader的概念
1.1、BootLoader的角色
1.2、BootLoader的来历
1.3、BootLoader的概念
1.3.1、MCU下的BootLoader
1.3.2、嵌入式ARM和Linux下的BootLoader
1.3.3、PC下的引导流程
1.4、本章小结
第2章:Linux开发环境
2.1、编辑器Vim
2.1.1、Vim介绍
2.1.2、Vim的两个基本模式
2.1.3、Vim的两个常用模式
2.1.4、Vim的启动与退出
2.1.5、Vim下光标的移动
2.1.6、Vim下的复制、粘贴和删除
2.1.7、Vim下的撤销和重复
2.1.8、Vim下的查找和替换
2.1.9、Vim下的文件恢复
2.1.10、Vim下的插件
2.2、编译器GCC和交叉编译器
2.2.1、GCC的编译流程
2.2.2、GCC的常用编译选项
2.2.3、交叉编译器
2.3、常用shell命令和脚本
2.3.1、find命令
2.3.2、grep命令
2.3.3、管道与重定向
2.4、工程管理Make和Makefile
2.4.1、Make和Makefile
2.4.2、Makefile中的变量
2.4.3、自动推导规则
2.4.4、嵌套的Makefile
2.4.5、Make伪目标
2.4.6、自动化变量
2.4.7、Make的内嵌函数
2.5、本章小结
第3章:ARM体系结构
3.1、处理器模式
3.2、异常
3.3、ARM寄存器
3.4、通用寄存器
3.4.1、未分组的寄存器:R0~R7、3.4.2、分组的寄存器:R8~R14、3.4.3、寄存器R15:程序计数器
3.5、程序状态寄存器
3.5.1、PSR位的类型
3.5.2、条件标志位
3.5.3、中断禁止位
3.5.4、模式位
3.6、本章小结
第4章:ARM指令集
4.1、数据处理指令
4.2、分支指令
4.3、软中断指令
4.4、程序状态寄存器指令
4.5、协处理器指令
4.6、加载常量的伪指令
4.7、本章小结
第5章:ARM寻址模式
5.1、寻址模式1——数据处理指令的寻址模式
5.1.1、编码格式
5.1.2、移位器操作数
5.1.3、数据处理操作——立即数
5.1.4、数据处理操作——寄存器
5.1.5、数据处理操作——立即数的逻辑左移
5.1.6、数据处理操作——寄存器的逻辑左移
5.1.7、数据处理操作——立即数的逻辑右移
5.1.8、数据处理操作——寄存器的逻辑右移
5.1.9、数据处理操作——立即数的算术右移
5.1.10、数据处理操作——寄存器的算术右移
5.1.11、数据处理操作——立即数的循环右移
5.1.12、数据处理操作——寄存器的循环右移
5.1.13、数据处理操作——扩展的循环右移
5.2、寻址模式2——字或无符号字节的load/store指令
5.2.1、编码格式
5.2.2、立即数偏移
5.2.3、寄存器偏移
5.2.4、比例寄存器偏移
5.2.5、立即数的前变址寻址
5.2.6、寄存器的前变址寻址
5.2.7、比例寄存器的前变址寻址
5.2.8、立即数的后变址寻址
5.2.9、寄存器的后变址寻址
5.2.10、比例寄存器的后变址寻址
5.3、寻址模式3——杂类load/store指令的寻址方式
5.3.1、编码格式
5.3.2、杂类load/store——立即数偏移
5.3.3、杂类load/store——寄存器偏移
5.3.4、杂类load/store——立即数的前变址寻址
5.3.5、杂类load/store——寄存器的前变址寻址
5.3.6、杂类load/store——立即数的后变址寻址
5.3.7、杂类load/store——寄存器的后变址寻址
5.4、寻址模式4——批量load/store
5.4.1、编码格式
5.4.2、批量load/store——执行后增加
5.4.3、批量load/store——执行前增加
5.4.4、批量load/store——执行后减少
5.4.5、批量load/store——执行前减少
5.4.6、用于栈操作的批量load/store
5.5、寻址模式5——协处理器的load/store
5.5.1、编码格式
5.5.2、协处理器的load/store——立即数偏移
5.5.3、协处理器的load/store——立即数的前变址寻址
5.5.4、协处理器的load/store——立即数的后变址寻址
5.5.5、协处理器的load/store——无索引
5.6、本章小结
第6章:编译和链接
6.1、ELF文件结构描述
6.2、段表
6.3、符号表结构
6.4、存储空间分配
6.4.1、简单的存储布局
6.4.2、实际采用的空间布局
6.5、重定位信息
6.5.1、重定位表项
6.5.2、重定位类型
6.6、静态链接和重定位
6.6.1、符号和符号表
6.6.2、符号解析
6.6.3、重定位
6.7、本章小结
第7章:链接脚本
7.1、链接脚本的基本概念
7.2、链接脚本格式
7.3、简单的链接脚本示例
7.4、简单的链接脚本命令
7.4.1、入口点
7.4.2、文件命令
7.4.3、格式命令
7.4.4、区域别名
7.4.5、杂类命令
7.5、为符号分配值
7.5.1、简单的分配
7.5.2、HIDDEN
7.5.3、PROVIDE
7.5.4、PROVIDE_HIDDEN
7.5.5、源代码引用
7.6、段命令
7.6.1、输出段描述
7.6.2、输出段名称
7.6.3、输出段地址
7.6.4、输入段描述
7.6.5、输出段数据
7.6.6、输出段关键字
7.6.7、输出段丢弃
7.6.8、输出段属性
7.6.9、覆盖描述
7.7、内存命令
7.8、链接脚本的表达式
7.8.1、常量
7.8.2、符号常量
7.8.3、符号名称
7.8.4、孤立的段
7.8.5、位置计数器
7.8.6、运算符
7.8.7、赋值
7.8.8、内建函数
7.9、本章小结
第8章:Linux下开发流水灯
8.1、GNU
ARM汇编简介
8.2、流水灯的硬件描述
8.3、流水灯的汇编实现
8.4、流水灯的编译和链接
8.5、本章小结
第9章:U-Boot代码的分析
9.1、U-Boot简介
9.2、U-Boot目录结构
9.3、U-Boot配置和编译
9.4、U-Boot代码分析
9.4.1、SPL代码追踪
9.4.2、U-Boot代码追踪
9.5、本章小结
第10章:实现简单的BootLoader
10.1、STM32下的BootLoader设计
10.2、硬件平台pcDuino简介
10.2.1、pcDuino
nano配置
10.2.2、pcDuino
nano的接口和外设
10.2.3、平台和主芯片介绍
10.3、三种方式实现代码复制和跳转
10.3.1、方式一
10.3.2、方式二
10.3.3、方式三
10.4、实现BootLoader
10.4.1、广义上的BootLoader
10.4.2、如何引导Linux
10.4.3、引导代码实现
10.4.4、BootLoader引导Linux总结
10.5、本章小结

相关推荐

微信二维码