嵌入式开发常用的软件架构!
内容提要
本文介绍了嵌入式软件开发中的两种程序架构设计方案:时间片轮询法和前后台顺序执行法。时间片轮询法适用于不完全依赖操作系统、有间隔时间和实时性要求的情况。前后台顺序执行法适用于逻辑简单、复杂度低的软件开发,但实时性较低。此外,还介绍了嵌入式操作系统和如何选择合适的操作系统。
延伸解读
时间片轮询法的适用边界
时间片轮询法介于前后台顺序执行法和操作系统之间,适合需求不完全依赖操作系统、任务无需时刻执行且有一定实时性要求的场景。它需要定时器,通常定时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是免费的,广泛应用于许多产品中。
前后台顺序执行法的优缺点是什么?
优点是逻辑简单明了,适合初学者;缺点是实时性低,维护复杂度高。