嵌入式实时操作系统:RT-Thread设计与实现邱祎熊谱翔朱天龙pdf下载pdf下载

嵌入式实时操作系统:RT-Thread设计与实现邱祎熊谱翔朱天龙百度网盘pdf下载

作者:
简介:本篇主要提供嵌入式实时操作系统:RT-Thread设计与实现邱祎熊谱翔朱天龙pdf下载
出版社:互动出版网图书专营店
出版时间:2019-02
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

 书名:  嵌入式实时操作系统:RT-Thread设计与实现|8056828
 图书定价: 89元
 图书作者: 邱祎 熊谱翔 朱天龙
 出版社:  机械工业出版社
 出版日期:  2019/2/25 0:00:00
 ISBN号: 9787111619345
 开本: 16开
 页数: 345
 版次: 1-1
 作者简介
邱祎 熊谱翔 朱天龙 著:邱祎,上海睿赛德电子科技有限公司联合创始人。从2006年在校时起参与开发RT-Thread开源操作系统,和中国国内优秀的工程师一起将RT-Thread从零发展起来,RT-Thread被广泛应用于能源、车载、医疗、消费电子等众多行业,成为国人自主开发、zui成熟稳定和装机量zuida的开源嵌入式操作系统。

熊谱翔,上海睿赛德电子科技有限公司创始人兼CEO,于2006年创立了RT-Thread开源操作系统,并以开源社区的形式,带领中国国内优秀的工程师,以从无到有的方式,融入实时面向对象设计开发了RT-Thread自主操作系统内核,及大量周边成熟、稳定软件组件,如文件系统、命令行、图形用户界面等。

朱天龙(Armink),睿赛德科技技术总监,负责RT-Thread物联网组件的研发,前沿技术探索及团队管理。曾任职于国内某知名医疗设备企业,担任研发部门经理要职,主导多个项目的研发实施和量产,并获得10余项国家发明专利。拥有近10年RT-Thread开发经验。他也是一位嵌入式开源极客,分享开源了EasyLogger、EasyFlash、CmBacktrace 等数个活跃度极高的开源软件。

邱祎,上海睿赛德电子科技有限公司联合创始人。从2006年在校时起参与开发RT-Thread开源操作系统,和中国国内优秀的工程师一起将RT-Thread从零发展起来,RT-Thread被广泛应用于能源、车载、医疗、消费电子等众多行业,成为国人自主开发、zui成熟稳定和装机量zuida的开源嵌入式操作系统。

熊谱翔,上海睿赛德电子科技有限公司创始人兼CEO,于2006年创立了RT-Thread开源操作系统,并以开源社区的形式,带领中国国内优秀的工程师,以从无到有的方式,融入实时面向对象设计开发了RT-Thread自主操作系统内核,及大量周边成熟、稳定软件组件,如文件系统、命令行、图形用户界面等。

朱天龙(Armink),睿赛德科技技术总监,负责RT-Thread物联网组件的研发,前沿技术探索及团队管理。曾任职于国内某知名医疗设备企业,担任研发部门经理要职,主导多个项目的研发实施和量产,并获得10余项国家发明专利。拥有近10年RT-Thread开发经验。他也是一位嵌入式开源极客,分享开源了EasyLogger、EasyFlash、CmBacktrace 等数个活跃度极高的开源软件。

 内容简介
第一篇为内核篇(第1-10章),详细讲解了 RT-Thread 的设计思想,各个功能模块如线程、邮箱、消息队列、事件、信号、定时器和系统时钟、中断和异常、内存池、堆管理、移植的工作机制和应用方式,也提供了大量的示例供参考。
第二篇为组件篇(第11-16章),详细讲解了命令行 Shell,文件系统,网络协议栈的工作机制和应用方式,并提供了示例供参考。
通过阅读本书,读者不仅能学习和掌握嵌入式操作系统内核和常用组件的工作机制和应用方式,而且也能够通过配套的示例代码,实际动手深入体会,对未来实际应用与开发提供参考。
 目录

前言
第一篇 内核篇
第1章 嵌入式实时操作系统 2
1.1 嵌入式系统 3
1.2 实时系统 4
1.3 嵌入式实时操作系统 6
1.3.1 主流嵌入式实时操作系统 7
1.3.2 发展趋势 8
1.4 本章小结 8
第2章 了解与快速上手RT-Thread 9
2.1 RT-Thread概述 9
2.2 RT-Thread的架构 10
2.3 RT-Thread的获取 11
2.4 RT-Thread快速上手 12
2.4.1 准备环境 13
2.4.2 初识RT-Thread 16
2.4.3 跑马灯的例子 20
2.5 本章小结 21
第3章 内核基础 22
3.1 RT-Thread内核介绍 22
3.2 RT-Thread 启动流程 24
3.3 RT-Thread程序内存分布 26
3.4 RT-Thread自动初始化机制 28
3.5 RT-Thread内核对象模型 29
3.5.1 静态对象和动态对象 29
3.5.2 内核对象管理架构 31
3.5.3 对象控制块 33
3.5.4 内核对象管理方式 34
3.6 RT-Thread内核配置示例 36
3.7 常见宏定义说明 38
3.8 本章小结 39
第4章 线程管理 40
4.1 线程管理的功能特点 40
4.2 线程的工作机制 41
4.2.1 线程控制块 41
4.2.2 线程的重要属性 42
4.2.3 线程状态切换 45
4.2.4 系统线程 46
4.3 线程的管理方式 46
4.3.1 创建和删除线程 47
4.3.2 初始化和脱离线程 48
4.3.3 启动线程 49
4.3.4 获得当前线程 50
4.3.5 使线程让出处理器资源 50
4.3.6 使线程睡眠 50
4.3.7 挂起和恢复线程 51
4.3.8 控制线程 52
4.3.9 设置和删除空闲钩子 52
4.3.10 设置调度器钩子 53
4.4 线程应用示例 53
4.4.1 创建线程示例 54
4.4.2 线程时间片轮转调度示例 56
4.4.3 线程调度器钩子示例 57
4.5 本章小结 59
第5章 时钟管理 60
5.1 时钟节拍 60
5.1.1 时钟节拍的实现方式 60
5.1.2 获取时钟节拍 61
5.2 定时器管理 62
5.2.1 RT-Thread定时器介绍 62
5.2.2 定时器的工作机制 63
5.2.3 定时器的管理方式 65
5.3 定时器应用示例 69
5.4 高精度延时 72
5.5 本章小结 73
第6章 线程间同步 74
6.1 信号量 75
6.1.1 信号量的工作机制 75
6.1.2 信号量控制块 75
6.1.3 信号量的管理方式 76
6.1.4 信号量应用示例 79
6.1.5 信号量的使用场合 85
6.2 互斥量 87
6.2.1 互斥量的工作机制 87
6.2.2 互斥量控制块 89
6.2.3 互斥量的管理方式 89
6.2.4 互斥量应用示例 92
6.2.5 互斥量的使用场合 97
6.3 事件集 97
6.3.1 shi件集的工作机制 97
6.3.2 事件集控制块 98
6.3.3 事件集的管理方式 99
6.3.4 事件集应用示例 101
6.3.5 事件集的使用场合 104
6.4 本章小结 104
第7章 线程间通信 105
7.1 邮箱 105
7.1.1 邮箱的工作机制 105
7.1.2 邮箱控制块 106
7.1.3 邮箱的管理方式 106
7.1.4 邮箱使用示例 110
7.1.5 邮箱的使用场合 112
7.2 消息队列 113
7.2.1 消息队列的工作机制 113
7.2.2 消息队列控制块 114
7.2.3 消息队列的管理方式 115
7.2.4 消息队列应用示例 118
7.2.5 消息队列的使用场合 121
7.3 信号 123
7.3.1 信号的工作机制 123
7.3.2 信号的管理方式 124
7.3.3 信号应用示例 126
7.4 本章小节 128
第8章 内存管理 129
8.1 内存管理的功能特点 129
8.2 内存堆管理 130
8.2.1 小内存管理算法 131
8.2.2 slab管理算法 132
8.2.3 memheap管理算法 133
8.2.4 内存堆配置和初始化 134
8.2.5 内存堆的管理方式 134
8.2.6 内存堆管理应用示例 136
8.3 内存池 138
8.3.1 内存池的工作机制 139
8.3.2 内存池的管理方式 140
8.3.3 内存池应用示例 143
8.4 本章小结 145
第9章 中断管理 146
9.1 Cortex-M CPU架构基础 146
9.1.1 寄存器介绍 147
9.1.2 操作模式和特权级别 148
9.1.3 嵌套向量中断控制器 148
9.1.4 PendSV系统调用 149
9.2 RT-Thread中断工作机制 149
9.2.1 中断向量表 149
9.2.2 中断处理过程 151
9.2.3 中断嵌套 153
9.2.4 中断栈 154
9.2.5 中断的底半处理 154
9.3 RT-Thread中断管理接口 156
9.3.1 中断服务程序挂接 157
9.3.2 中断源管理 158
9.3.3 全局中断开关 158
9.3.4 中断通知 160
9.4 中断与轮询 161
9.5 全局中断开关使用示例 162
9.6 本章小结 164
第10章 内核移植 165
10.1 CPU架构移植 165
10.1.1 实现全局中断开关 166
10.1.2 实现线程栈初始化 167
10.1.3 实现上下文切换 168
10.1.4 实现时钟节拍 174
10.2 BSP移植 175
10.3 内核移植示例 175
10.3.1 准备裸机工程 176
10.3.2 建立RT-Thread工程 177
10.3.3 实现时钟管理 179
10.3.4 实现控制台输出 180
10.3.5 实现动态堆内存管理 181
10.3.6 移植到更多开发板 183
10.4 本章小结 184
第二篇 组件篇
第11章 Env辅助开发环境 186
11.1 Env简介 186
11.2 Env的功能特点 187
11.3 Env工程构建示例 189
11.4 构建更多MDK工程 196
11.4.1 创建外设示例工程 196
11.4.2 创建文件系统示例工程 198
11.4.3 创建网络示例工程 202
11.5 本章小结 206
第12章 FinSH控制台 207
12.1 FinSH介绍 207
12.2 FinSH内置命令 209
12.2.1 显示线程状态 210
12.2.2 显示信号量状态 210
12.2.3 显示事件状态 210
12.2.4 显示互斥量状态 210
12.2.5 显示邮箱状态 211
12.2.6 显示消息队列状态 211
12.2.7 显示内存池状态 211
12.2.8 显示定时器状态 212
12.2.9 显示设备状态 212
12.2.10 显示动态内存状态 212
12.3 自定义FinSH命令 213
12.3.1 自定义msh命令 213
12.3.2 自定义C-Style命令和变量 213
12.3.3 自定义命令重命名 214
12.4 FinSH功能配置 214
12.5 FinSH应用示例 216
12.5.1 自定义msh命令示例 216
12.5.2 带参数的msh命令示例 217
12.6 本章小结 218
第13章 I/O设备管理 219
13.1 I/O设备介绍 219
13.1.1 I/O设备管理框架 219
13.1.2 I/O设备模型 221
13.1.3 I/O设备类型 222
13.2 创建和注册I/O设备 223
13.3 访问I/O设备 226
13.3.1 查找设备 226
13.3.2 初始化设备 227
13.3.3 打开和关闭设备 227
13.3.4 控制设备 228
13.3.5 读写设备 229
13.3.6 数据收发回调 229
13.3.7 设备访问示例 230
13.4 本章小结 231
第14章 通用外设接口 232
14.1 UART串口 232
14.1.1 串口设备管理 233
14.1.2 创建和注册串口设备 233
14.1.3 访问串口设备 235
14.1.4 串口设备使用示例 235
14.2 GPIO 237
14.2.1 PIN设备管理 238
14.2.2 创建和注册PIN设备 238
14.2.3 访问PIN设备 239
14.2.4 PIN设备使用示例 242
14.3 SPI总线 243
14.3.1 SPI设备管理 244
14.3.2 创建和注册SPI总线设备 246
14.3.3 创建和挂载SPI从设备 247
14.3.4 访问SPI从设备 249
14.3.5 特殊使用场景 254
14.3.6 SPI设备使用示例 255
14.4 I2C总线 256
14.4.1 I2C设备管理 258
14.4.2 创建和注册I2C总线设备 258
14.4.3 访问I2C设备 259
14.4.4 I2C设备应用示例 260
14.5 运行设备应用示例 263
14.5.1 运行PIN设备示例 264
14.5.2 运行SPI设备示例 265
14.5.3 运行I2C设备示例 266
14.5.4 运行串口设备示例 266
14.6 本章小结 267
第15章 虚拟文件系统 268
15.1 DFS介绍 268
15.1.1 DFS架构 269
15.1.2 POSIX接口层 269
15.1.3 虚拟文件系统层 270
15.1.4 设备抽象层 270
15.2 文件系统挂载管理 271
15.2.1 DFS组件初始化 271
15.2.2 注册文件系统 271
15.2.3 将存储设备注册为块设备 271
15.2.4 格式化文件系统 272
15.2.5 挂载文件系统 273
15.2.6 卸载文件系统 273
15.3 文件管理 273
15.3.1 打开和关闭文件 273
15.3.2 读写数据 274
15.3.3 重命名 275
15.3.4 获取状态 275
15.3.5 删除文件 275
15.3.6 同步文件数据到存储设备 276
15.3.7 查询文件系统相关信息 276
15.3.8 监视I/O设备状态 276
15.4 目录管理 277
15.4.1 创建和删除目录 277
15.4.2 打开和关闭目录 277
15.4.3 读取目录 278
15.4.4 获取目录流的读取位置 278
15.4.5 设置下次读取目录的位置 278
15.4.6 重设读取目录的位置为开头位置 279
15.5 DFS功能配置 279
15.6 DFS应用示例 279
15.6.1 准备工作 280
15.6.2 读写文件示例 283
15.6.3 更改文件名称示例 284
15.6.4 获取文件状态示例 285
15.6.5 创建目录示例 286
15.6.6 读取目录示例 286
15.6.7 设置读取目录位置示例 287
15.7 本章小结 289
第16章 网络框架 290
16.1 TCP/IP网络协议简介 290
16.1.1 OSI参考模型 290
16.1.2 TCP/IP参考模型 291
16.1.3 TCP/IP参考模型和OSI参考模型的区别 291
16.1.4 IP地址 292
16.1.5 子网掩码 292
16.1.6 MAC 地址 292
16.2 RT-Thread网络框架介绍 292
16.3 网络框架工作流程 294
16.3.1 网络协议簇注册 294
16.3.2 网络数据接收流程 295
16.3.3 网络数据发送流程 296
16.4 网络套接字编程 296
16.4.1 TCP socket通信流程 296
16.4.2 UDP socket通信流程 297
16.4.3 创建套接字 298
16.4.4 绑定套接字 298
16.4.5 建立TCP连接 299
16.4.6 数据传输 300
16.4.7 关闭网络连接 301
16.5 网络功能配置 302
16.6 网络应用示例 303
16.6.1 准备工作 303
16.6.2 TCP客户端示例 306
16.6.3 UDP客户端示例 310
16.7 本章小结 312
附录A menuconfig配置选项 313
附录B SCons构建系统 317

 编辑推荐
自研开源嵌入式实时操作系统RT-Thread核心作者撰写,专业性毋庸置疑
系统剖析嵌入式系统核心设计与实现,掌握物联网操作系统精髓