图书介绍

嵌入式软件设计之思想与方法【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

嵌入式软件设计之思想与方法
  • 张邦术编著 著
  • 出版社: 北京:北京航空航天大学出版社
  • ISBN:9787811244205
  • 出版时间:2009
  • 标注页数:273页
  • 文件大小:51MB
  • 文件页数:292页
  • 主题词:软件设计

PDF下载


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

下载说明

嵌入式软件设计之思想与方法PDF格式电子书版下载

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

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

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

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

图书目录

第一篇 基础方法篇3

第1章 程序基础3

1.1 设计高性能程序的必要性3

1.1.1 设计高性能程序的必要性3

1.1.2 嵌入式软件的设计范畴3

1.1.3 嵌入式软件的分层结构6

1.2 嵌入式软件的程序设计要求8

1.2.1 代码结果的要求9

1.2.2 代码形式的要求10

1.3 嵌入式软件开发的基本思路和原则10

1.3.1 系统分析,定义接口11

1.3.2 函数实现,优化算法12

1.3.3 清理代码,补充注释14

1.3.4 测试修订,完善文档14

1.4 程序实例剖析14

1.4.1 正确理解栈14

1.4.2 内存泄漏18

1.4.3 消除编译依赖18

1.4.4 消除潜在隐患20

1.4.5 规范实现范例21

1.4.6 性能优化23

1.5 程序设计其他注意点30

1.5.1 谨慎使用“宏”30

1.5.2 正确理解预定义宏34

1.5.3 避免歧义37

第2章 多任务操作系统40

2.1 板级支持包40

2.2 嵌入式操作系统与实时性40

2.2.1 嵌入式操作系统41

2.2.2 实时操作系统42

2.3 多任务概述42

2.3.1 进程、线程与任务43

2.3.2 何时需要多任务44

2.3.3 任务状态的转换50

2.3.4 进程调度与调试算法51

2.3.5 任务相关的API51

2.4 进程间共享代码与可重入性53

2.4.1 共享代码53

2.4.2 共享代码可重入性问题53

2.4.3 使用私有数据55

2.4.4 使用临界区数据57

2.5 线程间通信57

2.5.1 共享数据结构57

2.5.2 互斥59

2.5.3 信号量60

2.5.4 临界区与信号量的实现实例63

第3章 硬件基础74

3.1 ARM74

3.1.1 ARM编程模式75

3.1.2 ARM指令概述78

3.1.3 ARM异常及处理80

3.2 MIPS86

3.2.1 MIPS编程模式87

3.2.2 MIPS指令概述90

3.2.3 MIPS中断与异常95

3.3 接口基础98

3.3.1 总线概述99

3.3.2 I2C总线105

3.3.3 PCI总线108

3.3.4 设备模型115

3.3.5 一个IDE控制器设备实例117

第二篇 驱动模型篇121

第4章 驱动的通用模型121

4.1 设备驱动的作用121

4.2 驱动类型123

4.2.1 Lirux中的驱动类型123

4.2.2 WinCE中的驱动类型125

4.2.3 VxWorks中的驱动类型125

4.3 设备驱动的通用模型126

4.3.1 模块部分的驱动126

4.3.2 设备的驱动例程127

第5章 VxWorks的驱动模型131

5.1 VxWorks的I/O系统131

5.1.1 I/O系统概述131

5.1.2 文件名与设备133

5.1.3 基本I/O134

5.1.4 缓冲I/O136

5.1.5 格式化I/O136

5.2 VxWorks的驱动及其内部结构137

5.2.1 驱动的安装、驱动表138

5.2.2 设备的创建、设备链表140

5.2.3 文件的打开、文件描述符表142

5.2.4 文件的读、写、控制和关闭操作143

第6章 Linux的驱动模型145

6.1 Linux的驱动加载方式145

6.1.1 内核驱动模块与模块化驱动145

6.1.2 模块化驱动的加载与卸载146

6.2 Linux的驱动架构147

6.2.1 一个最简单的内核驱动148

6.2.2 一个最简单的模块驱动151

6.2.3 Linux驱动中注册驱动153

6.2.4 Linux系统中的设备文件154

6.3 Linux字符型设备驱动155

6.3.1 驱动的加载与清理155

6.3.2 中断的申请与释放156

第7章 WinCE的驱动模型158

7.1 WinCE驱动类型158

7.2 设备管理器及其驱动模型159

第三篇 BSP/OAL篇161

第8章 BSP的基本概念161

8.1 BSP与驱动161

8.2 BSP开发的目标任务162

第9章 BSP的设计要素163

9.1 中断处理163

9.1.1 物理中断号与逻辑中断号163

9.1.2 CPU中断与中断控制器扩展164

9.1.3 中断源的查找165

9.1.4 中断处理线程166

9.2 CPU异常166

9.2.1 异常向量表167

9.2.2 向量表的安装173

9.2.3 异常处理代码实例177

9.3 硬件I/O的访问188

9.3.1 避免使用绝对物理地址188

9.3.2 内存一致性问题192

9.3.3 I/O访问的刷新198

第10章 Linux的启动过程199

10.1 Linux的启动流程199

10.2 Linux的启动过程简介201

10.2.1 _stext函数201

10.2.2 start_kernel函数203

10.2.3 setup_arch函数204

10.2.4 trap_init函数204

10.2.5 init_IRQ函数205

10.2.6 sched_init函数205

10.2.7 do_initcalls函数205

10.2.8 init函数206

10.2.9 init程序207

第11章 WinCE的设计209

11.1 WinCE OS平台开发简介209

11.1.1 WinCE平台的开发流程209

11.1.2 WinCE内核结构211

11.1.3 WinCE设计中的一些名词术语212

11.2 WinCE BSP开发213

11.2.1 启动装载器213

11.2.2 OAL开发215

11.2.3 WinCE配置文件219

11.3 WinCE设备驱动的开发流程221

11.3.1 设备驱动源代码221

11.3.2 修改配置文件222

11.3.3 向OS平台注入驱动223

第四篇 扩展篇226

第12章 理解程序的内部结构226

12.1 x86汇编及其程序结构226

12.1.1 x86程序段定义227

12.1.2 关联段寄存器、确定段的种类230

12.1.3 段组伪指令230

12.2 嵌入式系统中的程序结构231

12.2.1 嵌入式系统中执行程序的映像231

12.2.2 链接器与命令脚本236

12.3 ELF文件格式241

12.3.1 ELF文件格式概述241

12.3.2 ELF文件格式分析器248

第13章 嵌入式系统的设计思想262

13.1 直截了当的思想262

13.2 层次化的思想267

13.3 循序渐进的思想269

13.4 实践是最好的老师269

13.5 团队协作意识270

13.6 大胆尝试与积极创新270

结束语272

参考文献273

图1-1 嵌入式软件的分层结构7

图2-1 VxWorks中的任务状态转换图50

图2-2 驱动中的可重入性问题154

图2-3 驱动中的可重入性问题256

图2-4 使用共享数据区访问临界区的例子58

图3-1 ARM程序状态寄存器格式77

图3-2 MIPS CPU寄存器88

图3-3 MIPS FPU寄存器90

图3-4 I2C数据位的传输106

图3-5 I2C起始条件和停止条件106

图3-6 I2C总线数据传输时序图107

图3-7 PCI CONFIG-ADDRESS寄存器格式113

图3-8 PCI类型0配置空间头部114

图3-9 ITE8172 IDE控制器框图118

图5-1 驱动在系统中的层次结构132

图5-2 VxWorks I/O系统的调用关系133

图5-3 VxWorks驱动安装140

图5-4 VxWorks设备添加141

图5-5 VxWorks文件打开142

图5-6 文件读操作的I/O控制流程143

图6-1 Linux驱动与操作系统核心之间的关系147

图7-1 WinCE驱动内部框图158

图7-2 WinCE系统中应用程序与设备驱动的交互160

图9-1 驱动程序中完整的中断处理架构164

图9-2 IT8172G中断控制器内部框图177

图10-1 Linux启动流程框图200

图10-2 Linux启动执行过程细节201

图11-1 WinCE OS开发的工作流程210

图11-2 WinCE的内部层次结构211

图11-3 WinCE BSP框图214

图12-1 x86汇编段结构228

图12-2 宏汇编中的段链接映像230

图12-3 x86段组定义231

图12-4 节的简单格式237

图12-5 节的完整定义239

图12-6 口(ENTRY)的定义240

图12-7 ELF目标文件格式242

表3-1 ARM寄存器组织结构75

表3-2 ARM状态寄存器的模式位78

表3-3 ARM异常处理的入口地址81

表3-4 ARM异常的优先级86

表3-5 MIPS系统控制寄存器CPO88

表3-6 MIPS32/MIPS64装入/存储指令所支持的数据类型91

表3-7 MIPS对齐的装入存储指令91

表3-8 MIPS非对齐的装入存储指令91

表3-9 MIPS原子更新的装入存储指令92

表3-10 协处理器装入存储指令92

表3-11 MIPS立即数操作的算术指令92

表3-12 MIPS三操作数算术指令92

表3-13 MIPS二操作数算术指令93

表3-14 MIPS移位指令93

表3-15 MIPS乘除法指令94

表3-16 MIPS 256M区域内无条件跳转指令95

表3-17 MIPS PC相对的条件转移指令95

表3-18 MIPS的中断、状态及缘由寄存器的映射关系96

表3-19 MIPS异常向量的基地址97

表3-20 MIPS异常向量的偏移地址97

表3-21 I2C总线术语定义105

表3-22 PCI总线命令110

表3-23 ITE8172 IDE控制器的PCI配置寄存器119

表3-24 ITE8172 IDE总线主设备IDE输入/输出寄存器119

表3-25 IDE命令寄存器120

表11-1 WinCE常见的映像配置文件219

表12-1 字符串表简单例子246

表12-2 对字符串表索引所得到的字符串246

热门推荐