常见的嵌入式软件体系结构
创作时间:
作者:
@小白创作中心
常见的嵌入式软件体系结构
引用
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
热门推荐
汉字的造字法及演变
爆炸盐洗衣新风尚:安全高效,能否直投洗衣机大揭秘!
舟山新城:3000年前的神秘王城
杨四郎的历史结局探析
AI数字员工能否自主优化工作流程
江苏南通房子多少钱一平米?房价走势与购房策略解析
步骤详解!单颗牙套怎么戴上去全过程?准备|清洁|检查|佩戴按照步骤来其实并不难!
城中村拆迁补偿标准明细及评估方法详解
彭州市完善“售新-安装-回收-拆解”流程,优化家电以旧换新流程
大数据入门万字指南:从核心概念到实战案例解析
小空间大智慧:揭秘小户型洗衣机选购攻略,洗烘一体机VS洗烘套装,哪个更胜一筹?
中国与澳大利亚对决,谁能笑到最后?
感冒后鼻涕变黄粘稠怎么回事
企业管理危机应对策略与实践探讨
比亚迪的10亿美元可满足不了印度的野心
佛山医养结合养老院:集医疗与养护于一体的养老机构
玉手镯禁忌:哪些人群不宜佩戴?全面解析佩戴注意事项
营养与健康关系的多维度探讨
怎样采用煮茶器清洗普洱茶垢?看视频教程!
“线上诈骗+线下取现/快递寄运”,新型诈骗手段要当心!
女人嫉妒心理的深层解析与应对策略
日本人叫什么
公安局备案流程究竟涉及哪些关键步骤?
劳动争议调解和劳动争议仲裁的区别是什么?
文书档案管理表格在现代法律实践中的重要性与应用
拿外卖差点笑死人犯法吗?从配送员轻微交通违规案例看法律责任
古人结婚与现代有何不同,浅析古代婚姻制度的演变和特点
选择健身器械的专业建议
朱元璋的能力被高估了吗?从乞丐到开国皇帝的传奇人生
西安买房全攻略!买房就要注意这些