本篇主要提供嵌入式实时操作系统:RT-Thread设计与实现邱祎熊谱翔朱天龙电子与嵌入式系统设计丛书电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
商品基本信息 | |
商品名称: | 嵌入式实时操作系统:RT-Thread设计与实现 |
作者: | 邱祎 熊谱翔 朱天龙 |
市场价: | 89.00 |
ISBN号: | 9787111619345 |
版次: | 1-1 |
出版日期: | 2019-03 |
页数: | 333 |
字数: | 250 |
出版社: | 机械工业出版社 |
内容简介 | |
第壹篇为内核篇(*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 事 件 集的工作机制 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 |