野火《RT-Thread内核实现与应用开发实战指南》PDF版免费下载

资料大小: 5.17 MB

所需积分: 0

下载次数:

用户评论: 0条评论,查看

上传日期: 2019-01-11

上 传 者: sundaysleep他上传的所有资料

资料介绍

标签:Thread(22)rtos(164)内核(201)

  本书是首本系统讲解 RT-Thread 的中文书籍,共分为两个部分,第一部分为“从 0 到 1 教你写 RT-Thread 内核”,即重点讲解 RT-Thread 的原理实现,从 0 开始,不断迭代,教你怎么把 RTT 的内核写出来,让你彻底学会线程是如何定义的,系统是如何调度的(包括底层的汇编代码讲解),多优先级是如何实现的等等操作系统最深层次的知识。当你拿到本书开始学习的时候你一定会惊讶,原来 RTOS 的学习并没有那么复杂,反而是那么的有趣,原来自己也可以写 OS,成就感立马爆棚。

  当第一部分知识你彻底掌握好之后,再切换到其它 RTOS 的学习,那简直就是易如反掌,纵观现在市面上流行的集中 RTOS,它们的内核的实现基本都差不多,只需要深入研究其中一种即可,没有必要每一种 RTOS 都深入的研究源码,如果你时间允许,看看那也无所谓。第二部分是“RT-Thread 内核应用开发”,重点讲解 RT-Thread 的移植,内核每个组件的应用,比起第一部分,这部分内容掌握起来比较容易。

  全书内容循序渐进,不断迭代,前一章都是后一章的基础,必须从头开始阅读,不能进行跳跃式的阅读。在学习的时候务必做到两点:一是不能一味地看书,要把代码和书本结合起来学习,一边看书,一边调试代码。看书倒是很简单,那如何调试代码?即单步执行每一条程序,看看程序的执行流程和执行的效果与自己大脑所想是不是一样;二是在每学完一章之后,必须将配套的例程重写一遍(切记不要复制,哪怕是一个分号,但可以抄),做到举一反三,确保真正理解。在自己写的时候肯定会错漏百出,这个时候要珍惜这些错误,好好调试,这是你提高编程能力的最好的机会。记住,程序不是写出来的,而是调试出来的。

  本书第一部分以 RT-Thread Nano 3.0.3 官方源码为蓝本,抽丝剥茧,不断迭代,教你怎么从 0 开始把 RT-Thread 内核写出来。书中涉及到的数据类型,变量名称、函数名称,文件名称,文件存放的位置都完全按照 RT-Thread 官方的方式来实现,当你学完这本书之后可以无缝地切换到原版的 RT-Thread 的使用。要注意的是,在实现的过程中,某些函数我会去掉一些形参和一些冗余的代码,只保留核心的功能,但这并不会影响我们学习。

  本书第二部分主要讲 RT-Thread 的移植和内核组件的使用,不会再去深入讲解源码,着重讲应用,如果对第一部分不感兴趣的朋友,可以跳过第一部分,直接进入第二部分的学习,两者之间没有必然的联系。

  为什幺要学习 RTOS

  当我们进入嵌入式这个领域的时候,往往首先接触的都是单片机编程,单片机编程又首选 51 单片机来入门。这里面说的单片机编程通常都是指裸机编程,即不加入任何 RTOS (Real Time OperaTIon System 实时操作系统)的程序。常用的 RTOS 有国外的 FreeRTOS、 μC/OS、RTX 和国内的 RT-Thread、Huawei LiteOSAliOS-Things 等,其中尤以国外开源且免费的 FreeRTOS 的市场占有率最高。如今国产的 RT-Thread 经过 10 来年的发展,声势迅勐,在国产 RTOS 中占据鳌头。

  在裸机系统中,所有的程序基本都是自己写的,所有的操作都是在一个无限的大循环里面实现。现实生活中的很多中小型的电子产品用的都是裸机系统,而且也能够满足需求。但是为什幺还要学习 RTOS 编程,偏偏还要整个操作系统进来。一是项目需要,随着产品要实现的功能越来越多,单纯的裸机系统已经不能够完美地解决问题,反而会使编程变得更加复杂,如果想降低编程的难度,我们可以考虑引入 RTOS 实现多线程管理,这是使用 RTOS 的最大优势。二是学习的需要,必须学习更高级的东西,实现更好的职业规划,为将来走向人生巅峰迎娶白富美做准备,而不是一味的在裸机编程上面死磕。作为一个合格的嵌入式软件工程师,学习是永远不能停止的事,时刻都在为将来准备。书到用时方恨少,我希望机会来临时你不要有这种感觉。

  为了帮大家理清 RTOS 编程的套路,下面我们简单的分析下这两种编程方式的区别,这个区别我称它为学习 RTOS 的命门,只要打通这个任督二脉,以后的 RTOS 学习可以说是易如反掌。在讲解这两种编程方法的区别的时候,我们主要讲方法论,不会涉及到具体的代码编程,主要还是通过伪代码来讲解。

  如何学习 RTOS

  裸机编程和 RTOS 编程的风格有些不一样,而且有很多人说 RTOS 的学习很难,这就导致学习的人一听到 RTOS 编程就在心理面忌惮三分,结果就是出师未捷身先死。

  那么到底如何学习一个 RTOS?最简单的就是在别人移植好的系统之上,看看 RTOS 里面的 API 使用说明,然后调用这些 API 实现自己想要的功能即可。完全,不用关心底层的移植,这是最简单快速的入门方法。这种方法各有利弊,如果是做产品,好处是可以快速的实现功能,将产品推向市场,赢得先机,弊端是当程序出现问题的时候,因对这个 RTOS 不够了解,会导致调试困难,焦头烂额,一筹莫展。如果是学习,那么只会简单的调用 API,那是不可取的,我们应该深入的学习其中一款 RTOS。

  目前市场上现有的 RTOS,它们的内核实现方式都差不多,我们只需要深入学习其中一款就行。万变不离其宗,以后换到其它型号的 RTOS,使用起来,那自然是得心应手。那如何深入的学习一款 RTOS?这里有一个最有效也是最难的方法,就是阅读 RTOS 的源码,深究内核和每个组件的实现方式,这个过程枯燥且痛苦。但为了能够学到 RTOS 的精华,你不入地狱谁入地狱?

用户评论

查看全部 条评论

发表评论请先 , 还没有账号?免费注册

发表评论

用户评论
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
上传电子资料