积分兑换 >实物兑换 >【论坛送书活动获奖者专属】嵌入式实时操作系统:RT-Thread设计与实现
【论坛送书活动获奖者专属】嵌入式实时操作系统:RT-Thread设计与实现

【论坛送书活动获奖者专属】嵌入式实时操作系统:RT-Thread设计与实现

  • 参考价:¥89.00
  • 兑换价:180积分
  • 请登录查看积分
  • 库存量:0
  • 已兑换:37
  • 邮 费:免邮
  • 商品详情
  • 配送说明
  • 兑换说明

编辑推荐

适读人群 :1. 所有使用C/C++进行编程的开发人员 2. 高校计算机/电子/通信类专业学生 3. 嵌入式/物联网工程师 4. 电子工程师
  1)自研开源嵌入式实时操作系统RT-Thread核心作者撰写,专业性毋庸置疑 
  2)系统剖析嵌入式系统核心设计与实现,掌握物联网操作系统精髓 

内容简介

  本书由自研开源嵌入式实时操作系统RT-Thread核心作者撰写,专业性毋庸置疑,系统剖析嵌入式系统核心设计与实现,掌握物联网操作系统精髓。本书分为两大部分,共16章,第1~10章为内核篇;第11~16章为组件篇。 
  内核篇(第1~10章)详解RT-Thread内核,先对RT-Thread进行总体介绍,再分别介绍RT-Thread的核心技术——线程管理、时钟管理、线程间同步、线程间通信、内存管理、中断管理与内核移植。 
  组件篇(第11~16章)分别介绍Env开发环境、FinSH控制台、设备管理、文件系统和网络框架。 
  各章均有配套示例,方便读者动手实践和参考。 

作者简介

  邱祎,睿赛德科技联合创始人。从2006年在校时起参与开发RT-Thread开源操作系统,和中国国内优秀的工程师一起将RT-Thread从零发展起来,RT-Thread被广泛应用于能源、车载、医疗、消费电子等众多行业,成为国人自主开发、成熟稳定和装机量大的开源嵌入式操作系统。 
  熊谱翔,睿赛德科技创始人兼CEO,于2006年创立了RT-Thread开源操作系统,并以开源社区的形式,带领中国国内优秀的工程师,以从无到有的方式,融入实时面向对象设计开发了RT-Thread自主操作系统内核,及大量周边成熟、稳定软件组件,如文件系统、命令行、图形用户界面等。 
  朱天龙(Armink),睿赛德科技技术总监,负责RT-Thread物联网组件的研发,前沿技术探索及团队管理。曾任职于国内某知名医疗设备企业,担任研发部门经理要职,主导多个项目的研发实施和量产,并获得10余项国家发明专利。拥有近10年RT-Thread开发经验。他也是一位嵌入式开源极客,分享开源了EasyLogger、EasyFlash、CmBacktrace等数个活跃度极高的开源软件。 

目录

前言 
第一篇内核篇 
第1章嵌入式实时操作系统2 
1.1嵌入式系统3 
1.2实时系统4 
1.3嵌入式实时操作系统6 
1.3.1主流嵌入式实时操作系统7 
1.3.2发展趋势8 
1.4本章小结8 
第2章了解与快速上手RT-Thread9 
2.1RT-Thread概述9 
2.2RT-Thread的架构10 
2.3RT-Thread的获取11 
2.4RT-Thread快速上手12 
2.4.1准备环境13 
2.4.2初识RT-Thread16 
2.4.3跑马灯的例子20 
2.5本章小结21 
第3章内核基础22 
3.1RT-Thread内核介绍22 
3.2RT-Thread启动流程24 
3.3RT-Thread程序内存分布26 
3.4RT-Thread自动初始化机制28 
3.5RT-Thread内核对象模型29 
3.5.1静态对象和动态对象29 
3.5.2内核对象管理架构31 
3.5.3对象控制块33 
3.5.4内核对象管理方式34 
3.6RT-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.1RT-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事件集的工作机制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.2slab管理算法132 
8.2.3memheap管理算法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.1Cortex-MCPU架构基础146 
9.1.1寄存器介绍147 
9.1.2操作模式和特权级别148 
9.1.3嵌套向量中断控制器148 
9.1.4PendSV系统调用149 
9.2RT-Thread中断工作机制149 
9.2.1中断向量表149 
9.2.2中断处理过程151 
9.2.3中断嵌套153 
9.2.4中断栈154 
9.2.5中断的底半处理154 
9.3RT-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.1CPU架构移植165 
10.1.1实现全局中断开关166 
10.1.2实现线程栈初始化167 
10.1.3实现上下文切换168 
10.1.4实现时钟节拍174 
10.2BSP移植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.1Env简介186 
11.2Env的功能特点187 
11.3Env工程构建示例189 
11.4构建更多MDK工程196 
11.4.1创建外设示例工程196 
11.4.2创建文件系统示例工程198 
11.4.3创建网络示例工程202 
11.5本章小结206 
第12章FinSH控制台207 
12.1FinSH介绍207 
12.2FinSH内置命令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.4FinSH功能配置214 
12.5FinSH应用示例216 
12.5.1自定义msh命令示例216 
12.5.2带参数的msh命令示例217 
12.6本章小结218 
第13章I/O设备管理219 
13.1I/O设备介绍219 
13.1.1I/O设备管理框架219 
13.1.2I/O设备模型221 
13.1.3I/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.1UART串口232 
14.1.1串口设备管理233 
14.1.2创建和注册串口设备233 
14.1.3访问串口设备235 
14.1.4串口设备使用示例235 
14.2GPIO237 
14.2.1PIN设备管理238 
14.2.2创建和注册PIN设备238 
14.2.3访问PIN设备239 
14.2.4PIN设备使用示例242 
14.3SPI总线243 
14.3.1SPI设备管理244 
14.3.2创建和注册SPI总线设备246 
14.3.3创建和挂载SPI从设备247 
14.3.4访问SPI从设备249 
14.3.5特殊使用场景254 
14.3.6SPI设备使用示例255 
14.4I2C总线256 
14.4.1I2C设备管理258 
14.4.2创建和注册I2C总线设备258 
14.4.3访问I2C设备259 
14.4.4I2C设备应用示例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.1DFS介绍268 
15.1.1DFS架构269 
15.1.2POSIX接口层269 
15.1.3虚拟文件系统层270 
15.1.4设备抽象层270 
15.2文件系统挂载管理271 
15.2.1DFS组件初始化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.5DFS功能配置279 
15.6DFS应用示例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.1TCP/IP网络协议简介290 
16.1.1OSI参考模型290 
16.1.2TCP/IP参考模型291 
16.1.3TCP/IP参考模型和OSI参考模型的区别291 
16.1.4IP地址292 
16.1.5子网掩码292 
16.1.6MAC地址292 
16.2RT-Thread网络框架介绍292 
16.3网络框架工作流程294 
16.3.1网络协议簇注册294 
16.3.2网络数据接收流程295 
16.3.3网络数据发送流程296 
16.4网络套接字编程296 
16.4.1TCPsocket通信流程296 
16.4.2UDPsocket通信流程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.2TCP客户端示例306 
16.6.3UDP客户端示例310 
16.7本章小结312 
附录Amenuconfig配置选项313 
附录BSCons构建系统317 

前言/序言

   
  为什么要写这本书 
  自2006年发布V0.01版起,到今年正式发布V4.0版,RT-Thread历经12年的累积发展,凭借良好的口碑和开源免费的策略,已经拥有了一个国内最大的嵌入式开源社区,积聚了数十万的软件爱好者。RT-Thread广泛应用于能源、车载、医疗、消费电子等众多行业,已成为国人自主开发、最成熟稳定和装机量最大的开源嵌入式操作系统。 
  深处于行业之中,我们深刻地感受到近年来国内芯片产业和物联网产业快速崛起的趋势,行业发展迫切需要更多人才,尤其是掌握嵌入式操作系统等底层技术的人才,我们希望通过本书让RT-Thread触达更多人群,让更多的人了解集聚国人智慧的RT-Thread操作系统,从而让RT-Thread赋能更多行业,真正做到“积识成睿,慧泽百川”。 
  另外,高校学生是RT-Thread非常重视的群体,从2018年起,RT-Thread启动了一系列大学生计划,包括送书计划、培训计划、合作开课、赞助竞赛等,以帮助学生了解和学习RT-Thread,本书编写尽可能做到简单、易懂,让大学生能够轻松上手RT-Thread。希望本书能够加快RT-Thread在高校的普及。 
  总之,本书的初衷在于降低RT-Thread的学习门槛,让更多人能轻松学习、掌握RT-Thread,从而参与开发RT-Thread,共同打造开源、开放、小而美的物联网操作系统。 
优速快递
兑换前请查阅电子发烧友论坛积分商城兑换规则http://bbs.elecfans.com/jishu_1761742_1_1.html
Elecfans积分服务
赚取Elecfans积分
使用Elecfans积分
客服服务
微信关注