STM32智能家居7天小项目(1)RTOS引入

举报
yd_274589494 发表于 2023/07/25 11:30:22 2023/07/25
【摘要】 @TOC 前言最近学习了百问网的7天智能家居项目,在此想要和大家分享一些智能家居开发经验。 一、裸机的开发方式 轮询所谓轮询方式,即为轮流查询是否要处理当前任务,如果要处理则所有的CPU资源都用来处理当前的任务,其他任务需要等待当前任务处理完毕后才有机会执行。 轮询的缺陷1.任务之间干扰严重,假如有某些任务耗时很长,后续任务就会等待很长时间才有机会执行。2.无法及时响应重要任务。 事件驱动事...

@TOC

前言

最近学习了百问网的7天智能家居项目,在此想要和大家分享一些智能家居开发经验。

一、裸机的开发方式

轮询

所谓轮询方式,即为轮流查询是否要处理当前任务,如果要处理则所有的CPU资源都用来处理当前的任务,其他任务需要等待当前任务处理完毕后才有机会执行。

轮询的缺陷

1.任务之间干扰严重,假如有某些任务耗时很长,后续任务就会等待很长时间才有机会执行。
2.无法及时响应重要任务。

事件驱动

事件通常和中断是一起讲的,于处理器而言,某个硬件产生的一个脉冲信号通知另一个硬件根据此信号做处理称之为事件,例如,定时器每隔1ms触发 ADC 去采样,这种就叫做事件,过程中不需要 CPU 参与;但是 ADC 采样完成之后需要 CPU 去处理采样的数据,所以需要告知 CPU 它采样完了, cPU 可以去取数据做处理了,那么 ADC 通知 cPU 采样完了这个动作就叫做中断。

二、中断优先级

Cortx-M3有256个优先级和128级抢占优先级。

中断优先级简介

每一个中断都有属于自己的中断优先级,中断优先级越高的中断越先相应,中断优先级高的中断可以打断正在执行的中断优先级低的中断,这也被称为中断嵌套。

轮询和事件驱动的结合

在实际开发中不可能单独使用轮询方式或者中断方式去编写程序和项目,一般会同时采用这两种方法。

三、RTOS的引入

在裸机开发过程中使用轮询和中断的方式可以解决大部分问题,但是在一些多任务、耗时长任务等复杂情况下,单纯的裸机开发已经不能满足需求了。
RTOS的具体讲解在我前面的文章有说到有兴趣的朋友可以去看看。
RTOS

总结

今天是学习智能家居项目的第一天,总的来说百问网的这个项目还是非常值得大家去学习的。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。