图书介绍

RT-Thread内核实现与应用开发实战指南 基于STM32PDF|Epub|txt|kindle电子书版本网盘下载

RT-Thread内核实现与应用开发实战指南 基于STM32
  • 刘火良,杨森编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111613664
  • 出版时间:2019
  • 标注页数:402页
  • 文件大小:125MB
  • 文件页数:418页
  • 主题词:微控制器-系统开发-指南

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

RT-Thread内核实现与应用开发实战指南 基于STM32PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分从0到1教你写RT- Thread内核2

第1章 新建RT-Thread工程——软件仿真2

1.1新建本地工程文件夹2

1.2使用KEIL新建工程3

1.2.1 New Project3

1.2.2 Select Device for Target3

1.2.3 Manage Run-Time Environment4

1.3在KEIL工程中新建文件组5

1.4在KEIL工程中添加文件6

1.5调试配置7

1.5.1设置软件仿真7

1.5.2修改时钟大小8

1.5.3添加头文件路径9

第2章 裸机系统与多线程系统10

2.1裸机系统10

2.1.1轮询系统10

2.1.2前后台系统11

2.2多线程系统12

第3章 线程的定义与线程切换的实现15

3.1什么是线程16

3.2创建线程17

3.2.1定义线程栈17

3.2.2定义线程函数19

3.2.3定义线程控制块20

3.2.4实现线程创建函数20

3.3实现就绪列表30

3.3.1定义就绪列表30

3.3.2将线程插入就绪列表30

3.4实现调度器31

3.4.1调度器初始化32

3.4.2启动调度器33

3.4.3第一次线程切换34

3.4.4系统调度41

3.5 main()函数44

3.6实验现象47

第4章 临界段的保护50

4.1什么是临界段50

4.2 Cortex-M内核快速关中断指令50

4.3关中断51

4.4开中断51

4.5临界段代码的应用52

4.6实验现象56

第5章 对象容器57

5.1什么是对象57

5.1.1对象枚举的定义57

5.1.2对象数据类型的定义57

5.1.3在线程控制块中添加对象成员58

5.2什么是容器59

5.3容器的接口实现63

5.3.1获取指定类型的对象信息64

5.3.2对象初始化64

5.3.3调用对象初始化函数67

5.4实验现象67

第6章 空闲线程与阻塞延时68

6.1实现空闲线程68

6.1.1定义空闲线程的栈68

6.1.2定义空闲线程的线程控制块69

6.1.3定义空闲线程函数69

6.1.4空闲线程初始化69

6.2实现阻塞延时70

6.3 SysTick_Handler()中断服务函数73

6.4 main()函数77

6.5实验现象80

第7章 多优先级82

7.1就绪列表82

7.1.1线程就绪优先级组82

7.1.2线程优先级表86

7.2修改代码以支持多优先级88

7.2.1修改线程控制块88

7.2.2修改调度器初始化函数rt_system_ scheduler init()90

7.2.3修改线程初始化函数rt_thread_init()91

7.2.4添加线程启动函数rt_hread_startup()92

7.2.5修改空闲线程初始化函数rt_thread idle init()93

7.2.6修改启动系统调度器函数rt_system_ scheduler start()94

7.2.7修改系统调度函数rt_schedule()95

7.2.8修改阻塞延时函数rt_ thread_delay()98

7.2.9修改时基更新函数rt_ tick_increase()98

7.3 main()函数99

7.4实验现象102

第8章 定时器103

8.1实现定时器103

8.1.1系统定时器列表103

8.1.2系统定时器列表初始化104

8.1.3定义定时器结构体104

8.1.4在线程控制块中内置定时器105

8.1.5定时器初始化函数106

8.1.6定时器删除函数108

8.1.7定时器停止函数108

8.1.8定时器控制函数109

8.1.9定时器启动函数110

8.1.10定时器扫描函数115

8.2修改代码以支持定时器118

8.2.1修改线程初始化函数118

8.2.2修改线程延时函数119

8.2.3修改系统时基更新函数121

8.2.4修改main.c文件122

8.3实验现象126

第9章 时间片127

9.1实现时间片127

9.1.1在线程控制块中添加时间片相关成员127

9.1.2修改线程初始化函数128

9.1.3修改空闲线程初始化函数129

9.1.4修改系统时基更新函数129

9.2修改main.c文件131

9.3实验现象135

第二部分RT-Thread内核应用开发138

第10章 移植RT-Thread到STM32138

10.1获取STM32的裸机工程模板138

10.2下载RT-Thread Nano源码138

10.3安装RT-Thread Package139

10.4向裸机工程中添加RT-Thread源码140

10.4.1复制RT-Thread Package到裸机工程根目录140

10.4.2复制rtconfig.h文件到User文件夹141

10.4.3复制board.c文件到User文件夹141

10.4.4 rt-thread文件夹内容简介141

10.4.5添加RT- Thread源码到工程组文件夹143

10.5 rtconfig.h文件145

10.5.1rtconfig.h文件内容讲解145

10.5.2 rtconfig.h文件修改152

10.6 board.c文件156

10.6.1 board.c文件内容讲解156

10.6.2 board.c文件修改160

10.7添加core_delay.c和core_ delay.h文件167

10.8修改main.c171

10.9下载验证172

第11章 线程173

11.1硬件初始化173

11.2创建单线程——SRAM静态内存175

11.2.1定义线程函数175

11.2.2定义线程栈176

11.2.3定义线程控制块176

11.2.4初始化线程176

11.2.5启动线程177

11.2.6 main.c文件内容177

11.3下载验证SRAM静态内存单线程179

11.4创建单线程——SRAM动态内存179

11.4.1动态内存空间堆的来源180

11.4.2定义线程函数181

11.4.3定义线程栈181

11.4.4定义线程控制块指针181

11.4.5创建线程181

11.4.6启动线程182

11.4.7 main.c文件内容182

11.5下载验证SRAM动态内存单线程184

11.6创建多线程——SRAM动态内存185

11.7下载验证SRAM动态内存多线程187

第12章 重映射串口到rt_kprintf()函数188

12.1 rt_kprintf()函数定义188

12.2自定义rt_hw_ console_ output()函数189

12.3测试rt_kprintf()函数191

12.3.1硬件初始化191

12.3.2编写rt_kprintf()测试代码192

12.3.3下载验证192

第13章RT-Thread的启动流程194

13.1“万事俱备,只欠东风”法194

13.2“小心翼翼,十分谨慎”法195

13.3两种方法的适用情况197

13.4 RT-Thread的启动流程197

13.4.1 $Sub$$main()函数198

13.4.2 rtthread startup()函数199

13.4.3 rt_application init()函数201

13.4.4 $Super$$main()函数202

13.4.5 main()函数203

第14章 线程管理205

14.1线程的基本概念205

14.2线程调度器的基本概念205

14.3线程状态的概念206

14.4线程状态迁移206

14.5常用的线程函数207

14.5.1线程挂起函数rt_ thread_suspend()207

14.5.2线程恢复函数rt thread_resume()209

14.6线程的设计要点210

14.7线程管理实验212

14.8实验现象215

第15章 消息队列216

15.1消息队列的基本概念216

15.2消息队列的运作机制217

15.3消息队列的阻塞机制218

15.4消息队列的应用场景218

15.5消息队列控制块218

15.6消息队列函数219

15.6.1消息队列创建函数rt_ mq_create()219

15.6.2消息队列删除函数rt_mq_delete()221

15.6.3消息队列发送消息函数rt_mq_send()223

15.6.4消息队列接收消息函数rt_mq_recv()226

15.7消息队列使用注意事项229

15.8消息队列实验230

15.9实验现象233

第16章 信号量234

16.1信号量的基本概念234

16.2二值信号量的应用场景235

16.3二值信号量的运作机制236

16.4计数型信号量的运作机制236

16.5信号量控制块237

16.6信号量函数237

16.6.1信号量创建函数rt_sem_create()238

16.6.2信号量删除函数rt_sem_delete()239

16.6.3信号量释放函数rt_sem_release()240

16.6.4信号量获取函数rt_sem_take()242

16.7信号量实验245

16.7.1二值信号量同步实验245

16.7.2计数型信号量实验248

16.8实验现象251

16.8.1二值信号量同步实验现象251

16.8.2计数型信号量实验现象252

第17章 互斥量253

17.1互斥量的基本概念253

17.2互斥量的优先级继承机制253

17.3互斥量的应用场景256

17.4互斥量的运作机制256

17.5互斥量控制块257

17.6互斥量函数258

17.6.1互斥量创建函数rt_mutex_create()258

17.6.2互斥量删除函数rt_mutex_delete()260

17.6.3互斥量释放函数rt_ mutex_release()261

17.6.4互斥量获取函数rt_mutex_take()264

17.7互斥量使用注意事项268

17.8互斥量实验268

17.9实验现象271

第18章 事件272

18.1事件的基本概念272

18.2事件的应用场景273

18.3事件的运作机制273

18.4事件控制块275

18.5事件函数275

18.5.1事件创建函数rt_ event_create()275

18.5.2事件删除函数rt_ event_delete()276

18.5.3事件发送函数rt_ event_send()277

18.5.4事件接收函数rt_ event_recv()281

18.6事件实验285

18.7实验现象288

第19章 软件定时器289

19.1软件定时器的基本概念289

19.2软件定时器的应用场景290

19.3软件定时器的精度291

19.4软件定时器的运作机制291

19.5定时器超时函数293

19.6软件定时器的使用297

19.7软件定时器实验299

19.8实验现象302

第20章 邮箱303

20.1邮箱的基本概念303

20.2邮箱的运作机制304

20.3邮箱的应用场景305

20.4邮箱的应用技巧305

20.5邮箱控制块306

20.6邮箱函数306

20.6.1邮箱创建函数rt_mb_create()306

20.6.2邮箱删除函数rt_mb_delete()308

20.6.3邮箱邮件发送函数rt_mb_send wait()(阻塞)310

20.6.4邮箱邮件发送函数rt_mb_send ()(非阻塞)315

20.6.5邮箱邮件接收函数rt_mb_recv()316

20.7邮箱实验320

20.8实验现象324

第21章 内存管理325

21.1内存管理的基本概念325

21.2内存管理的运作机制327

21.2.1静态内存管理327

21.2.2动态内存管理328

21.3内存管理的应用场景330

21.4静态内存管理函数331

21.4.1静态内存控制块331

21.4.2静态内存创建函数rt_mp_create()332

21.4.3静态内存删除函数rt_mp_delete()335

21.4.4静态内存初始化函数rt_mp init()338

21.4.5静态内存申请函数rt_ mp_ alloc()340

21.4.6静态内存释放函数rt_mp_ free()344

21.5动态内存管理函数346

21.5.1系统堆内存初始化函数rt_system_ heap_ init()346

21.5.2系统堆内存申请函数rt_malloc()350

21.5.3系统堆内存释放函数rt_free()354

21.6内存管理实验357

21.6.1静态内存管理实验357

21.6.2动态内存管理实验361

21.7实验现象364

21.7.1静态内存管理实验现象364

21.7.2动态内存管理实验现象364

第22章 中断管理366

22.1异常与中断的基本概念366

22.1.1中断367

22.1.2和中断相关的术语367

22.2中断管理的运作机制368

22.3中断延迟的概念369

22.4中断管理的应用场景370

22.5 ARM Cortex-M的中断管理370

22.6 中断管理实验372

22.7实验现象377

第23章 双向链表378

23.1双向链表的基本概念378

23.2双向链表函数378

23.2.1链表初始化函数rt_list_init()378

23.2.2向链表中插入节点379

23.2.3从链表删除节点函数rt_list remove()381

23.3双向链表实验382

23.4实验现象385

第24章CPU利用率统计387

24.1 CPU利用率的基本概念387

24.2 CPU利用率的作用387

24.3 CPU利用率统计实现388

24.4 CPU利用率实验392

24.5实验现象394

附录 参考资料和配套硬件396

热门推荐