《嵌入式可配置实时操作系统eCos开发与应用》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:蒋句平编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2004
  • ISBN:7111132424
  • 页数:356 页
图书介绍:本书介绍了系统的基本结构,开发环境的建立及其配置方法。

目录 1

第1章 概述 1

1.1什么是eCos 1

1.1.1起源与历史 2

1.1.2功能与特性 3

1.1.3eCos核心组件 4

1.1.4对硬件的支持 5

1.1.5eCos资源 5

1.2eCos的可配置性 6

1.2.1配置的必要性 7

1.2.2配置方法 7

1.3eCos的组织结构 8

1.3.1eCos的层次结构 9

1.3.2eCos源码结构 11

1.4.3组件 12

1.4.2配置选项 12

1.4eCos的一些基本概念 12

1.4.1组件框架 12

1.4.4包 13

1.4.5组件仓库 13

1.4.6配置 13

1.4.7目标系统 14

1.4.8模板 14

1.4.9属性 14

1.4.12组件定义语言CDL 15

1.4.10约束条件 15

1.4.11冲突 15

第2章 eCos开发环境的建立 16

2.1系统需求 16

2.1.1主机系统需求 16

2.1.2目标系统需求 16

2.2开发工具 17

2.2.2交叉编译工具 18

2.2.1Cygwin 18

2.2.3eCos配置工具 19

2.3Cygwin的安装与设置 19

2.4GNU交叉编译工具的编译与配置 22

2.5eCos源码与配置工具的安装 25

2.5.1eCos的安装 26

2.5.2eCos配置工具 28

2.6建立eCos开发环境 30

2.6.1基于x86的eCos开发平台 30

2.6.2建立RedBoot引导环境 31

第3章 eCos配置工具与编程实例 34

3.1eCos图形配置工具 34

3.2图形配置工具的使用 35

3.2.1组件仓库位置 35

3.2.2配置文件的管理 36

3.2.3模板选择 36

3.2.4选项配置 37

3.2.5冲突的解决 39

3.2.6配置选项的查找 40

3.2.7编译 40

3.2.8执行 42

3.3命令行配置工具 44

3.3.1ecosconfig配置工具 44

3.3.2使用ecosoonfig配置eCos 45

3.4eCos应用程序 46

3.4.1使用编译工具 46

3.4.2简单的hello程序 47

3.4.3多线程编程例子 49

3.4.4时钟和告警处理程序 51

第4章 RedBoot 55

4.1功能与应用 55

4.1.1RedBoot的安装 55

4.1.3RedBoot环境配置 56

4.1.2RedBoot用户界面 56

4.2RedBoot命令 58

4.2.1基本命令格式 58

4.2.2RedBoot普通命令 60

4.2.3Fash映像系统(FIS) 63

4.2.4Flash内配置信息的管理 66

4.2.5RedBoot程序执行控制 68

4.3RedBoot的配置与编译 68

4.3.1RedBoot软件结构 68

4.3.2使用eCos图形配置工具 69

4.3.3使用命令行配置工具ecosconfig 72

4.4RedBoot的更新与运行 73

第5章 系统内核 76

5.1系统内核结构 76

5.2内核调度机制 77

5.2.2多级队列调度器 78

5.2.1位图调度器 78

5.2.3调度器操作及API函数 79

5.3内存分配 80

5.3.1内存分配机制 81

5.3.2固定长度内存分配API 82

5.3.3可变长度内存分配API 84

5.4中断处理 86

5.4.1线程与中断处理程序 86

5.4.2中断的处理 87

5.4.3内核中断处理API函数 88

5.5例外处理 91

5.5.1例外处理程序 92

5.5.2例外处理内核API函数 93

5.6SMP支持 93

5.6.1SMP系统的启动 94

5.6.2SMP系统的调度 94

5.7计数器与时钟 95

5.6.3SMP系统的中断处理 95

5.7.1计数器 96

5.7.2时钟 98

5.7.3告警器 100

5.8应用程序入口 102

5.8.1调用环境 102

5.8.2应用程序编程要求 103

5.8.3应用程序的启动 104

第6章 线程与同步 106

6.1线程的创建 106

6.1.1创建新线程 106

6.1.2线程入口函数 107

6.1.3线程优先级 108

6.1.4堆栈和堆栈大小 108

6.1.5线程创建例子程序 109

6.2线程信息的获取 110

6.3线程的控制 111

6.4线程的终止和消除 112

6.4.1线程终止函数 112

6.4.2线程消除函数 113

6.5线程优先级操作 113

6.6per-thread数据 114

6.7同步原语 116

6.8互斥体 117

6.8.1互斥体的实现与操作 118

6.8.2互斥体API函数 118

6.8.3优先级倒置 120

6.9条件变量 122

6.9.1条件变量的使用 122

6.9.2条件变量API函数 124

6.10信号量 125

6.10.1信号量的使用 126

6.10.2信号量API函数 126

6.11.1信箱的使用 128

6.11信箱 128

6.11.2信箱API函数 129

6.12事件标志 131

6.12.1事件标志的使用 132

6.12.2事件标志API函数 133

6.13Spinlock 135

6.13.1Spinlock的使用 135

6.13.2Spinlock内核API函数 136

第7章 标准C与数学库 138

7.1标准C与数学库的配置 138

7.2非ISO标准函数 139

7.3数学库兼容方式 140

7.4一些实现细节 141

7.5线程安全性 143

7.6C库启动函数 144

8.1设备驱动程序用户API 145

第8章 设备驱动程序与PCI库 145

8.1.1设备的查找 146

8.1.2向设备传送数据 146

8.1.3读取设备数据 146

8.1.4读取设备配置信息 146

8.1.5对设备的配置 147

8.2驱动程序与内核及HAL的接口 147

8.2.1eCos中断模块 147

8.2.2同步 148

8.2.3SMP支持 150

8.2.4驱动程序模式 150

8.2.5驱动程序与内核及HAL的接口API函数 151

8.3eCos驱动程序设计 163

8.3.1设备驱动程序的基本结构 163

8.3.2串口驱动程序设计 165

8.4.1串口(rawserial)驱动程序 168

8.4串口驱动程序 168

8.4.2TTY驱动程序 173

8.5PCI库 175

8.5.1PCI总线操作 175

8.5.2PCI库API 181

第9章 文件系统 188

9.1文件系统表格 188

9.1.1文件系统表(FileSystemTable) 188

9.1.2安装表(MountTable) 190

9.1.3文件表 192

9.2文件目录 194

9.3同步 194

9.4初始化和安装 195

9.5文件操作 196

9.5.1文件系统的安装mount与卸载umount 197

9.5.3read、write和lseek函数 198

9.5.2open、creat和close函数 198

9.5.4fcntl函数 199

9.5.5dup和dup2函数 200

9.5.6stat和fstat函数 201

9.5.7access函数 202

9.5.8link,unlink,remove和rename函数 202

9.5.9mkdir和rmdir函数 203

9.5.10opendir、readdir、rewinddir和closedir函数 203

9.5.12Socket操作 204

9.5.11chdir和getcwd函数 204

9.6创建文件系统 205

9.7RAM文件系统 209

9.7.1文件和目录节点 209

9.7.2目录 211

9.7.3数据存储机制 211

9.8ROM文件系统 213

9.9文件操作实例 214

10.1eCos网络配置 222

第10章 网络支持与编程 222

10.2以太网驱动程序设计 223

10.2.1底层驱动程序基本框架 224

10.2.2驱动程序内部函数的实现 227

10.2.3高层驱动程序函数 231

10.2.4数据的发送和接收过程 231

10.3TCP/IP协议栈支持 232

10.3.1特性支持与配置 233

10.3.2API函数 234

10.4FTP客户端 236

10.5DNS客户端 237

10.6eCos网络编程实例 238

10.6.1网络通信测试程序 238

10.6.2编程实例——ping程序 239

第11章 硬件抽象层与eCos移植 245

11.1硬件抽象层HAL 245

11.2.1HAL的类型 247

11.2硬件抽象层的结构 247

11.2.2硬件抽象层文件描述 248

11.3硬件抽象层接口 250

11.3.1基本定义 250

11.3.2体系结构描述 251

11.3.3中断处理 255

11.3.4I/O操作 258

11.3.5Cache控制 259

11.3.6SMP支持 261

11.3.7诊断支持 264

11.3.8链接脚本 265

11.4例外处理 266

11.4.1HAL的启动处理 266

11.4.2同步例外与异步中断的处理 267

11.5虚拟向量 269

11.6eCos的移植 270

11.6.1平台抽象层的移植 271

11.6.2变体抽象层的移植 279

11.6.3体系结构抽象层的移植 282

第12章 组件结构与CDL 290

12.1eCos的配置机制 290

12.2eCos组织结构及编译过程 291

12.2.1软件包与组件仓库 291

12.2.2软件包的内容与格式 292

12.2.3编译过程 293

12.3组件定义语言CDL 294

12.3.1CDL命令 295

12.3.2CDL属性 298

12.4选项命名约定 305

12.5Tcl简介 307

12.5.1基本语法 307

12.5.3命令替换 308

12.5.4引号和花括弧的使用 308

12.5.2变量 308

125.5反斜杠和注释 309

12.6表达式和值 310

12.6.1选项的值 310

12.6.2普通表达式 312

12.6.3目标表达式 313

12.6.4列表表达式 314

12.7接口 314

12.8更新ecos.db数据库 316

第13章 eCos嵌入式Web服务器 318

13.1嵌入式Web服务器LibHTTPD 318

13.2配置和建造eCos 320

13.3Web服务器编程 321

13.4运行Web服务器 328

附录 335

附录A eCos硬件支持情况 335

附录B eCos实时特性 341

参考文献 359