2489|2

530

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

【RT-Thread读书笔记】3. RT-Thread 学习4-5章读后感 [复制链接]

  本帖最后由 传媒学子 于 2019-4-22 22:46 编辑


【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论坛网友传媒学子原创,如需转载或用于商业用途需征得作者同意并注明出处


最新回复

打字不容易,加油   详情 回复 发表于 2019-11-15 21:48
点赞 关注
 

回复
举报

35

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

打字不容易,加油

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表