嵌入式实时操作系统的多线程计算:基于ThreadX和ARM(附光盘)
作者:(美)拉姆耶(Lamie,E.L.) 著,张炯 等译
出版:北京航天航空大学出版社 2005.10
丛书:嵌入式系统译丛
页数:328
定价:46.00 元
ISBN-10:7810776290
ISBN-13:9787810776295 去豆瓣看看
出版:北京航天航空大学出版社 2005.10
丛书:嵌入式系统译丛
页数:328
定价:46.00 元
ISBN-10:7810776290
ISBN-13:9787810776295 去豆瓣看看
目 录内容简介
第1章 嵌入式实时操作系统1
1.1 介绍1
1.2 何谓嵌入式系统1
1.3 嵌入式系统的特征2
1.4 实时系统2
1.5 实时操作系统和实时内核2
1.6 进程、任务和线程3
1.7 实时系统的系统结构4
1.8 嵌入式系统的开发5
1.9 关键词和术语5
查看完整
1.1 介绍1
1.2 何谓嵌入式系统1
1.3 嵌入式系统的特征2
1.4 实时系统2
1.5 实时操作系统和实时内核2
1.6 进程、任务和线程3
1.7 实时系统的系统结构4
1.8 嵌入式系统的开发5
1.9 关键词和术语5
查看完整
目 录内容简介
本书介绍和分析了嵌入式系统的重要概念和应用设计方法,并提供了多个基于ARM平台的多线程应用实例。重点从实时、多线程、ThreadX和ARM处理器结合的角度进行展开,并用实际的案例分析将它们与应用相结合。读者可从中获得完成自己的应用所需的所有细节,包括ARM处理器的概况和ThreadX实时操作系统(RTOS)所提供的所有服务。
本书面向高校计算机专业师生、嵌入式应用的中高级设计开发人员、实时系统的应用与研究人员,也可作为高校计算机及相关专业的嵌入式课程教材。
本书面向高校计算机专业师生、嵌入式应用的中高级设计开发人员、实时系统的应用与研究人员,也可作为高校计算机及相关专业的嵌入式课程教材。
目 录内容简介
第1章 嵌入式实时操作系统1
1.1 介绍1
1.2 何谓嵌入式系统1
1.3 嵌入式系统的特征2
1.4 实时系统2
1.5 实时操作系统和实时内核2
1.6 进程、任务和线程3
1.7 实时系统的系统结构4
1.8 嵌入式系统的开发5
1.9 关键词和术语5
第2章 初步了解使用RTOS的系统7
2.1 操作环境7
2.2 ThreadX演示系统的安装7
2.3 包含两个线程的演示系统7
2.4 创建线程对象9
2.5 编译并执行示例系统11
2.6 系统和输出结果的分析11
2.7 02_sample_system.c代码清单12
2.8 关键词和术语17
2.9 问题18
第3章 RTOS概念和定义19
3.1 介绍19
3.2 优先级19
3.3 就绪线程和挂起线程20
3.4 占先,基于优先级的调度21
3.5 轮转调度21
3.6 确定性22
3.7 内核22
3.8 RTOS22
3.9 上下文切换23
3.10 时间片轮转23
3.11 中断处理23
3.12 线程饥饿23
3.13 优先级翻转24
3.14 优先级继承24
3.15 抢占阀值25
3.16 关键词和术语25
3.17 问题26
第4章 用于系统开发的基本RTOS组件27
4.1 介绍27
4.2 定义公共资源27
4.3 ThreadX 数据类型28
4.4 线程28
4.5 内存池29
4.6 应用定时器31
4.7 互斥量31
4.8 计数信号量32
4.9 事件标志组33
4.10 消息队列33
4.11 线程同步和通信组件总结34
4.12 关键词和术语35
4.13 问题36
第5章 ARM微处理器简介37
5.1 介绍37
5.2 历史37
5.3 技术特征38
5.3.1 兼容片上系统38
5.3.2 低功耗39
5.3.3 改进的代码密度39
5.3.4 多样化的寄存器39
5.3.5 CPSR的定义41
5.3.6 处理器模式42
5.4 ARM对节能的支持43
5.5 关键词和术语43
第6章 线程45
6.1 介绍45
6.2 线程控制块45
6.3 线程调用综述46
6.4 创建线程47
6.5 删除线程52
6.6 识别线程53
6.7 获取线程信息53
6.8 改变抢占门限54
6.9 改变优先级54
6.10 放弃执行55
6.11 恢复线程执行55
6.12 线程睡眠55
6.13 挂起线程56
6.14 中止线程56
6.15 改变时间片56
6.16 中止线程等待57
6.17 线程执行综述57
6.18 线程状态58
6.19 线程设计59
6.19.1 最小化线程的数量60
6.19.2 谨慎设置优先级60
6.19.3 最小化优先级的数目60
6.19.4 考虑使用抢占门限60
6.19.5 考虑优先级继承61
6.19.6 考虑轮转调度方式61
6.19.7 考虑时间片61
6.20 线程内部结构61
6.21 总结62
6.22 关键词和术语63
6.23 问题64
第7章 互斥量66
7.1 介绍66
7.2 保护临界区66
7.3 提供对共享资源的互斥访问67
7.4 互斥量控制块67
7.5 互斥量服务综述68
7.6 创建一个互斥量68
7.7 删除一个互斥量69
7.8 申请互斥量69
7.9 获取互斥量信息70
7.10 按优先级调整挂起队列71
7.11 释放一个信号量71
7.12 避免死锁72
7.13 用互斥量保护临界区的示例程序73
7.14 示例程序的输出78
7.15 07_sample_system.c代码清单80
7.16 互斥量内部结构85
7.17 总结86
7.18 关键词和术语86
7.19 问题87
第8章 内存管理:字节池和块池88
8.1 介绍88
8.2 内存字节池概述88
8.3 内存字节池控制块89
8.4 内存字节池的缺陷90
8.5 内存字节池服务概述91
8.6 创建内存字节池91
8.7 从内存字节池中分配内存92
8.8 删除内存字节池92
8.9 获取内存字节池信息93
8.10 优先排列内存字节池挂起列表93
8.11 释放内存到内存字节池94
8.12 内存字节池例程——分配线程堆栈94
8.13 内存字节池内部机制95
8.14 内存块池概述97
8.15 内存块池控制块98
8.16 内存块池服务概述98
8.17 创建内存块池99
8.18 从内存块池中分配内存100
8.19 删除内存块池100
8.20 获取内存块池信息101
8.21 优先排列内存块池挂起列表102
8.22 释放内存块102
8.23 内存块池例程——分配线程堆栈103
8.24 内存块池内部机制104
8.25 总结和对比104
8.26 关键词和术语105
8.27 问题105
第9章 内部系统时钟和应用定时器107
9.1 介绍107
9.2 内部系统时钟服务108
9.3 应用定时器控制块109
9.4 应用定时器服务概述110
9.5 创建应用定时器110
9.6 启动应用定时器111
9.7 修改应用定时器112
9.8 停止应用定时器112
9.9 删除应用定时器113
9.10 获取应用定时器信息113
9.11 使用定时器测量线程性能的例程114
9.12 09_sample_system.c代码清单117
9.13 应用定时器内部机制123
9.14 总结124
9.15 关键词和术语124
9.16 问题125
第10章 事件通知和利用信号量同步线程127
10.1 介绍127
10.2 计数信号量控制块128
10.3 避免死锁129
10.4 防止优先级倒置129
10.5 信号量服务综述129
10.6 创建一个信号量129
10.7 删除一个信号量130
10.8 从信号量申请一个实例131
10.9 获取信号量的信息131
10.10 按优先级调整信号量的挂起队列132
10.11 向信号量放入一个实例132
10.12 对比信号量和互斥量133
10.13 使用二进制信号量代替互斥量的示例程序134
10.14 10a_sample_system.c代码清单135
10.15 在生产者—消费者程序中使用信号量的例子142
10.16 10b_sample_system.c代码清单144
10.17 信号量内部结构150
10.18 总结151
10.19 关键词和术语151
10.20 问题152
第11章 用事件标志组同步线程153
11.1 介绍153
11.2 事件标志组控制块154
11.3 事件标志组服务综述155
11.4 创建一个组155
11.5 删除一个组156
11.6 等待组中的标志被置位156
11.7 获取组的信息159
11.8 设置组中的事件标志159
11.9 使用事件标志组同步两个线程的示例系统161
11.10 11_sample_system.c代码清单164
11.11 事件标志组内部结构170
11.12 总结171
11.13 关键词和术语171
11.14 问题172
第12章 使用消息队列进行线程通信173
12.1 介绍173
12.2 消息队列控制块174
12.3 消息队列服务函数的概要175
12.4 创建消息队列176
12.5 向消息队列发送消息176
12.6 从消息队列中获取消息177
12.7 删除消息队列178
12.8 清除消息队列中的内容178
12.9 向消息队列头发送消息179
12.10 检索消息队列信息179
12.11 将消息队列挂起列表以优先顺序排列180
12.12 使用消息队列作为线程间通信的示例系统181
12.13 12_sample_system.c代码清单184
12.14 消息队列的内部190
12.15 总结191
12.16 关键词和术语192
12.17 问题192
第13章 ARM异常处理193
13.1 介绍193
13.2 ThreadX对ARM异常处理的实现194
13.2.1 复位向量的初始化194
13.2.2 线程的调度196
13.2.3 ThreadX中断处理199
13.2.4 内部中断处理201
13.3 关键词和术语203
第14章 案例分析:设计一个多线程系统204
14.1 介绍204
14.2 问题的描述205
14.3 问题的分析207
14.4 系统的设计209
14.4.1 线程设计209
14.4.2 公共资源设计210
14.5 实现213
14.6 VAM System代码清单226
14.7 总结237
附录239
附录A 内存块池服务241
附录B 内存字节池服务249
附录C 事件标志组服务257
附录D 中断控制服务265
附录E 互斥量服务267
附录F 消息队列服务函数275
附录G 信号量服务287
附录H 线程服务295
附录I 内部系统时钟服务313
附录J 应用定时器服务315
附录K ThreadX API323
^ 收 起
1.1 介绍1
1.2 何谓嵌入式系统1
1.3 嵌入式系统的特征2
1.4 实时系统2
1.5 实时操作系统和实时内核2
1.6 进程、任务和线程3
1.7 实时系统的系统结构4
1.8 嵌入式系统的开发5
1.9 关键词和术语5
第2章 初步了解使用RTOS的系统7
2.1 操作环境7
2.2 ThreadX演示系统的安装7
2.3 包含两个线程的演示系统7
2.4 创建线程对象9
2.5 编译并执行示例系统11
2.6 系统和输出结果的分析11
2.7 02_sample_system.c代码清单12
2.8 关键词和术语17
2.9 问题18
第3章 RTOS概念和定义19
3.1 介绍19
3.2 优先级19
3.3 就绪线程和挂起线程20
3.4 占先,基于优先级的调度21
3.5 轮转调度21
3.6 确定性22
3.7 内核22
3.8 RTOS22
3.9 上下文切换23
3.10 时间片轮转23
3.11 中断处理23
3.12 线程饥饿23
3.13 优先级翻转24
3.14 优先级继承24
3.15 抢占阀值25
3.16 关键词和术语25
3.17 问题26
第4章 用于系统开发的基本RTOS组件27
4.1 介绍27
4.2 定义公共资源27
4.3 ThreadX 数据类型28
4.4 线程28
4.5 内存池29
4.6 应用定时器31
4.7 互斥量31
4.8 计数信号量32
4.9 事件标志组33
4.10 消息队列33
4.11 线程同步和通信组件总结34
4.12 关键词和术语35
4.13 问题36
第5章 ARM微处理器简介37
5.1 介绍37
5.2 历史37
5.3 技术特征38
5.3.1 兼容片上系统38
5.3.2 低功耗39
5.3.3 改进的代码密度39
5.3.4 多样化的寄存器39
5.3.5 CPSR的定义41
5.3.6 处理器模式42
5.4 ARM对节能的支持43
5.5 关键词和术语43
第6章 线程45
6.1 介绍45
6.2 线程控制块45
6.3 线程调用综述46
6.4 创建线程47
6.5 删除线程52
6.6 识别线程53
6.7 获取线程信息53
6.8 改变抢占门限54
6.9 改变优先级54
6.10 放弃执行55
6.11 恢复线程执行55
6.12 线程睡眠55
6.13 挂起线程56
6.14 中止线程56
6.15 改变时间片56
6.16 中止线程等待57
6.17 线程执行综述57
6.18 线程状态58
6.19 线程设计59
6.19.1 最小化线程的数量60
6.19.2 谨慎设置优先级60
6.19.3 最小化优先级的数目60
6.19.4 考虑使用抢占门限60
6.19.5 考虑优先级继承61
6.19.6 考虑轮转调度方式61
6.19.7 考虑时间片61
6.20 线程内部结构61
6.21 总结62
6.22 关键词和术语63
6.23 问题64
第7章 互斥量66
7.1 介绍66
7.2 保护临界区66
7.3 提供对共享资源的互斥访问67
7.4 互斥量控制块67
7.5 互斥量服务综述68
7.6 创建一个互斥量68
7.7 删除一个互斥量69
7.8 申请互斥量69
7.9 获取互斥量信息70
7.10 按优先级调整挂起队列71
7.11 释放一个信号量71
7.12 避免死锁72
7.13 用互斥量保护临界区的示例程序73
7.14 示例程序的输出78
7.15 07_sample_system.c代码清单80
7.16 互斥量内部结构85
7.17 总结86
7.18 关键词和术语86
7.19 问题87
第8章 内存管理:字节池和块池88
8.1 介绍88
8.2 内存字节池概述88
8.3 内存字节池控制块89
8.4 内存字节池的缺陷90
8.5 内存字节池服务概述91
8.6 创建内存字节池91
8.7 从内存字节池中分配内存92
8.8 删除内存字节池92
8.9 获取内存字节池信息93
8.10 优先排列内存字节池挂起列表93
8.11 释放内存到内存字节池94
8.12 内存字节池例程——分配线程堆栈94
8.13 内存字节池内部机制95
8.14 内存块池概述97
8.15 内存块池控制块98
8.16 内存块池服务概述98
8.17 创建内存块池99
8.18 从内存块池中分配内存100
8.19 删除内存块池100
8.20 获取内存块池信息101
8.21 优先排列内存块池挂起列表102
8.22 释放内存块102
8.23 内存块池例程——分配线程堆栈103
8.24 内存块池内部机制104
8.25 总结和对比104
8.26 关键词和术语105
8.27 问题105
第9章 内部系统时钟和应用定时器107
9.1 介绍107
9.2 内部系统时钟服务108
9.3 应用定时器控制块109
9.4 应用定时器服务概述110
9.5 创建应用定时器110
9.6 启动应用定时器111
9.7 修改应用定时器112
9.8 停止应用定时器112
9.9 删除应用定时器113
9.10 获取应用定时器信息113
9.11 使用定时器测量线程性能的例程114
9.12 09_sample_system.c代码清单117
9.13 应用定时器内部机制123
9.14 总结124
9.15 关键词和术语124
9.16 问题125
第10章 事件通知和利用信号量同步线程127
10.1 介绍127
10.2 计数信号量控制块128
10.3 避免死锁129
10.4 防止优先级倒置129
10.5 信号量服务综述129
10.6 创建一个信号量129
10.7 删除一个信号量130
10.8 从信号量申请一个实例131
10.9 获取信号量的信息131
10.10 按优先级调整信号量的挂起队列132
10.11 向信号量放入一个实例132
10.12 对比信号量和互斥量133
10.13 使用二进制信号量代替互斥量的示例程序134
10.14 10a_sample_system.c代码清单135
10.15 在生产者—消费者程序中使用信号量的例子142
10.16 10b_sample_system.c代码清单144
10.17 信号量内部结构150
10.18 总结151
10.19 关键词和术语151
10.20 问题152
第11章 用事件标志组同步线程153
11.1 介绍153
11.2 事件标志组控制块154
11.3 事件标志组服务综述155
11.4 创建一个组155
11.5 删除一个组156
11.6 等待组中的标志被置位156
11.7 获取组的信息159
11.8 设置组中的事件标志159
11.9 使用事件标志组同步两个线程的示例系统161
11.10 11_sample_system.c代码清单164
11.11 事件标志组内部结构170
11.12 总结171
11.13 关键词和术语171
11.14 问题172
第12章 使用消息队列进行线程通信173
12.1 介绍173
12.2 消息队列控制块174
12.3 消息队列服务函数的概要175
12.4 创建消息队列176
12.5 向消息队列发送消息176
12.6 从消息队列中获取消息177
12.7 删除消息队列178
12.8 清除消息队列中的内容178
12.9 向消息队列头发送消息179
12.10 检索消息队列信息179
12.11 将消息队列挂起列表以优先顺序排列180
12.12 使用消息队列作为线程间通信的示例系统181
12.13 12_sample_system.c代码清单184
12.14 消息队列的内部190
12.15 总结191
12.16 关键词和术语192
12.17 问题192
第13章 ARM异常处理193
13.1 介绍193
13.2 ThreadX对ARM异常处理的实现194
13.2.1 复位向量的初始化194
13.2.2 线程的调度196
13.2.3 ThreadX中断处理199
13.2.4 内部中断处理201
13.3 关键词和术语203
第14章 案例分析:设计一个多线程系统204
14.1 介绍204
14.2 问题的描述205
14.3 问题的分析207
14.4 系统的设计209
14.4.1 线程设计209
14.4.2 公共资源设计210
14.5 实现213
14.6 VAM System代码清单226
14.7 总结237
附录239
附录A 内存块池服务241
附录B 内存字节池服务249
附录C 事件标志组服务257
附录D 中断控制服务265
附录E 互斥量服务267
附录F 消息队列服务函数275
附录G 信号量服务287
附录H 线程服务295
附录I 内部系统时钟服务313
附录J 应用定时器服务315
附录K ThreadX API323
^ 收 起
目 录内容简介
本书介绍和分析了嵌入式系统的重要概念和应用设计方法,并提供了多个基于ARM平台的多线程应用实例。重点从实时、多线程、ThreadX和ARM处理器结合的角度进行展开,并用实际的案例分析将它们与应用相结合。读者可从中获得完成自己的应用所需的所有细节,包括ARM处理器的概况和ThreadX实时操作系统(RTOS)所提供的所有服务。
本书面向高校计算机专业师生、嵌入式应用的中高级设计开发人员、实时系统的应用与研究人员,也可作为高校计算机及相关专业的嵌入式课程教材。
本书面向高校计算机专业师生、嵌入式应用的中高级设计开发人员、实时系统的应用与研究人员,也可作为高校计算机及相关专业的嵌入式课程教材。
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠