《嵌入式系统固件揭秘》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Ed Sutter著;张晓林等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2003
  • ISBN:7505386689
  • 页数:329 页
图书介绍:本书通过一个完整的嵌入式系统设计全过程,向读者展示嵌入式系统的基本框架,以及设计、编程、调试等技术细节。书中详细讲述了嵌入式系统中的存储器、微处理器与微控制器、数据总线与地址总线等基本概念,以及在设计中要考虑的要素。另外还给出了关键程序的源代码,使读者通过本书学会如何看懂嵌入式系统的原理图,了解系统是如何工作的,掌握嵌入式系统开发平台的主要固件。

第1章艰难的开始 1

1.1 系统要求 1

目 录 1

1.2中央处理器 2

1.2.1 可编程芯片的选择 3

1.2.2中断控制器 4

1.2.3定时-计数单元 4

1.2.4 DMA控制器 5

1.2.5 串口 6

1.2.6DRAM控制单元 6

1.2.7内存管理单元(MMU) 6

1.2.9可编程I/O管脚 7

1.2.8缓存 7

1.2.10把所有部件集成起来 8

1.3系统存储器 8

1.3.1 ROM,PROM,EPROM和EEPROM 9

1.3.2 RAM 9

1.3.3闪存(Flash Memory) 9

1.3.4其他 10

1.4 CPU监控 10

1.4.1 复位 11

1.4.2看门狗定时器(watchdog tiner) 12

1.4.3 带备份电源的SRAM 12

1.5.1直接电缆数据传输 13

1.5串口驱动器 13

1.4.4每日时钟 13

1.5.2差分驱动传输 14

1.6以太网接口 15

1.7闪存设备的选择 15

1.7.1 闪存锁定工具 15

1.7.2底部引导(Bottom-Boot)和项部引导(Top-Boot)闪存设备 16

1.8 CPU/存储器接口 16

1.8.1 CPU 18

1.8.2缓存的功能及缺陷 20

1.9 小结 23

第2章开始动手 24

2.1在PC上的实现 24

2.1.1交互编译过程 26

2.1.2建立内存映射 30

2.1.3连接编译文件 30

2.1.4文本、数据和BSS 32

2.1.5 Make文件 34

2.2建立库 37

2.3准备活动 38

2.3.1开始硬件设计 40

2.3.2认识硬件并善待设计师 41

2.3.3拥有所有数据的本地备份 41

2.3.4确信硬件可以工作 42

2.3.5慢慢开始 42

2.3.6查看你的生成文件 43

2.5为固件开发进行全面的硬件测试 45

2.4运行时间 45

2.5.1确定电源电压 46

2.5.2验证时钟的有效性 46

2.5.3检查启动芯片的片选和读信号 46

2.5.4取出放大镜 46

2.5.5小心静电 46

2.5.6复位时简单的循环 47

2.5.7 个LED的重要作用 47

2.5.8 RAM和“不需要堆栈的”串行输出 47

2.5.9开始C语言层次 48

2.6小结 50

3.1一个嵌入式系统启动平台 51

第3章微型监控器 51

3.1.1常驻系统命令集 52

3.1.2给应用程序提供的API 54

3.1.3基于主机的命令集 55

3.2小结 57

第4章所需的汇编语言 58

4.1 复位之后 58

4.2 I/O初始化 64

4.3建立异常处理 65

4.3.1 ROM中的异常处理 66

4.3.2 RAM中的异常处理 72

4.3.3 当心寄存器 74

4.4小结 74

5.1命令行接口的特点 75

第5章命令行接口 75

5.2命令行接口的数据结构和命令列表 76

5.3命令行接口处理 77

5.4命令名下的函数 77

5.5 内部变量和符号处理 82

5.6命令行重新定向 85

5.7命令行编辑和记录 91

5.8用户分级 97

5.9密码保护 100

5.10小结 102

第6章闪存的接口 103

6.1接口函数 103

6.1.1闪存库 104

6.1.2在RAM中重新部署闪存操作函数 105

6.1.3闪存控制结构初始化 107

6.1.4 29F040系列的闪存操作系统 108

6.1.5对16位与32位的扩展(banks)操作 116

6.2闪存驱动的前端(Front End) 117

6.3 小结 121

第7章闪存文件系统 122

7.1 TFS在平台上的作用 122

7.2 TFS的设计标准 123

7.3文件属性 123

7.3.1可以自动加载的文件 124

7.3.2用户级别 125

7.4高级的详细内容 125

7.5 TFS所要求的闪存空间 127

7.6碎片整理 128

7.6.2比较复杂但功能更为强大的方法 129

7.6.1简单但是存在潜在危险的方法 129

7.7 TFS的应用 130

7.7.1带有安全电源的碎片整理操作 130

7.7.2没有安全电源的tfsclean()函数 135

7.8增加和删除文件 138

7.8.1 tfsadd()函数 138

7.8.2 tfsunlink()函数 147

7.9加载的应用 148

7.10文件解压缩 153

7.11现场执行 154

7.12小结 155

8.1脚本运行器 156

第8章执行脚本 156

8.1.1 Exit 159

8.1.2 Goto 160

8.1.3 gosub和retum 161

8.2条件转向 163

8.3一些例子 169

8.3.1例子#1:ping 169

8.3.2例子#2:外壳数组 170

8.3.3例子#3:子程序、条件转向、TFS及其他 172

8.4小结 174

第9章网络连通性 175

9.1 以太网 175

9.2 ARP 176

9.3 IP 177

9.4 ICMP 177

9.5 UDP和TCP 179

9.6 DHCP/BOOTP 180

9.7嵌入式系统的应用 181

9.7.1 processPACKET()函数 183

9.7.2总结 189

9.8 小结 190

第10章文件/数据传输 192

10.1 Xmodem 192

10.1.1 Xdown() 196

10.2 TFTP 199

10.1.2 MicroMonitor中的Xmodem 199

10.3 自升级功能 211

10.3.1应用程序不知道潜在升级路径 211

10.3.2应用程序是自升级的一部分 212

10.4小结 212

第11章添加应用程序 213

11.1各种存储映像 213

11.2弱启动 214

11.3建立应用程序堆栈 214

11.4连接到监控器的API 214

11.4.1 Moncom()函数 215

11.4.2 MonConnect()函数 216

11.5应用程序start()函数 219

11.6应用程序main()函数 220

11.7为应用程序创建的驱动程序 221

11.8基于应用程序的CLI使用监控器CLI 221

11.9通过应用程序CLI运行脚本 223

11.10小结 224

第12章基于监控器的调试 225

12.1不同类型的调试方法 226

12.2 断点 226

12.2.1使用断点进行代码分析 228

12.2.2 一些CPU提供了调试吊钩 230

12.3增加符号能力 230

12.4显示存储器 231

12.5将C结构覆盖到内存 238

12.5.1 一些示例输出 252

12.6堆栈跟踪 254

12.7检测堆栈溢出 260

12.7.1预填充堆栈内存或者缓冲区 262

12.7.2利用对每个函数堆栈段的检查 263

12.8系统评测 265

12.8.1使用系统节拍(tick) 265

12.8.2基本模块 274

12.9小结 275

第13章将微型监控器接入ColdFire MCF5272 276

13.1原始资料代码目录树 277

13.2编译文件 278

13.3.1 FORCE_BSS_INIT 287

13.3头文件的结构 287

13.3.2 PLATFORM_XXX 288

13.3.3闪存结构 288

13.3.4 TFS结构 289

13.3.5 INCLUDE列表 290

13.3.6多样化配置 292

13.4连接步骤 293

13.4.1下载第一个镜像 293

13.4.2启动闪存驱动器 297

13.4.3启动TFS 303

13.4.4启动以太网 305

13.5 小结 306

结束语 307

A.1与主机文件连接 308

附录A建立基于主机的工具箱 308

A.2与计算机串口的接口 312

A.3基于PC的UDP处理:moncmd 315

A.4小结 318

附录B RTOS概述 320

B.1调度程序 321

B.2任务、线程和过程 321

B.3抢占、时间分割和中断 322

B.4信号机、事件、消息和定时器 323

B.5重入 326

B.6好的并行和差的并行 327

B.7小结 328

本书所附光盘(CD)的内容 329