1.RT_Thread初印象

版权声明:提供模块,IoT清道者免费帮你模块级开发,只需你同意清道者将开发过程和源码发布在该微博上,需要的请在下方评论 https://blog.csdn.net/alingbo/article/details/82892610

      RT-Thread 在 2006 年作为国内一个原创的 RTOS开始出现在公众的视野中。如今已经过了十多个年头,最近两年开始注重基础生态的推广,这一个月首先在ST的全国巡回研讨会上听到后又在野火的新书发布会上看到它,并且很荣幸的获得了RT_Thread的官方人员赠送首本介绍该系统的书籍。笔者接触这个系统是在刚毕业的第一年2016下半年,当时公司需要做一个智能文件管控柜,需要用到网络、文件系统、实时系统,于是因为项目紧,而该系统内部集成了LWIP,文件系统等在别人的推荐下选定了这RTOS,之前也使用了解过uCos-III,FreeRTOS,自己移植使用过LWIP和FATFS,但是RT_Thread的出现还是让我耳目一新。

   秉着支持国产,更何况是这么一个优秀的有非常意义的RTOS,我接下来就好好地研究下这个系统,读读这本将要发售的新书,书包括两部分:

     第一部分从最底层的汇编开始,一步一步构造出一个 RT-Thread 操作系统内核,向大家揭示了 RT-Thread 操作系统的核心知识点:

  • 任务如何定义
  • 任务如何切换
  • 任务的延时如何实现
  • 如何支持多优先级
  • 如何实现定时器
  • 如何实现 时间片等

    第二部分讲解 RT-Thread 内核设施的应用,主要是系统的移植,组件的使用,和其他RTOS的使用具有很大的相同性当然也有不少的区别。这本书能够帮助大家更容易的学习使用RT-Thread。要了解操作系统内核原理的使 用者,也非常值得一看。 

1 我该怎么样的方式去学习RT_Thread?

1.完全不关心底层的移植,就在别人移植好的系统上,看看 RTOS里面的 API 使用说明,然后调用这些 API 实现自己想要的功能

==>好处:做产品,快速的实现功能,将产品推向市场赢得先机,

      弊端:程序出问题的时,因对这个RTOS不了解导致调试困难

      方法:查看RTOS的API使用说明

2.理解内核,在学习RTOS精髓的基础上做应用开发

==>好处:市场上现有的RTOS内核实现方式万变不离其宗,只需要深入学习其中一款就行,换成其他会很快得心应手。

      弊端:过程枯燥且痛苦。 

      方法:最有效也是最难的方法:就是阅读 RTOS 的源码,深究内核和每个组件的实现方式 。  
笔者选择了第二个方式,哈哈,为了能够学到 RTOS 的精华,我不入地狱谁入地狱?

2 RT_Thread初印象

  • 免费   无论你是个人还是公司,都可以免费地使用,不需要掏一分钱。
  • 国产   版权属于上海睿赛德电子科技有限公司,是熊老师和其团队一手打造的。
  • 开源   你可以免费得获取到 RT-Thread 的源代码,且当你的产品使用了 RT-Thread且没有修改 RT-Thread 内核源码的时候,你的产品的全部代码都可以闭源,不用开源,但是当你修改了 RT-Thread 内核源码的时候,就必须将修改的这部分开源, 反馈给社区, 其它应用部分不用开源。
  • 本质  一款国产的物联网操作系统,
  • 特点  简单易用,低功耗设计,组件丰富。

3 为什么学习RTOS之裸机系统与多线程系统的区别

注意以下系统模型没有好坏只有场合合适不合适

3.1 裸机系统通常分为轮询系统和前后台系统:

  • 轮询系统:

        流程:先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情

        使用场合:只适用于那些只需要顺序执行代码且不需要外部事件来驱动的就能完成的事情

        弊端:当有外部事件驱动时,实时性就会降低(某一个事件执行时间较久就会耽误别的顺序执行代码执行)。

  • 前后台系统:

       本质:在轮询系统的基础上加入了中断,外部事件的响应在中断中完成,事件的响应回到轮询系统中执行。

     中断称为前台,main函数里面的无限循环称为后台。如果事件处理时间很短,可以在中断里处理,如果时间较长需要在后台程序中立flag,回到后台处理。

       使用场合:在大多数的中小型项目中,前后台系统运用的好,堪称有操作系统的效果,但是有些场合只能使用RTOS。

3.2 多线程系统

      本质: 多线程系统的事件响应也是在中断中完成的,但是事件的处理是在线程中完成的。在多线程系统中,线程跟中断一样,也具有优先级,优先级高的线程会被优先执行。当一个紧急的事件在中断被标记之后,如果事件对应的线程的优先级足够高,就会立马得到响应。相当于又把后台代码又像前台一样分了优先级,使得需要实时的时间更加实时。

          流程: 硬件初始化=>OS初始化=>OS启动开启多线程调度。

          优点:编程反而变得简单了,每个线程独立互不干扰,具备自身优先级,不需要精心的去设计程序的的执行流。

          弊端:操作系统带来额外开销的 FLASH 和 RAM开销。不过现在单片机的 FLASH 和 RAM 是越来越大,很多场合完全不    是问题,不过一些低成本情况下资源不好协调,特定单片机的RTOS移植会带来时间开销。


 

      

猜你喜欢

转载自blog.csdn.net/alingbo/article/details/82892610