常见的嵌入式软件体系结构
创作时间:
作者:
@小白创作中心
常见的嵌入式软件体系结构
引用
CSDN
1.
https://blog.csdn.net/propor/article/details/140297058
嵌入式系统是现代电子设备的核心,其软件体系结构直接影响系统的性能和可靠性。本文将介绍两种常见的嵌入式软件体系结构:无操作系统和有操作系统,并对其优缺点进行分析。
在嵌入式开发过程中,尤其是MCU为主控的项目开发中,实时性是需要考虑的重要因素。本文将介绍两种常见的嵌入式软件体系结构,并对其优缺点作简要分析,另外,还对它们的软件层次结构做了简要介绍。
1.无操作系统
无操作系统形式包含轮询系统和前后台系统。
1)轮询系统
将系统功能分解成若干个不同的任务,将其放置在一个无限循环中,按顺序循环执行。其伪代码如下。
int main(void)
{
Hardware_Init();
Task_Init();
while (1)
{
Task1();
Task2();
Task3();
}
return 0;
}
优点:
- 结构简单。
缺点:
- 实时性差。任务需延迟一个轮询周期才被执行,若其他任务耗时比较长,则任务无法及时处理某些事件。
开发建议:
可配合状态机和消息队列提高系统实时性。
2)前后台系统
在轮询系统基础上增加了中断。其中前台为中断服务程序,后台为无限循环中的任务。为了避免中断占用过多时间而影响到其他中断(不复杂的也可以直接在中断中处理),一般在中断服务程序中置位相应标志位,而在无限循环任务中查询标志位再进行处理。其伪代码如下。
int main(void)
{
Hardware_Init();
Task_Init();
while (1)
{
Task1();
Task2();
Task3();
}
return 0;
}
void Timer1_ISR(void)
{
}
优点:
- 相比轮询系统改善了实时性。任务通过检查是否具备执行条件(标志位),避免轮询系统反复查询耗时,对实时性要求比较高的操作也可以直接在中断中执行。
缺点:
- 实时性较差。任务执行仍需延迟一个轮询周期才被执行(检查),若其他任务耗时比较长,则任务无法及时处理某些事件。
开发建议:
可配合状态机和消息队列提高系统实时性
无操作系统软件层次结构可参考下图。
- 应用层即无限循环中的任务。
- 组件层是对驱动层的再封装。如读写EEPROM会用到GPIO,I2C总线这些驱动层的东西,将EEPROM器件放在组件层,它是对驱动层的再封装。
- 有时为了提高实时性,允许应用层直接操作驱动层。封装会增加函数调用,从而增加系统开销。
2.有操作系统
应用程序不再直接面向硬件开发,而在操作系统的基础上编写。
优点:
- 具有高实时性。
- 提高了开发效率,缩短了开发周期。
- 利于扩展和移植。
开发建议:
可充分利用中断,操作系统事件集,消息队列,信号量,任务优先级等提高系统实时性。
有操作系统软件层次结构可参考下图。
各层严格遵循上层调用下层的结构。
总结,本文介绍了常见的嵌入式软件体系结构。
本文原文来自CSDN
热门推荐
那马镇集市:穿越三百年的烟火气
铁血军魂:傅崇碧与铁原阻击战
Windows系统防断电丢失财务数据全攻略
电脑断电竟让硬盘数据“一夜消失”?这些恢复工具和预防措施请收好
通江英雄傅崇碧:从大巴山走出的开国少将
《西游记》妖怪为何爱吃人?心理学揭秘
吴承恩的家乡美食:《西游记》中的饮食文化
建设银行&工商银行:在线改手机号防诈骗攻略
速卖通店铺如何玩转客户服务?
跨境电商热浪下,速卖通店铺管理秘籍
南京牛首山佛顶宫:40亿打造的欧式佛教艺术殿堂,安奉佛顶骨舍利
校本研修提升教师专业素养,助力基础教育高质量发展
南京优化公交出行:新线路无缝对接地铁,站点改造添智能设施
肺结节不等于肺癌,专家:定期随访是关键
钟文昭团队开发AI系统,精准识别早期肺腺癌发展阶段
糖尿病患者运动指南:先评估再运动,专家推荐这样做
家有儿女大电影即将开拍,原班人马19年后再聚首
19年后再聚首,〈家有儿女〉原班人马开拍大电影
排灯节和花卉霍利节的供奉习俗揭秘
《黑神话:悟空》带火千年古刹,玉皇庙成网红打卡地
工信部发布新材料研发重点:计划涵盖16专项,聚焦新材料与新能源技术
《黑神话:悟空》战斗机制全攻略:从基础到进阶
《黑神话:悟空》全隐藏关卡攻略详解
企业价值评估三大方法:市场比较法、收益法和成本法
《白夜破晓》关宏峰牺牲引发热议
《白夜破晓》关宏峰牺牲引爆热搜,观众怒喷编剧
《白夜破晓》:关宏峰牺牲背后的大反转
脑垂体瘤患者的饮食注意事项
良性垂体瘤导致失明,术后一年竟复发!该再次手术吗?
头痛忍忍就好了?细数以头痛症状为主的疾病