图书介绍

嵌入式软件设计基础 基于ARM Cortex-M3 原书第2版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

嵌入式软件设计基础 基于ARM Cortex-M3 原书第2版
  • (美)刘易斯(LewisD.W.)著;陈文智等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111441762
  • 出版时间:2013
  • 标注页数:192页
  • 文件大小:37MB
  • 文件页数:206页
  • 主题词:微处理器-系统设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

嵌入式软件设计基础 基于ARM Cortex-M3 原书第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 导论1

1.1 什么是嵌入式系统1

1.2 嵌入式软件设计的目标有什么独特性3

1.3 什么是实时系统4

1.4 什么是多线程4

1.5 嵌入式处理器到底有多强大4

1.6 如何使用编程语言5

1.7 构建嵌入式应用有什么不同之处6

1.8 典型的嵌入式程序有多大7

习题7

第2章 数的表示9

2.1 固定精度二进制数9

2.2 按位计数制10

2.2.1 二进制到十进制的转换11

2.2.2 十进制到二进制的转换11

2.2.3 十六进制:二进制的简写13

2.2.4 固定精度、反转与溢出14

2.3 整数的二进制表示14

2.3.1 带符号整数15

2.3.2 同一数量级的正数和负数表示15

2.3.3 解释2的补码的值16

2.3.4 改变具有整数和小数部分的数的符号17

2.3.5 二进制加减法17

2.3.6 表示范围与溢出19

2.4 实数的二进制表示19

2.4.1 浮点表示的实数19

2.4.2 定点表示的实数21

2.5 文本的ASCII码表示22

2.6 二进制编码的十进制23

习题24

第3章 实现算术运算27

3.1 2的补码与硬件复杂度27

3.2 乘法与除法29

3.2.1 有符号与无符号乘法29

3.2.2 通过对2的移位来实现乘或者除29

3.2.3 乘以任意常量30

3.2.4 除以任意常量31

3.3 定点实数的算术运算31

3.3.1 使用标准16.1 6格式的定点数33

3.3.2 使用标准32.3 2格式的定点数34

3.3.3 32.3 2定点实数乘法34

3.3.4 实例:4.4 定点实数乘法36

习题37

第4章 C的整数类型及其使用39

4.1 整数数据类型39

4.2 布尔数据类型42

4.3 混合数据类型43

4.4 内存中的位操作43

4.4.1 测试位45

4.4.2 设置、清除与反转位45

4.4.3 提取位46

4.4.4 插入位46

4.5 I/O端口的位操作47

4.5.1 只写I/O设备47

4.5.2 基于读和写的I/O设备48

4.5.3 基于串行访问的I/O设备49

4.5.4 基于写入数据位的I/O设备49

4.6 访问内存映射的I/O设备50

4.6.1 使用指针访问数据50

4.6.2 数组、指针和取地址操作符51

4.7 结构体51

4.7.1 封装的结构体52

4.7.2 位域54

4.8 变量访问54

4.8.1 获取对象的地址55

4.8.2 使用联合体56

习题56

第5章 汇编程序设计Ⅰ:计算机组成60

5.1 内存61

5.2 中央处理单元64

5.2.1 其他寄存器65

5.2.2 取指-执行周期65

5.3 输入/输出67

5.4 ARM Cortex-M3 v7M体系结构概述67

5.4.1 内部组成68

5.4.2 指令流水线69

5.4.3 存储模型70

5.4.4 位带71

5.5 ARM汇编语言72

5.5.1 指令格式与操作数72

5.5.2 将汇编翻译为二进制73

习题74

第6章 汇编程序设计Ⅱ:数据操作77

6.1 将常量装入寄存器77

6.2 将内存数据装入寄存器77

6.3 数据从寄存器存入内存79

6.4 将简单的C赋值语句转换为ARM汇编代码80

6.5 内存地址计算81

6.6 内存寻址实例81

6.6.1 将C指针表达式翻译为汇编代码82

6.6.2 将C下标表达式翻译为汇编代码83

6.6.3 将结构体引用翻译为汇编代码83

6.7 栈指令84

6.8 数据处理指令85

6.8.1 在APSR中更新标识85

6.8.2 算术运算指令85

6.8.3 位操作指令86

6.8.4 移位指令87

6.8.5 位域操作指令88

6.8.6 混合位、字节和半字指令89

习题90

第7章 汇编程序设计Ⅲ:控制结构92

7.1 指令序列92

7.2 实现判定92

7.2.1 条件分支指令93

7.2.2 if-then和if-then-else语句94

7.2.3 复合条件码95

7.2.4 if-then指令96

7.3 实现循环97

7.4 函数的实现99

7.4.1 函数调用和返回99

7.4.2 寄存器使用100

7.4.3 参数传递101

7.4.4 返回值101

7.4.5 临时变量102

7.4.6 保存寄存器值102

习题103

第8章 汇编程序设计Ⅳ:I/O编程106

8.1 Cortex-M3 I/O硬件106

8.1.1 中断和异常107

8.1.2 线程和异常处理模式107

8.1.3 进入异常处理程序107

8.1.4 从异常处理程序返回108

8.1.5 减少延迟108

8.1.6 优先级与嵌套异常109

8.2 同步、传输率与延迟111

8.3 缓冲区与队列111

8.4 评价I/O的执行能力113

8.4.1 轮询等待循环114

8.4.2 中断驱动的I/O116

8.4.3 直接内存访问117

8.4.4 不同方法的比较117

习题118

第9章 并发软件120

9.1 前台/后台系统120

9.1.1 线程状态与串行化120

9.1.2 延迟管理121

9.1.3 中断溢出123

9.1.4 将工作转移到后台123

9.2 多线程编程124

9.2.1 独立线程的并发执行124

9.2.2 上下文切换124

9.2.3 非抢占(合作)多线程125

9.2.4 抢占式多线程126

9.3 共享资源与临界区127

9.3.1 禁止中断127

9.3.2 禁止任务切换127

9.3.3 自旋锁128

9.3.4 互斥对象128

9.3.5 信号量129

习题129

第10章 调度131

10.1 线程状态131

10.2 等待中的线程132

10.3 上下文切换132

10.4 轮转调度134

10.5 基于优先级的调度134

10.5.1 资源饥饿134

10.5.2 优先级反转134

10.5.3 优先级上限协议135

10.5.4 优先级继承协议135

10.6 分配优先级136

10.6.1 最后期限驱动的调度136

10.6.2 速率单调的调度137

10.7 死锁137

10.8 看门狗定时器138

习题140

第11章 存储管理142

11.1 C语言中的对象142

11.2 作用域143

11.2.1 改进局部作用域143

11.2.2 改进全局作用域144

11.3 生命周期145

11.4 自动分配145

11.5 静态分配146

11.6 三个程序:区分静态分配和自动分配147

11.6.1 对象创建147

11.6.2 对象初始化147

11.6.3 对象销毁148

11.7 动态分配149

11.7.1 内存碎片150

11.7.2 内存分配池150

11.8 具有变量大小的动态分配150

11.9 递归函数和内存分配152

习题152

第12章 共享内存157

12.1 确定共享对象157

12.1.1 共享全局数据157

12.1.2 共享私有数据157

12.1.3 共享函数157

12.2 可重入函数158

12.3 只读数据158

12.4 编程实践需要避免的事项159

12.4.1 将内部状态保持在本地静态对象的函数159

12.4.2 返回本地静态对象地址的函数161

12.5 访问共享内存162

12.5.1 处理器体系结构的影响163

12.5.2 只读和只写访问164

12.5.3 类型限定符volatile164

习题165

第13章 系统初始化168

13.1 内存层次168

13.2 CPU和向量表168

13.3 C运行时环境170

13.3.1 将初始值从非易失性存储器复制到数据区170

13.3.2 将未初始化的静态变量归零170

13.3.3 设置堆171

13.4 系统定时器171

13.5 其他外围设备172

部分习题答案173

索引175

热门推荐