免费空间搭建免费小说网站,公司网上推广平台,网站模板源码免费下载,wordpress底部导航菜单本文介绍常见的嵌入式软件体系结构。
在嵌入式开发过程中#xff0c;尤其是MCU为主控的项目开发中#xff0c;实时性是需要考虑的重要因素#xff0c;本文介绍常见的2种嵌入式软件体系结构#xff0c;并对其优缺点作简要分析#xff0c;另外#xff0c;还对它们的软件层…本文介绍常见的嵌入式软件体系结构。
在嵌入式开发过程中尤其是MCU为主控的项目开发中实时性是需要考虑的重要因素本文介绍常见的2种嵌入式软件体系结构并对其优缺点作简要分析另外还对它们的软件层次结构做了简要介绍。 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)
{}
优点
相比轮询系统改善了实时性。任务通过检查是否具备执行条件标志位避免轮询系统反复查询耗时对实时性要求比较高的操作也可以直接在中断中执行。
缺点
实时性较差。任务执行仍需延迟一个轮询周期才被执行检查若其他任务耗时比较长则任务无法及时处理某些事件。
开发建议
可配合状态机和消息队列提高系统实时性 无操作系统软件层次结构可参考如下图。 其中
1)应用层即无限循环中的任务。
2)组件层是对驱动层的再封装。如读写EEPROM会用到GPIOI2C总线这些驱动层的东西将EEPROM器件放在组件层它是对驱动层的再封装。
3)有时为了提高实时性允许应用层直接操作驱动层。封装会增加函数调用从而增加系统开销。 2.有操作系统
应用程序不再直接面向硬件开发而在操作系统的基础上编写。
优点
1)具有高实时性。
2)提高了开发效率缩短了开发周期。
3)利于扩展和移植。
开发建议
可充分利用中断操作系统事件消息队列信号量机制提高系统实时性。 有操作系统软件层次结构可参考如下图。 其中
各层严格遵循上层调用下层的结构。 总结本文介绍了常见的嵌入式软件体系结构。