一款简单易用的嵌入式软件程序框架

💡 原文中文,约6400字,阅读约需16分钟。
📝

内容提要

这篇文章介绍了一个单片机程序框架,强调了代码架构设计的重要性。文章提供了一个示例程序,展示了如何使用该框架创建任务并加入时间片轮询。框架使用了面向对象的思维和侵入式链表,具有方便易用和高效的特点。

🔎

延伸解读

为何要自己实现时间片轮询框架

文章指出,实时操作系统调度复杂,且与业务代码耦合度低,但作者希望以操作系统的思维方式重构时间片轮询,实现完全解耦。这样用户只需包含头文件,无需修改库文件即可使用。这适合资源受限、不需要复杂调度的单片机场景,同时保留了任务管理的灵活性。

侵入式链表在框架中的关键作用

框架的核心是侵入式链表,参考了RT-Thread的实现。这种链表将链表节点嵌入任务对象结构体中,通过container_of宏从节点反推任务对象。它节省内存且运行高效,在Linux内核中广泛应用。文章提供的list操作接口包括初始化、插入、删除、判空和长度计算,是任务管理的基础。

任务管理接口的实用性与操作示例

框架提供了完整的任务管理接口:初始化、添加、删除、查询任务数量、检查任务是否存在、获取时间片长度。示例中创建了5个任务,并演示了删除、重新添加和查询操作。这些接口让用户无需了解内部原理即可快速构建任务调度,降低了使用门槛,适合初学者和快速开发。

❓

Q&A

为什么程序框架设计对代码质量重要?

程序框架设计可以提高代码的可维护性,减少后续的bug和混乱,提升编码效率和调试效果。

如何使用该框架创建任务?

可以通过初始化任务对象并调用相关接口函数,将任务添加到时间片轮询调度中。

该框架采用了什么样的编程思维?

该框架采用了面向对象的思维和侵入式链表,旨在提高资源利用率和运行效率。

时间片轮询框架的主要特点是什么?

时间片轮询框架具有解耦、易用和高效的特点,用户只需通过简单接口即可使用。

侵入式链表在框架中有什么作用?

侵入式链表提升了框架的灵活性,广泛应用于操作系统内核中,便于任务管理。

在项目初期进行架构设计有什么好处?

在项目初期进行架构设计可以避免后续代码混乱,减少bug,提高编码和调试效率。

➡️

继续阅读