内容简介
第1章 计算机漫谈
1.1日益缤彩纷呈的Raspberry
1.2片上系统
1.3一台令人激动的信用卡般大小的计算机
1.4 Raspberry Pi的功能
1.5 Raspberry Pi板
1.5.1 GPIO引脚
1.5.2状态LED
1.5.3 USB插口
1.5.4以太网连接
1.5.5音频输出
1.5.6复合视频
1.5.7 CSI摄像头模块连接器
1.5.8 HDMI
1.5.9 micro USB电源
1.5.10存储卡
1.5.11 DSI显示连接
1.5.12装配孔
1.5.13芯片
1.6未来
第2章 计算概述
2.1计算机与烹饪
2.1.1佐料与数据
2.1.2基本操作
2.2按计划执行的盒子
2.2.1执行和知晓
2.2.2程序就是数据
2.2.3存储器
2.2.4寄存器
2.2.5系统总线
2.2.6指令集
2.3电平、数字及其表示
2.3.1二进制:以1和0表示
2.3.2手指的局限性
2.3.3数量、编号和0
2.3.4用于二进制速记的十六进制
2.3.5执行二进制和十六进制运算
2.4操作系统:幕后老板
2.4.1操作系统的功能
2.4.2向内核致敬
2.4.3多核
第3章 电子存储器
3.1存储器先于计算机而存在
3.2旋转磁存储器(Rotating Magnetic Memory)
3.3磁芯存储器
3.3.1磁芯存储器的工作过程
3.3.2存储器访问时间
3.4静态随机访问存储器(SRAM)
3.5地址线和数据线
3.6由存储器芯片构建存储器系统
3.7动态随机访问存储器(DRAM)
3.7.1 DRAM的工作原理
3.7.2同步DRAM和异步DRAM
3.7.3 SDRAM列、行、Bank、Rank和DIMM
3.7.4 DDR、 DDR2、 DDR3和DDR4 SDRAM
3.7.5纠错码存储器
3.8 Raspberry Pi的存储器系统
3.8.1节能性
3.8.2球栅阵列封装
3.9缓存
3.9.1访问的局部性
3.9.2缓存层级
3.9.3缓存行和缓存映射
3.9.4直接映射
3.9.5相联映射
3.9.6组相联高速缓存
3.9.7回写缓存到存储器
3.10虚拟存储器
3.10.1虚拟存储器概览
3.10.2虚拟存储器到物理存储器的映射
3.10.3深入了解存储器管理单元
3.10.4多级页表和TLB
3.10.5 Raspberrry Pi的交换问题
3.10.6 Raspberry Pi虚拟存储器
第4章 ARM处理器与片上系统
4.1急速缩小的CPU
4.1.1微处理器
4.1.2晶体管预算
4.2数字逻辑基础
4.2.1逻辑门
4.2.2触发器和时序逻辑
4.3 CPU内部
4.3.1分支与标志
4.3.2系统栈
4.3.3系统时钟和执行时间
4.3.4流水线技术
4.3.5流水线技术详解
4.3.6深入流水线以及流水线阻塞
4.3.7 ARM 11中的流水线
4.3.8超标量执行
4.3.9基于SIMD的更多并行机制
4.3.10字节序
4.4 CPU再认识:CISC与RISC
4.4.1 RISC的历史
4.4.2扩展的寄存器文件
4.4.3加载/存储架构
4.4.4正交的机器指令
4.4.5独立的指令和数据高速缓存
4.5源于艾康的ARM
4.5.1微架构、内核及家族
4.5.2出售设计许可而非成品芯片
4.6 ARM 11
4.6.1 ARM指令集
4.6.2处理器模式
4.6.3模式和寄存器
4.6.4快速中断
4.6.5软件中断
4.6.6中断优先级
4.6.7条件指令执行
4.7协处理器
4.7.1 ARM协处理器接口
4.7.2系统控制协处理器
4.7.3向量浮点协处理器
4.7.4仿真协处理器
4.8 ARM Cortex
4.8.1多发和乱序执行
4.8.2 Thumb 2
4.8.3 Thumb EE
4.8.4 big.LITTLE
4.8.5 NEON SIMD协处理器
4.8.6 ARMv 8和64位计算
4.9片上系统
4.9.1博通BCM2835 SoC
4.9.2第二代和第三代博通SoC设备
4.9.3 VLSI芯片原理
4.9.4流程、制程工艺和掩膜
4.9.5 IP:单元、宏单元、内核
4.9.6硬IP和软IP
4.9.7平面规划、布局和布线
4.9.8片上通信的标准:AMBA
第5章 程序设计
5.1程序设计概述
5.1.1软件开发过程
5.1.2瀑布、螺旋与敏捷
5.1.3二进制程序设计
5.1.4汇编语言和助记符
5.1.5高级语言
5.1.6花样泛滥的后BASIC时代
5.1.7程序设计术语
5.2本地代码编译器的工作原理
5.2.1预处理
5.2.2词法分析
5.2.3语义分析
5.2.4生成中间代码
5.2.5优化
5.2.6生成目标代码
5.2.7 C编译:一个具体示例
5.2.8链接目标代码文件到可执行文件
5.3纯文本解释程序
5.4字节码解释语言
5.4.1 p-code
5.4.2 Java
5.4.3即时编译(JIT)
5.4.4 Java之外的字节码和JIT编译
5.4.5 Android、 Java和Dalvik
5.5数据构建块
5.5.1标识符、关键字、符号和操作符
5.5.2数值、文本和命名常量
5.5.3变量、表达式和赋值
5.5.4类型和类型定义
5.5.5静态和动态类型
5.5.6补码和IEEE 754
5.6代码构建块
5.6.1控制语句和复合语句
5.6.2 if/then/else
5.6.3 switch和case
5.6.4 repeat循环
5.6.5 while循环
5.6.6 for循环
5.6.7 break和continue语句
5.6.8函数
5.6.9局部性和作用域
5.7面向对象程序设计
5.7.1封装
5.7.2继承
5.7.3多态
5.7.4 OOP小结
5.8 GNU编译器工具集概览
5.8.1作为编译器和生成工具的gcc
5.8.2使用Linux make
第6章 非易失性存储器
6.1打孔卡和磁带
6.1.1打孔卡
6.1.2磁带数据存储器
6.1.3磁存储器的黎明
6.2磁记录和编码方案
6.2.1磁通跃迁
6.2.2垂直记录
6.3磁盘存储器
6.3.1柱面、磁轨和扇区
6.3.2低级格式化
6.3.3接口和控制器
6.3.4软盘驱动器
6.4分区和文件系统
6.4.1主分区和扩展分区
6.4.2文件系统和高级格式化
6.4.3未来:GUID分区表(GPT)
6.4.4 Raspberry Pi SD卡的分区
6.5光盘
6.5.1源自CD的格式
6.5.2源自DVD的格式
6.6虚拟硬盘
6.7 Flash存储器
6.7.1 ROM、 PROM和EPROM
6.7.2 Flash与EEPROM
6.7.3单级与多级存储
6.7.4 NOR Flash与NAND Flash
6.7.5损耗平衡及Flash转换层
6.7.6碎片回收和TRIM
6.7.7 S D卡
6.7.8 eMMC
6.7.9非易失性存储器的未来
第7章 有线和无线以太网
7.1网络互连OSI参考模型
7.1.1应用层
7.1.2表示层
7.1.3会话层
7.1.4传输层
7.1.5网络层
7.1.6数据链路层
7.1.7物理层
7.2以太网
7.2.1粗缆以太网和细缆以太网
7.2.2以太网的基本构想
7.2.3冲突检测和规避
7.2.4以太网编码系统
7.2.5 PAM-5编码
7.2.6 1 0BASE-T和双绞线
7.2.7从总线拓扑结构到星型拓扑结构
7.2.8交换以太网
7.3路由器和互联网
7.3.1名称与地址
7.3.2 IP地址和TCP端口
7.3.3本地IP地址和DHCP
7.3.4网络地址转换
7.4 Wi-Fi
7.4.1标准中的标准
7.4.2面对现实世界
7.4.3正在使用的Wi-Fi设备
7.4.4基础设施网络与Ad Hoc网络
7.4.5 Wi-F1分布式介质访问
7.4.6载波监听和隐藏结点问题
7.4.7分片
7.4.8调幅、调相和QAM
7.4.9扩频技术
7.4.10 Wi-Fi调制和编码细节
7.4.11 Wi-Fi连接的实现原理
7.4.12 Wi-Fi安全性
7.4.13 Raspberry Pi上的Wi-Fi
7.4.14更多的网络
第8章 操作系统
8.1操作系统简介
8.1.1操作系统的历史
8.1.2操作系统基础
8.2内核:操作系统的核心主导者
8.2.1操作系统控制
8.2.2模式
8.2.3存储器管理
8.2.4虚拟存储器
8.2.5多任务处理
8.2.6磁盘访问和文件系统
8.2.7设备驱动程序
8.3操作系统的使能器和助手
8.3.1唤醒操作系统
8.3.2固件
8.4 Raspberry Pi上的操作系统
8.4.1 NOOBS
8.4.2第三方操作系统
8.4.3其他可用的操作系统
第9章 视频编解码器和视频压缩
9.1第一个视频编解码器
9.1.1利用眼睛
9.1.2利用数据
9.1.3理解频率变换
9.1.4使用无损编码技术
9.2时移世易
9.2.1 MPEG的最新标准
9.2.2 H.265
9.3运动搜索
9.3.1视频质量
9.3.2处理能力
第10章 3D图形
10.1 3D图形简史
10.1.1图形用户界面(Graphical User Interface, GUI)
10.1.2视频游戏中的3D图形
10.1.3个人计算和显卡
10.1.4两个竞争标准
10.2 OpenGL图形管线
10.2.1几何规范和属性
10.2.2几何变换
10.2.3光照和材质
10.2.4图元组装和光栅化
10.2.5像素处理(片段着色)
10.2.6纹理
10.3现代图形硬件
10.3.1瓦片渲染
10.3.2几何拒绝
10.3.3着色
10.3.4缓存
10.3.5 Raspberry Pi GPU
10.4 Open VG
10.5通用GPU
10.5.1异构体系结构
10.5.2 OpenCL
第11章 音频
11.1现在能听到我的声音吗?
11.1.1 MIDI
11.1.2声卡
11.2模拟与数字
11.3声音和信号处理
11.3.1编辑
11.3.2压缩
11.3.3使用特效录制
11.3.4编码和解码通信信
11.4 1位DAC
11.5 I2S
11.6 Raspberry Pi声音输入/输出
11.6.1音频输出插孔
11.6.2 HDMI
11.7 Raspberry Pi的声音
11.7.1 Raspberry Pi板载声音
11.7.2处理Raspberry Pi的声音
第12章 输入/输出
12.1输入/输出简介
12.2 I/O使能器
12.2.1通用串行总线
12.2.2 USB有源集线器
12.2.3以太网
12.2.4通用异步收发器
12.2.5小型计算机系统接口
12.2.6 PATA
12.2.7 SATA
12.2.8 RS-232串口
12.2.9 HDMI
12.2.10 12S
12.2.11 I 2C
12.2.12 Raspberry Pi显示器、摄像头接口和JTAG
12.3 Raspberry Pi GPIO
12.3.1 GPIO概述以及博通SoC
12.3.2接触GPIO
12.3.3可编程GPIO
12.3.4可选模式
12.3.5 GPIO实验的简单方法