注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
传媒学子的个人空间 https://home.eeworld.com.cn/space-uid-363532.html [收藏] [复制] [分享] [RSS]
日志

【RT-Thread读书笔记】3. RT-Thread 学习4-5章读后感

已有 282 次阅读2019-4-22 22:45 |个人分类:RT-Thread


【RT-Thread读书笔记】3. RT-Thread 学习4-5章读后感


第四章

这一章内容较少,主要是打个铺垫,教我们如何新建keil工程,以及文件组的布局,以及如何设置一些参数。


第五章

这一章,主要讲的是裸机线程与多线程系统的定义和区别。这里需要我们认真体会一下,为后边RTOS的学习打下一个基础。

裸机系统通常是指没有采用RTOS的系统,一般分为轮询系统和前后台系统。


轮询系统:即常见的先初始化各个硬件模块,然后在while(1)中不断轮询各个任务。

例程:


  1. int main(void)
  2. {
  3.     /* 硬件相关初始化 */
  4.     HardWareInit();

  5.     /* 无限循环 */
  6.     while (1)
  7.     {
  8.          /* 处理事情1 */
  9.         DoSomething1();
  10.         
  11.         /* 处理事情2 */
  12.          DoSomething2();
  13.          
  14.          /* 处理事情3 */
  15.         DoSomething3();
  16.     }  
  17. }
复制代码



优点是:严格顺序执行。缺点是:如果遇到多线程任务时,往往会造成阻塞;有一个任务长时间卡在这里,系统就无法继续轮询下去。


在此基础上,加上中断,便是前后台系统。前后台系统能够打断主函数中的大循环,插入一些紧急的任务。加上中断嵌套,即可满足很多应用。


例程:



  1. int flag1 = 0;  
  2. int flag2 = 0;

  3. int main(void)
  4. {
  5.     /* 硬件相关初始化 */
  6.     HardWareInit();

  7.     /* 无限循环 */
  8.     while (1)
  9.     {
  10.          /* 处理事情1 */
  11.         DoSomething1();
  12.         
  13.         /* 处理事情2 */
  14.          DoSomething2();
  15.          
  16.          /* 处理事情3 */
  17.         DoSomething3();
  18.     }  
  19. }

  20. void ISR1(void)
  21. {
  22.     flag1 = 1;
  23.     DoSomething4();
  24. }

  25. void ISR2(void)
  26. {
  27.     flag1 = 1;
  28.     DoSomething5();
  29. }
复制代码



优点:克服了单纯轮询系统只能按大循环中顺序执行的弱点。

缺点:中断服务函数依然是一个顺序执行块,如果在中断服务函数中的事件占用的时间过长,系统主循环中的任务不能得到及时处理,实时性还是很差。如果主函数中有显示函数,则会造成显示中断。


因此,为了克服上述缺点,并继承上述优点,便出现了多线程系统,也叫RTOS。


多线程系统的事件响应也是在中断中完成的,但是事件的处理是在线程中完成的。线程也具有优先级,提高了系统的实时性。

多线程的每个线程都相当于一个小的while(1)无线循环,每个线程相互独立,互不干扰,后边会介绍线程中如何共享变量,传递信息。

多线程会需要额外的RAM ROM来保存相关线程的上下文(函数运行所需要的环境),并在线程被启用的时候供系统使用。

下面是三种系统的区别:


虽然,RTOS确实显得高大上,但是不得不说一下,三种类型其实都有各自的使用场合。只是,RTOS的使用是一种趋势,但绝不是说,其它两种就不好了。大家要在自己的项目中,根据具体需求来决定使用哪种模型。
此内容由EEWORLD论坛网友传媒学子原创,如需转载或用于商业用途需征得作者同意并注明出处


本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章