盘点那些常见的单片机编程框架!

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

程序框架是编写程序的结构化方式,节省时间并减少错误。嵌入式系统包括普通任务和中断任务。常见框架类型有轮询无中断、只有中断、只有中断框架的变种、轮询有中断、轮询有中断-虚拟定时器、非抢占式实时操作系统和抢占式实时操作系统。

🔎

延伸解读

框架选择:从简单到复杂的权衡

文章列举了七种框架,从轮询无中断到抢占式RTOS,复杂度递增。轮询无中断简单但任务增多会卡顿;只有中断实时但资源有限;轮询有中断平衡资源但结构复杂;虚拟定时器适合周期性任务但精度受任务执行时间影响;RTOS提供更好实时性但需硬件支持。选择时需根据任务数量、实时性要求和硬件资源权衡。

中断与轮询的协作方式

文章区分了普通任务和中断任务。轮询有中断框架将周期性任务放主循环,紧急任务放中断,合理利用资源。虚拟定时器进一步用定时中断触发任务,时基通常1ms,能精确控制间隔,但需避免等待式延时,否则影响定时精度。这种协作适合需要周期性和突发响应的系统。

RTOS的实时性代价

非抢占式RTOS任务依次执行,时间片控制,但无法优先处理紧急任务;抢占式RTOS支持优先级和中断,实时性好,但需要移植且对硬件资源有要求。文章提到FreeRTOS、uCosII/III等常用系统。若项目对实时性要求高且资源充足,可考虑抢占式RTOS;否则非抢占式或前后台框架可能更经济。

❓

Q&A

什么是单片机程序框架?它有什么作用?

程序框架是编写程序的结构化方式,类似于文件大纲或模板。它提供基础结构,帮助开发者更快开始编写代码,节省时间并减少错误,提高开发效率。

嵌入式系统通常由哪两种任务组成?

嵌入式控制系统基本上由两种任务组成:普通任务和中断任务。普通任务对时间响应要求不高,通常是周期性执行的任务;中断任务对时间响应要求较高,必须立即处理。

轮询无中断框架有什么优缺点?

优点:程序执行流程简单清晰。缺点:对于系统修改功能非常不方便,同时如果任务数量增加会影响整个系统的响应时间,导致系统卡顿。

只有中断框架的变种是如何工作的?

采用状态机机制,中断函数中设置状态机的状态,而main函数主循环中根据不同的状态值执行不同的任务。

轮询有中断-虚拟定时器框架适合什么场景?

适合一些周期性运行的任务,同时中断可以应对外界的突发事件,保障实时性。一般虚拟定时器的时基为1ms。

抢占式实时操作系统有什么优点和缺点?

优点:实时响应,工程师只需要将精力放置在业务逻辑的实现上。缺点:需要移植且对单片机硬件资源有一定要求。

🏷️

标签

➡️

继续阅读