书籍详情
嵌入式系统应用开发:基于C*Core处理器与嵌入式Linux实时操作系统
作者:陈双龙,朱兴泉,孙学明 编著
出版社:清华大学出版社
出版时间:2007-05-01
ISBN:9787302148784
定价:¥39.00
购买这本书可以去
内容简介
《嵌入式系统应用开发:基于C*Core处理器与嵌入式Linux实时操作系统》以国产高性能32位嵌入式CPU和开源操作系统Linux为核心,结合作者多年从事嵌入式操作系统、开发工具、嵌入式应用的研发的经验体会,系统地介绍嵌入式系统的基本概念和设计原理,嵌入式Linux和集成开发环境的设计方法、基于国产高性能32位嵌入式CPU和嵌入式Linux的应用系统设计方法等。全书分为8章,第1章和第3章介绍嵌入式系统和嵌入式操作系统的基本概念。第2章系统地介绍国产高性能32位嵌入式CPU(C*Core)的体系结构、指令系统、中断及接口等。第4章介绍Linux的体系结构及设计嵌入式Linux的步骤及方法。第5章介绍目前流行的一些接口,如串行接口、并行接口、USB,网络以及模拟输入输出接口等。第6章介绍嵌入式系统集成开发工具的设计方法,如何利用开源代码和第三方工具来提高集成开发工具的开发效率和扩展功能。第7章以大量的实例介绍嵌入式系统驱动程序和管理程序的设计方法和具体实现。第8章以嵌入式零售信息终端为例介绍基于C*Core的控制板及管理软件的设计方案。《嵌入式系统应用开发:基于C*Core处理器与嵌入式Linux实时操作系统》既可以作为嵌入式信息终端、智能家电、医疗保健、工业控制、智能化社区、移动计算平台、电子商务平台、计算机外设、智能玩具等产品研发的參考书,也可以供高等院校、技术培训班等作为有关嵌入式系统教学的教材。
作者简介
陈双龙,1977年毕业于哈尔滨船舶工程学院电子数字计算机专业长期从事系统软件、嵌入式系统、计算机网络研发工作,曾先后获国家科技进步三等奖一项,省部级科技成果一等奖一项、二等奖三项、三等奖二项,先后发表科技论文十几篇,现任中国船舶重工集团公司第七一六研究所副总工程师,硕士研究生导师,享受政府特殊津贴。
目录
第1章 嵌入式系统基本概念 1
1.1 嵌入式系统的基本特点 1
1.2 实时系统 3
1.2.1 基本概念 4
1.2.2 实时系统的特征 6
1.2.3 实时系统的分类 7
1.3 嵌入式系统设计要点 8
1.3.1 嵌入式处理器的选择 8
1.3.2 操作系统的选择 10
1.3.3 开发工具的选择 11
1.3.4 任务的划分及优先级安排 11
1.3.5 任务间通信方式的选择 12
1.3.6 最小时间片的确定 12
1.3.7 编程语言的选择 12
1.4 嵌入式系统的发展趋势 13
1.4.1 联网成为必然趋势 15
1.4.2 支持小型设备实现小尺寸、
微功耗和低成本 15
1.4.3 提供精巧的多媒体界面 16
第2章 嵌入式处理器 17
2.1 概述 17
2.2 CCM3118简介 18
2.3 操作模式 19
2.3.1 芯片工作模式 19
2.3.2 低功耗操作模式 20
2.4 编程模式与寄存器 20
2.4.1 编程模式 20
2.4.2 寄存器 21
2.5 数据格式 26
2.6 指令系统 26
2.6.1 指令系统综述 26
2.6.2 指令类型和寻址方式 30
2.7 异常和中断处理机制 34
2.7.1 异常处理概述 34
2.7.2 异常处理过程 34
2.7.3 异常类型 37
2.7.4 异常优先级 40
2.7.5 在异常悬停时的调试请求 41
2.7.6 异常处理程序的返回 41
2.8 处理器的中断控制器 41
2.8.1 寄存器地址映射 42
2.8.2 寄存器功能描述 43
2.8.3 中断处理的实现和中断
服务程序编写 48
2.9 SPI模块 49
2.9.1 引脚信号说明 49
2.9.2 寄存器地址映射 49
2.9.3 寄存器功能描述 50
2.10 SCI模块 54
2.10.1 引脚信号说明 55
2.10.2 寄存器地址映射 55
2.10.3 寄存器功能描述 55
2.11 PS/2主机控制器模块 62
2.11.1 引脚信号说明 62
2.11.2 寄存器地址映射 62
2.11.3 寄存器功能描述 63
2.12 通用读卡器模块 70
2.12.1 引脚信号说明 71
2.12.2 寄存器地址映射 71
2.12.3 寄存器功能描述 71
2.13 液晶显示控制器模块 79
2.13.1 引脚信号说明 79
2.13.2 寄存器地址映射 79
2.13.3 寄存器功能描述 80
第3章 嵌入式操作系统 91
3.1 嵌入式实时操作系统与通用操作
系统的差异 91
3.2 嵌入式操作系统的技术特点 95
3.2.1 微内核结构 96
3.2.2 任务调度 96
3.2.3 硬实时和软实时 96
3.2.4 内存管理 96
3.2.5 实时系统的通信 97
3.2.6 内核加载方式 98
3.3 嵌入式实时操作系统的体系结构 98
3.3.1 层次模型 99
3.3.2 单内核 99
3.3.3 微内核 99
3.3.4 虚拟机 100
3.3.5 客户机/服务器 101
3.4 嵌入式实时操作系统的关键技术
指标 102
3.4.1 任务调度算法 102
3.4.2 上下文切换时间 102
3.4.3 中断响应时间 103
3.4.4 确定性 103
3.4.5 最大中断禁止时间 103
3.4.6 系统开销 103
3.5 嵌入式实时操作系统的设计原则 103
3.5.1 实时进程调度算法 105
3.5.2 实时进程调度算法的
正确性 107
3.5.3 实时系统的内存 107
3.5.4 外围设备管理 108
3.6 嵌入式实时操作系统现状 108
3.7 嵌入式实时操作系统发展趋势 111
3.7.1 特定应用嵌入式实时操作
系统 111
3.7.2 嵌入式安全实时操作系统 114
第4章 嵌入式Linux 117
4.1 Linux发展简史 117
4.2 Linux内核原理 119
4.3 Linux内核简析 122
4.3.1 Linux源码文件组织结构 122
4.3.2 Linux内核引导与初始化 123
4.3.3 中断处理 125
4.3.4 系统调用 125
4.3.5 进程调度 126
4.3.6 内存管理 128
4.4 Linux的基本命令 130
4.4.1 进入与退出系统 130
4.4.2 文件的复制、删除和
移动命令 131
4.4.3 目录的创建与删除命令 132
4.4.4 Linux文本处理命令 135
4.4.5 Linux备份与压缩命令 136
4.4.6 Linux系统管理命令 138
4.4.7 Linux磁盘管理 139
4.5 嵌入式Linux 141
4.5.1 嵌入式Linux设计过程 142
4.5.2 实时内核设计 143
4.5.3 流行的嵌入式Linux版本 147
4.6 基于C*Core的嵌入式
JARI-Linux 148
4.6.1 C*Core与Intel 80386处理器
体系结构的差别 148
4.6.2 JARI-Linux内核设计 149
4.6.3 JARI-Linux在JARI-EVB3118
开发板上的应用 155
第5章 嵌入式系统接口技术 159
5.1 接口概述 159
5.1.1 接口的基本概念 159
5.1.2 接口的功能 160
5.1.3 接口的组成 161
5.1.4 接口的数据传输方式 162
5.2 串行接口技术 165
5.2.1 基本概念 165
5.2.2 通用异步收发器 166
5.2.3 串行接口RS-232C标准 172
5.2.4 串行接口RS-422标准 174
5.3 并行接口技术 175
5.3.1 并行接口概述 175
5.3.2 可编程并行接口
芯片8255A 176
5.4 网络接口技术 179
5.4.1 网络概述 179
5.4.2 OSI 体系结构 180
5.4.3 以太网技术简介 181
5.4.4 介质访问控制协议
CSMA/CD 182
5.4.5 以太网地址 183
5.4.6 以太网的帧格式 183
5.4.7 网络互连设备 184
5.4.8 网络体系结构 189
5.4.9 解决通信时间不确定性的
几种方法 190
5.4.10 几种容错网络方案 192
5.5 数字/模拟、模拟/数字转换接口
技术 194
5.5.1 数模(D/A)转换器 194
5.5.2 模数(A/D)转换器 195
5.6 串行总线扩展技术 196
5.6.1 USB(通用串行总线) 196
5.6.2 IEEE-1394 197
5.6.3 I2C总线接口 198
第6章 嵌入式软件开发工具的设计 200
6.1 嵌入式软件开发过程及其
基本知识 200
6.1.1 什么是宿主机与目标机 200
6.1.2 早期的嵌入式软件开发
方式 201
6.1.3 现代的嵌入式软件开发方式
——交叉开发 201
6.1.4 交叉开发基本模型 203
6.2 嵌入式IDE开发方案的选择 204
6.3 功能与界面设计要点 206
6.4 基于Windows的IDE如何集成
GCC工具链 209
6.4.1 生成GCC工具链 209
6.4.2 在IDE的输出窗口中实时
显示编译信息 212
6.4.3 在IDE中双击编译信息实现
警告或错误定位 219
6.5 工程管理器的运用 222
6.5.1 功能与界面实现 222
6.5.2 工程管理与Makefile 224
6.5.3 工程管理器的技术实现 230
6.6 联机与程序下载 234
6.6.1 联机 234
6.6.2 程序下载 235
6.7 交叉调试器的实现 236
6.7.1 如何使下载的程序开始
运行 237
6.7.2 怎么在断点处停下来 238
6.7.3 下一步该停在哪儿 240
6.7.4 寄存器、内存和变量的
查看与修改是如何实现的 240
6.7.5 让调试器变得更体贴 243
第7章 基于Linux的编程实例 246
7.1 C*Core多功能开发板简介 246
7.1.1 存储器设计 247
7.1.2 接口设计和引脚说明 248
7.2 JARI-IDE简介 258
7.3 怎样使用仿真器 268
7.3.1 仿真器硬件及配置 268
7.3.2 仿真器的使用方法 268
7.3.3 仿真器调试程序的
具体步骤 269
7.4 中断处理 273
7.4.1 C*Core中断源 273
7.4.2 Linux中断处理 275
7.4.3 中断处理程序示例 276
7.5 看门狗定时器 280
7.5.1 看门狗定时器的操作模式及
寄存器 280
7.5.2 看门狗示例程序 283
7.6 音频输出 286
7.6.1 音频原理和说明 286
7.6.2 音频输出示例程序实验 287
7.7 文件系统应用 288
7.7.1 Linux文件系统特点 288
7.7.2 Yaffs文件系统的
基本原理 289
7.7.3 Linux下的文件系统应用 290
7.8 异步串行端口 290
7.8.1 异步串行I/O原理 290
7.8.2 串口终端函数 291
7.8.3 串行端口应用 292
7.9 SPI接口 294
7.9.1 C*Core SPI接口说明 295
7.9.2 SPI接口处理程序示例 296
7.10 I2C串行接口实验 297
7.10.1 I2C接口电路说明 297
7.10.2 示例程序 301
7.11 PS/2键盘实验 309
7.11.1 键盘按键的工作原理 309
7.11.2 PS/2键盘接口 309
7.11.3 键盘驱动程序流程 310
7.11.4 PS/2键盘应用程序示例 310
7.12 UCI接口实验 311
7.12.1 UCI简介 311
7.12.2 C*Core的UCI接口 312
7.12.3 UCI接口处理示例 312
7.13 矩阵键盘实验 315
7.13.1 矩阵键盘简介 315
7.13.2 键盘按键值的获取 315
7.13.3 矩阵键盘处理示例程序 316
7.14 USB接口实验 318
7.14.1 USB接口的特点 318
7.14.2 USB协议简介 319
7.14.3 USB设备在Linux内核中的
??配置 320
7.14.4 USB接口示例程序 321
7.15 Linux驱动框架 322
7.15.1 Linux系统下的设备驱动
? 程序 323
7.15.2 设备驱动程序设计示例 324
7.16 以太网卡驱动程序 326
7.16.1 8390网卡工作原理 327
7.16.2 网卡驱动程序示例 327
7.17 图形界面设计示例 329
7.17.1 图形界面简介 329
7.17.2 Nano-X的图形显示应用 330
7.17.3 图形界面设计示例 331
第8章 应用案例 339
8.1 零售网络管理信息系统简介 339
8.2 零售信息终端的工作原理及
主要功能 340
8.2.1 主要功能 340
8.2.2 设备组成原理 340
8.3 零售信息终端设计方案 342
8.3.1 硬件设计方案 342
8.3.2 零售信息终端软件方案 347
8.4 应用软件设计 350
8.4.1 初始化代码 350
8.4.2 输入事件处理模块 350
8.4.3 显示处理模块 351
8.4.4 数据处理模块 352
8.4.5 输入处理模块 352
8.4.6 远程数据传输模块的设计 353
1.1 嵌入式系统的基本特点 1
1.2 实时系统 3
1.2.1 基本概念 4
1.2.2 实时系统的特征 6
1.2.3 实时系统的分类 7
1.3 嵌入式系统设计要点 8
1.3.1 嵌入式处理器的选择 8
1.3.2 操作系统的选择 10
1.3.3 开发工具的选择 11
1.3.4 任务的划分及优先级安排 11
1.3.5 任务间通信方式的选择 12
1.3.6 最小时间片的确定 12
1.3.7 编程语言的选择 12
1.4 嵌入式系统的发展趋势 13
1.4.1 联网成为必然趋势 15
1.4.2 支持小型设备实现小尺寸、
微功耗和低成本 15
1.4.3 提供精巧的多媒体界面 16
第2章 嵌入式处理器 17
2.1 概述 17
2.2 CCM3118简介 18
2.3 操作模式 19
2.3.1 芯片工作模式 19
2.3.2 低功耗操作模式 20
2.4 编程模式与寄存器 20
2.4.1 编程模式 20
2.4.2 寄存器 21
2.5 数据格式 26
2.6 指令系统 26
2.6.1 指令系统综述 26
2.6.2 指令类型和寻址方式 30
2.7 异常和中断处理机制 34
2.7.1 异常处理概述 34
2.7.2 异常处理过程 34
2.7.3 异常类型 37
2.7.4 异常优先级 40
2.7.5 在异常悬停时的调试请求 41
2.7.6 异常处理程序的返回 41
2.8 处理器的中断控制器 41
2.8.1 寄存器地址映射 42
2.8.2 寄存器功能描述 43
2.8.3 中断处理的实现和中断
服务程序编写 48
2.9 SPI模块 49
2.9.1 引脚信号说明 49
2.9.2 寄存器地址映射 49
2.9.3 寄存器功能描述 50
2.10 SCI模块 54
2.10.1 引脚信号说明 55
2.10.2 寄存器地址映射 55
2.10.3 寄存器功能描述 55
2.11 PS/2主机控制器模块 62
2.11.1 引脚信号说明 62
2.11.2 寄存器地址映射 62
2.11.3 寄存器功能描述 63
2.12 通用读卡器模块 70
2.12.1 引脚信号说明 71
2.12.2 寄存器地址映射 71
2.12.3 寄存器功能描述 71
2.13 液晶显示控制器模块 79
2.13.1 引脚信号说明 79
2.13.2 寄存器地址映射 79
2.13.3 寄存器功能描述 80
第3章 嵌入式操作系统 91
3.1 嵌入式实时操作系统与通用操作
系统的差异 91
3.2 嵌入式操作系统的技术特点 95
3.2.1 微内核结构 96
3.2.2 任务调度 96
3.2.3 硬实时和软实时 96
3.2.4 内存管理 96
3.2.5 实时系统的通信 97
3.2.6 内核加载方式 98
3.3 嵌入式实时操作系统的体系结构 98
3.3.1 层次模型 99
3.3.2 单内核 99
3.3.3 微内核 99
3.3.4 虚拟机 100
3.3.5 客户机/服务器 101
3.4 嵌入式实时操作系统的关键技术
指标 102
3.4.1 任务调度算法 102
3.4.2 上下文切换时间 102
3.4.3 中断响应时间 103
3.4.4 确定性 103
3.4.5 最大中断禁止时间 103
3.4.6 系统开销 103
3.5 嵌入式实时操作系统的设计原则 103
3.5.1 实时进程调度算法 105
3.5.2 实时进程调度算法的
正确性 107
3.5.3 实时系统的内存 107
3.5.4 外围设备管理 108
3.6 嵌入式实时操作系统现状 108
3.7 嵌入式实时操作系统发展趋势 111
3.7.1 特定应用嵌入式实时操作
系统 111
3.7.2 嵌入式安全实时操作系统 114
第4章 嵌入式Linux 117
4.1 Linux发展简史 117
4.2 Linux内核原理 119
4.3 Linux内核简析 122
4.3.1 Linux源码文件组织结构 122
4.3.2 Linux内核引导与初始化 123
4.3.3 中断处理 125
4.3.4 系统调用 125
4.3.5 进程调度 126
4.3.6 内存管理 128
4.4 Linux的基本命令 130
4.4.1 进入与退出系统 130
4.4.2 文件的复制、删除和
移动命令 131
4.4.3 目录的创建与删除命令 132
4.4.4 Linux文本处理命令 135
4.4.5 Linux备份与压缩命令 136
4.4.6 Linux系统管理命令 138
4.4.7 Linux磁盘管理 139
4.5 嵌入式Linux 141
4.5.1 嵌入式Linux设计过程 142
4.5.2 实时内核设计 143
4.5.3 流行的嵌入式Linux版本 147
4.6 基于C*Core的嵌入式
JARI-Linux 148
4.6.1 C*Core与Intel 80386处理器
体系结构的差别 148
4.6.2 JARI-Linux内核设计 149
4.6.3 JARI-Linux在JARI-EVB3118
开发板上的应用 155
第5章 嵌入式系统接口技术 159
5.1 接口概述 159
5.1.1 接口的基本概念 159
5.1.2 接口的功能 160
5.1.3 接口的组成 161
5.1.4 接口的数据传输方式 162
5.2 串行接口技术 165
5.2.1 基本概念 165
5.2.2 通用异步收发器 166
5.2.3 串行接口RS-232C标准 172
5.2.4 串行接口RS-422标准 174
5.3 并行接口技术 175
5.3.1 并行接口概述 175
5.3.2 可编程并行接口
芯片8255A 176
5.4 网络接口技术 179
5.4.1 网络概述 179
5.4.2 OSI 体系结构 180
5.4.3 以太网技术简介 181
5.4.4 介质访问控制协议
CSMA/CD 182
5.4.5 以太网地址 183
5.4.6 以太网的帧格式 183
5.4.7 网络互连设备 184
5.4.8 网络体系结构 189
5.4.9 解决通信时间不确定性的
几种方法 190
5.4.10 几种容错网络方案 192
5.5 数字/模拟、模拟/数字转换接口
技术 194
5.5.1 数模(D/A)转换器 194
5.5.2 模数(A/D)转换器 195
5.6 串行总线扩展技术 196
5.6.1 USB(通用串行总线) 196
5.6.2 IEEE-1394 197
5.6.3 I2C总线接口 198
第6章 嵌入式软件开发工具的设计 200
6.1 嵌入式软件开发过程及其
基本知识 200
6.1.1 什么是宿主机与目标机 200
6.1.2 早期的嵌入式软件开发
方式 201
6.1.3 现代的嵌入式软件开发方式
——交叉开发 201
6.1.4 交叉开发基本模型 203
6.2 嵌入式IDE开发方案的选择 204
6.3 功能与界面设计要点 206
6.4 基于Windows的IDE如何集成
GCC工具链 209
6.4.1 生成GCC工具链 209
6.4.2 在IDE的输出窗口中实时
显示编译信息 212
6.4.3 在IDE中双击编译信息实现
警告或错误定位 219
6.5 工程管理器的运用 222
6.5.1 功能与界面实现 222
6.5.2 工程管理与Makefile 224
6.5.3 工程管理器的技术实现 230
6.6 联机与程序下载 234
6.6.1 联机 234
6.6.2 程序下载 235
6.7 交叉调试器的实现 236
6.7.1 如何使下载的程序开始
运行 237
6.7.2 怎么在断点处停下来 238
6.7.3 下一步该停在哪儿 240
6.7.4 寄存器、内存和变量的
查看与修改是如何实现的 240
6.7.5 让调试器变得更体贴 243
第7章 基于Linux的编程实例 246
7.1 C*Core多功能开发板简介 246
7.1.1 存储器设计 247
7.1.2 接口设计和引脚说明 248
7.2 JARI-IDE简介 258
7.3 怎样使用仿真器 268
7.3.1 仿真器硬件及配置 268
7.3.2 仿真器的使用方法 268
7.3.3 仿真器调试程序的
具体步骤 269
7.4 中断处理 273
7.4.1 C*Core中断源 273
7.4.2 Linux中断处理 275
7.4.3 中断处理程序示例 276
7.5 看门狗定时器 280
7.5.1 看门狗定时器的操作模式及
寄存器 280
7.5.2 看门狗示例程序 283
7.6 音频输出 286
7.6.1 音频原理和说明 286
7.6.2 音频输出示例程序实验 287
7.7 文件系统应用 288
7.7.1 Linux文件系统特点 288
7.7.2 Yaffs文件系统的
基本原理 289
7.7.3 Linux下的文件系统应用 290
7.8 异步串行端口 290
7.8.1 异步串行I/O原理 290
7.8.2 串口终端函数 291
7.8.3 串行端口应用 292
7.9 SPI接口 294
7.9.1 C*Core SPI接口说明 295
7.9.2 SPI接口处理程序示例 296
7.10 I2C串行接口实验 297
7.10.1 I2C接口电路说明 297
7.10.2 示例程序 301
7.11 PS/2键盘实验 309
7.11.1 键盘按键的工作原理 309
7.11.2 PS/2键盘接口 309
7.11.3 键盘驱动程序流程 310
7.11.4 PS/2键盘应用程序示例 310
7.12 UCI接口实验 311
7.12.1 UCI简介 311
7.12.2 C*Core的UCI接口 312
7.12.3 UCI接口处理示例 312
7.13 矩阵键盘实验 315
7.13.1 矩阵键盘简介 315
7.13.2 键盘按键值的获取 315
7.13.3 矩阵键盘处理示例程序 316
7.14 USB接口实验 318
7.14.1 USB接口的特点 318
7.14.2 USB协议简介 319
7.14.3 USB设备在Linux内核中的
??配置 320
7.14.4 USB接口示例程序 321
7.15 Linux驱动框架 322
7.15.1 Linux系统下的设备驱动
? 程序 323
7.15.2 设备驱动程序设计示例 324
7.16 以太网卡驱动程序 326
7.16.1 8390网卡工作原理 327
7.16.2 网卡驱动程序示例 327
7.17 图形界面设计示例 329
7.17.1 图形界面简介 329
7.17.2 Nano-X的图形显示应用 330
7.17.3 图形界面设计示例 331
第8章 应用案例 339
8.1 零售网络管理信息系统简介 339
8.2 零售信息终端的工作原理及
主要功能 340
8.2.1 主要功能 340
8.2.2 设备组成原理 340
8.3 零售信息终端设计方案 342
8.3.1 硬件设计方案 342
8.3.2 零售信息终端软件方案 347
8.4 应用软件设计 350
8.4.1 初始化代码 350
8.4.2 输入事件处理模块 350
8.4.3 显示处理模块 351
8.4.4 数据处理模块 352
8.4.5 输入处理模块 352
8.4.6 远程数据传输模块的设计 353
猜您喜欢