嵌入式开发常用的软件架构!

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

本文介绍了嵌入式软件开发中的两种程序架构设计方案:时间片轮询法和前后台顺序执行法。时间片轮询法适用于不完全依赖操作系统、有间隔时间和实时性要求的情况。前后台顺序执行法适用于逻辑简单、复杂度低的软件开发,但实时性较低。此外,还介绍了嵌入式操作系统和如何选择合适的操作系统。

🔎

延伸解读

时间片轮询法的适用边界

时间片轮询法介于前后台顺序执行法和操作系统之间,适合需求不完全依赖操作系统、任务无需时刻执行且有一定实时性要求的场景。它需要定时器,通常定时1ms,但要求每个任务函数执行时间不超过1ms,且主循环或任务函数中不能有毫秒级延时。若任务耗时较长,必须确保任务执行周期远大于其耗时,否则会影响实时性。

前后台顺序执行法的局限

前后台顺序执行法通过while(1)或for(;;)循环不断调用函数,是初学者常用框架。其优点是逻辑简单直观,适合复杂度低的软件开发。但缺点明显:实时性低,函数中毫秒级延时会累积,导致其他函数执行间隔不一致;当程序逻辑复杂度提升时,维护人员难以理清运行状态,维护复杂度高。

嵌入式操作系统的选择考量

对于单片机,常用抢占式操作系统有UCOS、FreeRTOS、RT-Thread Nano和RTX等。选择时需注意:uCOS资料丰富适合学习,但产品使用需收费;FreeRTOS免费,很多产品在用;RT-Thread是国产物联网操作系统,组件丰富且免费;RTX为ARM和Cortex-M设备设计,免版税且确定性实时。操作系统对任务耗时要求不严,通过优先级抢占调度。

❓

Q&A

什么是时间片轮询法?

时间片轮询法是一种嵌入式软件开发的程序架构设计方案,适用于不完全依赖操作系统、有间隔时间和实时性要求的情况。

前后台顺序执行法适合什么样的软件开发?

前后台顺序执行法适用于逻辑简单、复杂度低的软件开发,但实时性较低,维护复杂度高。

选择嵌入式操作系统时应该考虑哪些因素?

选择嵌入式操作系统时应考虑其功能、是否收费、适用性以及社区支持等因素。

时间片轮询法的定时器设置有什么要求?

时间片轮询法需要使用定时器,建议定时1ms,且任务函数的执行时间不能超过1ms。

uCOS和FreeRTOS有什么区别?

uCOS适合学习但需收费,而FreeRTOS是免费的,广泛应用于许多产品中。

前后台顺序执行法的优缺点是什么?

优点是逻辑简单明了,适合初学者;缺点是实时性低,维护复杂度高。

🏷️

标签

➡️

继续阅读