×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
物联网操作系统LiteOS内核开发与实践/刘旭明

物联网操作系统LiteOS内核开发与实践/刘旭明

1星价 ¥37.4 (7.5折)
2星价¥37.4 定价¥49.8
暂无评论
图文详情
  • ISBN:9787115529091
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:280
  • 出版时间:2020-07-01
  • 条形码:9787115529091 ; 978-7-115-52909-1

本书特色

本书较为全面地介绍了华为物联网操作系统LiteOS内核相关知识。全书共12章,介绍了LiteOS的移植与内核资源的应用,如创建任务、任务管理、消息队列、信号量、互斥锁、事件、软件定时器、内存管理、中断管理及链表等操作,深入讲解了内核资源的概念、运行机制、应用场景及源码。本书提供了大量实验,通过练习和操作实践,读者可巩固所学的内容。 本书可以作为高校物联网、嵌入式等相关专业的教材,也可以作为物联网、嵌入式培训班的教材,还适合物联网开发人员、从事物联网技术支持的专业人员和广大嵌入式爱好者自学使用。

内容简介

本书较为全面地介绍了华为物联网操作系统LiteOS内核相关知识。全书共12章,介绍了LiteOS的移植与内核资源的应用,如创建任务、任务管理、消息队列、信号量、互斥锁、事件、软件定时器、内存管理、中断管理及链表等操作,深入讲解了内核资源的概念、运行机制、应用场景及源码。本书提供了大量实验,通过练习和操作实践,读者可巩固所学的内容。 本书可以作为高校物联网、嵌入式等相关专业的教材,也可以作为物联网、嵌入式培训班的教材,还适合物联网开发人员、从事物联网技术支持的专业人员和广大嵌入式爱好者自学使用。

目录

第 1章 初识LiteOS 1

1.1 LiteOS概述 1

1.2 学习LiteOS 2

第 2章 移植LiteOS到STM32 4

2.1 移植前的准备工作 4

2.1.1 获取STM32的裸机工程模板 4

2.1.2 下载LiteOS源码 4

2.1.3 LiteOS源码核心文件夹分析 5

2.2 向裸机工程中添加LiteOS源码 6

2.2.1 复制LiteOS文件夹到裸机工程根目录中 6

2.2.2 将OS_CONFIG文件夹中配置文件复制到LiteOS文件夹中 7

2.2.3 复制Include文件夹到CMSIS文件夹中 7

2.2.4 LiteOS文件夹内容介绍 7

2.2.5 添加LiteOS核心源码到工程组文件夹中 9

2.3 接管中断版本修改target_config.h 11

2.3.1 target_config.h文件内容讲解 11

2.3.2 target_config.h文件修改 22

2.4 非接管中断版本修改target_config.h 29

2.4.1 target_config.h文件内容 29

2.4.2 target_config.h文件修改 32

2.5 修改相关文件 34

2.5.1 启动文件内容修改 34

2.5.2 分散加载文件修改 36

2.5.3 修改中断相关文件 38

2.5.4 修改core_cm3.h文件 39

2.6 修改工程配置 39

2.7 修改main.c 40

2.8 下载验证 41

第3章 创建任务 42

3.1 硬件初始化 42

3.2 创建单任务 43

3.2.1 动态内存空间的堆 43

3.2.2 LiteOS核心初始化 44

3.2.3 定义任务函数 45

3.2.4 定义任务ID变量 46

3.2.5 任务控制块 46

3.2.6 创建具体任务 47

3.3 main.c文件内容全貌 48

3.4 创建多任务 51

3.5 LiteOS的启动流程 56

3.5.1 第 一种启动方式 56

3.5.2 第二种启动方式 57

3.5.3 LiteOS的启动流程 59

第4章 任务管理 66

4.1 基本概念 66

4.1.1 任务的基本概念 66

4.1.2 调度器的基本概念 67

4.1.3 任务状态的基本概念 67

4.1.4 任务状态迁移 67

4.2 常用的任务函数 68

4.2.1 任务创建函数LOS_TaskCreate 68

4.2.2 任务删除函数LOS_TaskDelete 70

4.2.3 任务延时函数LOS_TaskDelay 72

4.2.4 任务挂起函数LOS_TaskSuspend 73

4.2.5 任务恢复函数LOS_TaskResume 74

4.3 常用Task错误代码说明 75

4.4 常用任务函数的使用方法 76

4.4.1 任务创建函数LOS_TaskCreate 76

4.4.2 任务删除函数LOS_TaskDelete 77

4.4.3 任务延时函数LOS_TaskDelay 78

4.4.4 任务挂起与恢复函数 78

4.5 任务的设计要点 79

4.6 任务管理实验 80

4.7 实验现象 85

第5章 消息队列 86

5.1 消息队列的基本概念 86

5.2 消息队列的运行机制 87

5.3 消息队列的传输机制 88

5.4 消息队列的阻塞机制 88

5.4.1 出队阻塞 89

5.4.2 入队阻塞 89

5.5 常见队列错误代码说明 89

5.6 常用消息队列的函数 91

5.6.1 消息队列创建函数LOS_QueueCreate 91

5.6.2 消息队列删除函数LOS_QueueDelete 94

5.6.3 消息队列写消息函数 96

5.6.4 通用的消息队列处理函数 100

5.6.5 消息队列读消息函数 103

5.7 消息队列实验 107

5.8 实验现象 112

第6章 信号量 114

6.1 信号量的基本概念 114

6.1.1 二值信号量 115

6.1.2 计数信号量 115

6.2 二值信号量的运行机制 116

6.3 二值信号量的应用场景 116

6.4 计数信号量的运行机制 117

6.5 信号量的使用 117

6.5.1 信号量控制块 117

6.5.2 常见信号量错误代码 118

6.5.3 二值信号量创建函数LOS_BinarySemCreate 118

6.5.4 计数信号量创建函数LOS_SemCreate 120

6.5.5 信号量删除函数LOS_SemDelete 121

6.5.6 信号量释放函数LOS_SemPost 122

6.5.7 信号量获取函数LOS_SemPend 124

6.6 二值信号量同步实验 126

6.7 二值信号量同步实验现象 131

6.8 计数信号量实验 132

6.9 计数信号量实验现象 137

第7章 互斥锁 139

7.1 互斥锁的基本概念 139

7.2 互斥锁的优先级继承机制 140

7.3 互斥锁的运行机制 142

7.4 互斥锁的应用场景 142

7.5 互斥锁的使用 143

7.5.1 互斥锁控制块 143

7.5.2 互斥锁错误代码 143

7.5.3 互斥锁创建函数LOS_MuxCreate 144

7.5.4 互斥锁删除函数LOS_MuxDelete 145

7.5.5 互斥锁释放函数LOS_MuxPost 147

7.5.6 互斥锁获取函数LOS_MuxPend 149

7.5.7 使用互斥锁的注意事项 151

7.6 互斥锁实验 151

7.6.1 模拟优先级翻转实验 152

7.6.2 互斥锁实验 158

7.7 实验现象 164

7.7.1 模拟优先级翻转实验现象 164

7.7.2 互斥锁实验现象 165

第8章 事件 166

8.1 事件的基本概念 166

8.2 事件的运行机制 167

8.3 事件的应用场景 168

8.4 事件的使用 169

8.4.1 事件控制块 169

8.4.2 常见事件错误代码 169

8.4.3 事件初始化函数LOS_EventInit 169

8.4.4 事件销毁函数LOS_EventDestory 170

8.4.5 写指定事件函数LOS_EventWrite 170

8.4.6 读指定事件函数LOS_EventRead 172

8.4.7 清除指定事件函数LOS_EventClear 175

8.5 事件标志组实验 176

8.6 实验现象 182

第9章 软件定时器 183

9.1 软件定时器简介 183

9.1.1 软件定时器的基本概念 183

9.1.2 软件定时器的运行机制 184

9.1.3 软件定时器的精度 185

9.1.4 软件定时器的应用场景 185

9.2 软件定时器的函数 185

9.2.1 软件定时器控制块 186

9.2.2 软件定时器错误代码 186

9.2.3 软件定时器开发典型流程 187

9.2.4 软件定时器创建函数LOS_SwtmrCreate 187

9.2.5 软件定时器删除函数LOS_SwtmrDelete 190

9.2.6 软件定时器启动函数LOS_SwtmrStart 192

9.2.7 软件定时器停止函数LOS_SwtmrStop 196

9.3 软件定时器实验 198

9.4 实验现象 202

第 10章 内存管理 204

10.1 内存管理的基本概念 204

10.2 内存管理的运行机制 205

10.3 内存管理的应用场景 207

10.4 静态内存池的使用 208

10.4.1 静态内存池控制块 208

10.4.2 静态内存池初始化函数LOS_MemboxInit 208

10.4.3 静态内存池分配函数LOS_MemboxAlloc 210

10.4.4 静态内存池释放函数LOS_MemboxFree 212

10.4.5 静态内存池内容清除函数LOS_MemboxClr 213

10.5 动态内存的使用 213

10.5.1 动态内存初始化函数LOS_MemInit 214

10.5.2 动态内存分配函数LOS_MemAlloc 217

10.5.3 动态内存释放函数LOS_MemFree 220

10.6 内存管理实验 223

10.6.1 静态内存池管理实验 223

10.6.2 动态内存管理实验 229

10.7 实验现象 235

10.7.1 静态内存池管理实验现象 235

10.7.2 动态内存管理实验现象 236

第 11章 中断管理 237

11.1 中断简介 237

11.1.1 异常 237

11.1.2 中断 238

11.2 中断的运行机制 239

11.3 中断的应用场景 240

11.4 中断延迟的基本概念 240

11.5 中断的使用 241

11.5.1 接管中断版本的移植 241

11.5.2 接管中断版本的常用函数 241

11.5.3 非接管中断 245

11.6 中断管理实验 246

11.6.1 接管中断方式 246

11.6.2 非接管中断方式 251

11.7 实验现象 256

第 12章 链表 257

12.1 C语言中的链表 257

12.2 链表的使用 258

12.2.1 链表初始化函数LOS_ListInit 258

12.2.2 向链表中添加节点函数LOS_ListAdd 259

12.2.3 从链表中删除节点函数LOS_ListDelete 260

12.3 双向链表实验 261

12.4 实验现象 264

展开全部

作者简介

刘火良,野火电子创始人,系统工程师,近十年来一直从事嵌入式系统的软硬件开发工作,出版著作有《STM32库开发实战指南-基于STM32F103(第2版)》,《STM32库开发实战指南-基于STM32F4》,《freeRTOS内核实现与应用开发实战指南》,《ucosiii内核实现与应用开发实战指南》《RT-Thread内核实现与应用开发实战指南》,《Lwip应用开发实战指南》。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航