常见的嵌入式软件体系结构
创作时间:
作者:
@小白创作中心
常见的嵌入式软件体系结构
引用
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
热门推荐
顾命八大臣的历史背景与意义
如何理解大前端开发
华为大股东揭秘:掌握公司命运的人物
增加“自拍视角” “太空眼”护航中国航天员二次出舱

哲学中的存在主义、虚无主义、荒诞主义,三者有什么区别与联系?
"Vegetable"可数和不可数的用法,了解这个单词的正确使用方式
如何明确期货交易的手续费标准?这些手续费的构成是怎样的?
优化服务器缓存设置,提升网站性能与用户体验的实用指南
临夏春色:一场与自然的浪漫邂逅
茶叶泡了一次后隔多久可以再次饮用?如何保持茶叶口感的状态?
纯正汉人都为单眼皮?双眼皮是外来血统?有些历史冷知识必须搞懂
每日如何获得30g以上的膳食纤维?这些意想不到的高纤维食物值得了解
宋朝传统版《百家姓》,第160名,“霍姓”的起源和历史,你知道吗?
高尔夫4换17寸轮毂影响动力吗
如何选择家用家电品牌?这份实用指南请收好!
战舰系列之历史上的大和号
高中英语单词怎样背效率高,快速达到永久记忆?
留学澳洲硕士费用有哪些主要支出
小米、东风汽车、固德威 一众大佬为何集体退出赣锋锂电?
钢结构工程中的材料选择与质量控制
千年医经的现代启示:《黄帝内经》对中医的深远影响
河南最出名的8道名菜,香辣可口,又鲜又嫩,自己在家也能轻松做
抗战期间,云南滇军的实力与贡献
13句古诗词里的"人间清醒",值得收藏
数学模型方法定义及其在法律领域的应用研究
国家公务员考试体检要求和标准详解
文昌贵人的命理影响解析
如何指定研究项目的目标
免费!全体豫B车主注意!
Nature子刊发文:肠道菌群与抑郁症的关联研究新进展