提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
在百问网学习物联网第一天笔记
前言
RTOS`较裸机开发来说,具备很多有点:
1、并发性:程序并发工作效率好
2、模块化:高内聚、低耦合的原则
3、生态:很多高级软件组件,必须依赖于操作系统来实现
4、实时性:功能复杂的情况下,实时性无法保证
5、可重用性:软件可重用性差,总是重复造轮子
一、裸机开发
裸机开发一般采用轮训方式+前后台方式:裸机运行的程序代码,一般由一个main函数中的while死循环和各种中断服务程序组成,平时CPU执行while循环中的代码,出现其他事件时,跳转到中断服务程序进行处理,没有多任务、线程的概念。
裸机开发的缺点:
采用中断和查询结合的方式可以解决大部分裸机应用,但随着工程的复杂,裸机方式的缺点就暴露出来了:
必须在中断 (ISR) 内处理时间关键运算 内处理时间关键运算 :
ISR ISR 函数变得非常复杂,并且需要很长执行时间 。
ISR ISR 嵌套可能产生不预测的执行时间和堆栈 需求。
超级循环和 ISR 之间的 数据交换是通过全局共享变量进行:
应用程序的员必须确保数据一致性 。
超级循环可以与系统计时器轻松同步,但:
如果系统需要多种不同的周期时间,则会很难实现 。
超过 超级循环周期的耗时函数需要做拆分。
增加 软件开销,应用程序难以理解 。
超级循环 使得 应用程序变得非常复杂,因此难以扩展 :
一个简单的更改就可能产生不预测副作用 ,对这种副作用进行分析非常耗时。
超级循环概念的这些缺点可以通过使用实时操作系统 (RTOS) 来解决。
二、RTOS开发
在裸机开发过程中使用轮询+中断的方式。对于一些多任务,耗时时间长的复杂任务来说,单纯的逻辑开发满足不了系统实时性的需求。
首先,一个复杂的软件系统需要处理多个并发的任务,没有操作系统,想完成多任务并发是很困难的。
其次,操作系统给我们提供了非常好的任务调度,内存管理等机制,更有利于实现更复杂的嵌入式操作系统。