系统全面 条分缕析、由浅深地讲解ARM处理器内核知识及周边知识 精华原创 凝结作者多年研发及教学经验,帮助读者深度掌握ARM处理器编程 可学习性 内容丰富、编排合理,是为“萌新学员”准备的豪华“工具包”
售 价:¥
纸质售价:¥70.00购买纸书
6.7
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐

内容提要
前 言
资源与支持
第1章 ARM那些你需要知道的事
1.1 ARM公司大事记
1.2 ARM公司的商业模式和生态系统
1.3 ARM处理器版本命名解析
1.3.1 如何描述ARM处理器的版本号
1.3.2 ARM处理器版本的发展历程
1.4 CPU和SoC的区别及外围设备的概念
1.4.1 CPU和SoC的区别
1.4.2 外围设备
1.5 学习平台的选择
1.5.1 学习平台的选择要求
1.5.2 为什么选择三星S5PV210
1.6 X210开发板介绍
1.7 基于单片机的嵌入式系统和基于复杂操作系统的嵌入式系统的区别
1.7.1 芯片平台对比
1.7.2 片上资源、价格、应用领域上的对比
1.7.3 开发模式对比
1.7.4 技术特征对比
1.7.5 职业发展对比
1.8 嵌入式开发学习和编程语言、英语水平等的关系
1.8.1 嵌入式开发学习和编程语言的关系
1.8.2 嵌入式开发学习和英语水平的关系
1.8.3 嵌入式开发学习和数电、模电的关系
1.8.4 嵌入式开发学习和专业的关系
1.8.5 嵌入式开发学习和个人性格的关系
1.9 嵌入式系统的构成、特点和发展方向
1.9.1 嵌入式系统的构成
1.9.2 嵌入式系统的特点
1.9.3 嵌入式系统的发展方向
1.10 交叉编译
1.10.1 软件开发的两种模式
1.10.2 交叉编译的特点
1.11 CPU的设计原理、地址总线/数据总线/控制总线
1.11.1 CPU的设计原理
1.11.2 地址总线、数据总线和控制总线
1.12 嵌入式辅助开发工具
1.13 习题
第2章 ARM CPU的体系结构与汇编指令
2.1 可编程器件的编程原理
2.2 指令集对CPU的意义
2.3 CISC和RISC
2.4 统一编址和独立编址、冯·诺依曼结构和哈佛结构
2.4.1 I/O与内存的统一编址和独立编址
2.4.2 冯·诺依曼结构和哈佛结构
2.5 软件编程控制硬件的关键——寄存器
2.5.1 寄存器的含义及查看方法
2.5.2 寄存器的分类
2.6 S5PV210的地址映射详解
2.7 CPU的外存储器和接口方式
2.7.1 SoC外存储器分类与介绍
2.7.2 S5PV210支持的外存储器
2.8 S5PV210的启动过程详解
2.8.1 不同计算机系统内存和外存配置的区别
2.8.2 S5PV210启动方式详解
2.8.3 X210开发板启动方式选择
2.9 ARM CPU的编程模式和7种工作模式
2.9.1 ARM CPU的编程模式
2.9.2 ARM CPU的7种工作模式
2.10 ARM CPU的37个寄存器详解
2.11 ARM CPU的异常处理方式简介
2.12 ARM汇编指令集详解
2.12.1 ARM汇编指令集总述
2.12.2 ARM汇编指令集中指令的分类及详细讲解
2.12.3 ARM汇编指令中的伪指令
2.13 习题
第3章 开发板、原理图和数据手册
3.1 开发板配置简介
3.2 资料导读
3.2.1 开发板硬件手册导读
3.2.2 X210核心板、底板原理图导读
3.2.3 S5PV210数据手册
3.3 开发板刷系统
3.3.1 刷机工具简介
3.3.2 开发板刷系统方法介绍
3.4 新开发板X210BV3S
3.5 习题
第4章 GPIO和LED
4.1 交叉编译工具链
4.2 Makefile
4.3 mkv210_image.c
4.3.1 mkv210_image.c的作用
4.3.2 mkv210_image.c代码解析
4.4 编写点亮LED程序前的相关准备工作
4.5 点亮LED
4.6 扩展:反汇编工具objdump
4.7 习题
第5章 SDRAM和重定位
5.1 关闭看门狗
5.2 设置栈和调用C程序
5.3 用汇编语言编写启动代码之开/关iCache
5.4 重定位引入与编程实现
5.4.1 重定位引入和链接脚本
5.4.2 重定位代码实现
5.5 SDRAM初始化
5.5.1 原理图中SDRAM相关部分分析
5.5.2 数据手册中SDRAM相关部分分析
5.5.3 代码实战
5.6 习题
第6章 时钟系统
6.1 SoC时钟系统简介
6.2 S5PV210的时钟系统
6.3 时钟设置的关键寄存器分析
6.4 实现时钟设置代码详解
6.4.1 S5PV210时钟设置的步骤分析
6.4.2 S5PV210时钟设置汇编语言代码分析
6.4.3 S5PV210时钟设置C语言代码分析
6.5 习题
第7章 串口通信
7.1 通信发展史及电子通信涉及的基础概念
7.1.1 通信发展史
7.1.2 电子通信中涉及的概念
7.2 串口通信的基本概念
7.3 串口通信的基本原理
7.4 S5PV210串口通信详解
7.4.1 原理框图与自动流控
7.4.2 3种扩展模式
7.4.3 串口通信中的中断与时钟
7.5 S5PV210串口通信编程实战
7.6 uart stdio的移植介绍
7.7 习题
第8章 按键和CPU中断系统
8.1 按键
8.2 S5PV210的中断体系介绍
8.3 异常向量表的编程处理
8.3.1 访问异常向量表
8.3.2 中断处理过程中汇编代码的使用
8.4 S5PV210中断处理的主要寄存器
8.5 中断处理的代码实现步骤
8.6 按键与外部中断
8.6.1 外部中断寄存器配置
8.6.2 外部中断实现按键
8.7 习题
第9章 定时器、看门狗和实时时钟等
9.1 定时器
9.2 S5PV210中的PWM定时器介绍
9.2.1 S5PV210的PWM定时器原理图简介
9.2.2 预分频器与分频器
9.2.3 TCNT、TCNTB、TCON和TCNTO寄存器功能介绍
9.2.4 自动重载和双缓冲
9.3 PWM波形介绍
9.3.1 什么是PWM
9.3.2 PWM波形的生成原理
9.3.3 输出电平翻转器
9.3.4 死区生成器
9.4 蜂鸣器和PWM定时器编程实战
9.4.1 蜂鸣器的工作原理
9.4.2 原理图和硬件信息
9.4.3 驱动蜂鸣器的PWM定时器代码编写
9.4.4 编写C语言主函数、子函数
9.4.5 修改Makefile
9.5 看门狗
9.5.1 什么是看门狗及看门狗的作用
9.5.2 S5PV210看门狗的结构原理图
9.5.3 看门狗的主要寄存器
9.6 看门狗的编程实战
9.6.1 看门狗产生中断信号功能代码编写
9.6.2 看门狗产生复位信号功能代码编写
9.7 实时时钟介绍
9.7.1 S5PV210实时时钟的结构框图
9.7.2 S5PV210 RTC的主要寄存器
9.7.3 BCD码介绍
9.8 RTC编程实战
9.8.1 编程注意事项
9.8.2 实战步骤详解
9.8.3 示例程序详解
9.9 习题
第10章 SD卡启动
10.1 SD卡的特点和背景知识
10.2 SD卡的编程接口
10.2.1 物理接口
10.2.2 SD协议与SPI协议
10.3 S5PV210的SD卡启动详解
10.3.1 SoC为何要支持SD卡启动
10.3.2 SD卡启动的难点在哪里
10.3.3 SD卡启动流程
10.3.4 SoC支持SD卡启动的秘密
10.3.5 扇区和块的概念
10.3.6 用函数指针方式调用device copy function
10.4 S5PV210的SD卡启动实战
10.4.1 任务:大于16KB的.bin文件使用SD卡启动
10.4.2 代码划分为两部分(BL1和BL2)编写
10.4.3 BL1中的重定位
10.4.4 BL2远跳转
10.5 区别于将代码分为两部分的另一种启动方式
10.5.1 代码分为两部分启动的缺陷
10.5.2 U-Boot的SD卡启动
10.5.3 分析U-Boot的SD卡启动细节
10.6 习题
第11章 外存芯片NAND Flash和iNAND
11.1 NAND Flash的型号和命名
11.1.1 NAND Flash的数据位
11.1.2 NAND Flash的功能框图
11.2 NAND Flash的单元组织:Block和Page
11.2.1 带内数据和带外数据
11.2.2 NAND Flash的地址时序和命令码
11.3 NAND Flash的坏块检查
11.3.1 NAND Flash的页写操作
11.3.2 NAND Flash的擦除和页读操作
11.4 SoC的NAND Flash控制器
11.5 NAND Flash操作代码解析
11.6 iNAND介绍
11.7 SD卡/iNAND硬件接口
11.7.1 SD卡命令相应的操作模式
11.7.2 SD卡体系结构、内部寄存器
11.8 SD/iNAND代码分析
11.8.1 Hsmmc.h头文件CMD×和ACMD×命令码分析
11.8.2 Hsmmc.c文件分析
第12章 I2C通信
12.1 I2C通信介绍
12.2 I2C通信的时序
12.2.1 I2C的空闲态/忙态、起始位/结束位
12.2.2 I2C数据传输格式(数据位和ACK)
12.2.3 数据在总线上的传输协议
12.3 S5PV210的I2C控制器
12.4 X210开发板的板载重力传感器介绍
12.4.1 原理图
12.4.2 重力传感器简介
12.4.3 I2C从设备地址
12.4.4 I2C从设备的通信速率
12.5 I2C的通信流程
12.5.1 I2C的通信流程寄存器分析
12.5.2 重力传感器读/写寄存器流程分析
12.6 I2C通信代码分析
12.7 习题
第13章 A/D转换器
13.1 A/D转换器的引入
13.1.1 模拟量和数字量
13.1.2 什么是A/D转换器
13.1.3 有A/D转换器自然就有D/A转换器
13.2 A/D转换器的主要相关概念
13.2.1 量程
13.2.2 精度
13.2.3 转换速率
13.2.4 A/D转换器的工作时钟框图
13.2.5 A/D转换器的通道数
13.2.6 A/D转换器和电阻式触摸屏的关系
13.3 S5PV210的A/D转换控制器
13.4 硬件设计分析
13.5 软件设计
13.6 程序烧录与调试
13.7 习题
第14章 LCD屏
14.1 LCD简介
14.1.1 什么是LCD
14.1.2 LCD的显示原理和特点
14.1.3 LCD屏的种类
14.1.4 其他类型的显示屏
14.2 LCD设备的接口技术
14.2.1 LCD设备通信接口中的电平转换
14.2.2 RGB接口详解
14.3 LCD的显像原理和相关概念
14.3.1 像素及相关概念
14.3.2 扫描
14.3.3 驱动器和控制器
14.3.4 显示内存(显存)
14.3.5 LCD屏的6个主要时序参数
14.4 颜色在计算机中的表示
14.4.1 计算机中的颜色是离散的
14.4.2 常见像素深度
14.5 S5PV210的LCD控制器
14.5.1 虚拟屏幕叠加
14.5.2 虚拟显示
14.6 LCD编程实战
14.6.1 LCD控制器初始化
14.6.2 显示像素、刷背景、横线竖线和画圆功能的实现
14.6.3 写英文和中文字符
14.6.4 画图
14.7 习题
第15章 触摸屏
15.1 输入设备简介及触摸屏介绍
15.1.1 触摸屏的特点
15.1.2 触摸屏和显示屏的联系与区别
15.2 电阻式触摸屏的原理
15.3 S5PV210的电阻式触摸屏控制器
15.3.1 控制器框图介绍
15.3.2 控制器部件的工作模式选择
15.3.3 控制器的主要寄存器
15.4 电容式触摸屏的原理
15.4.1 人体感知电流
15.4.2 专用电路计算坐标
15.4.3 多个区块支持多点触摸
15.4.4 对外提供I2C的访问接口
15.5 FT5x06电容触摸IC简介
15.6 习题
第16章 Shell原理和问答机制引入
16.1 理解Shell
16.1.1 什么是Shell
16.1.2 Shell的运行原理
16.1.3 Shell应用举例
16.2 从零写最简单的Shell
16.2.1 使用printf和scanf函数做输入回显
16.2.2 定义简单命令集
16.3 将简易Shell移植到开发板中
16.3.1 工程选定、文件复制、Makefile编写
16.3.2 printf和scanf函数的移植
16.3.3 main.c和其余文件
16.3.4 编译下载和调试验证
16.4 定义标准命令集及解析
16.4.1 添加cmd_parser和cmd_exec函数
16.4.2 自己动手写strcmp和strcpy函数
16.4.3 定义命令集、添加shell.h头文件
16.4.4 修改代码
16.4.5 烧录与测试
16.5 添加第一个命令
16.5.1 命令任务分析
16.5.2 命令解析与命令执行
16.5.3 修改代码
16.5.4 第一个命令的测试
16.6 添加其他命令
16.6.1 添加pwm.c文件
16.6.2 添加adc.c命令文件
16.6.3 移植printf函数
16.6.4 添加lcd.c文件
16.6.5 修改代码
16.6.6 编译测试
16.7 实现开机倒计时自动执行命令
16.7.1 添加计时功能
16.7.2 修改代码
16.7.3 测试运行
16.7.4 构建BL1和BL2烧录
16.8 初步实现环境变量
16.8.1 添加env.c文件对环境变量进行设置、修改
16.8.2 修改代码
16.8.3 测试代码
16.9 习题
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜