快捷搜索:  汽车  科技

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL创建普通任务图三,类系统的启动OSAL架构主要涉到的源文件和头文件:图二,架构涉及到的源码文件和接口文件启动类操作系统

OSAL(Operating System Abstraction Layer),即操作系统抽象层。OSAL最初的概念是由德州仪器TI在ZigBee的协议栈Z-Stack上开发的,是个类操作系统的开源系统架构,并不是正真的操作系统。但是对单片机裸机开发非常友好,是能显著提升编码水平的一套架构,它就是为了优雅而生。其API修改历史。

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL(1)

图一,API修订历史记录

事件event是这个框架的最小单位,多个事件组成一个任务task。

系统上电之后首先进行底层硬件和程序环境的初始化,然后对系统所有的任务进行注册等处理,然后启动 OSAL 操作系统进入任务轮询,不断查询每个任务是否有事件产生。如果有任务事件发生,则 执行相应的事件处理函数,如果没有,就查询下一个任务,如此往复。

OSAL架构主要涉到的源文件和头文件:

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL(2)

图二,架构涉及到的源码文件和接口文件

启动类操作系统

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL(3)

图三,类系统的启动

创建普通任务

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL(4)

图四,添加任务

创建定时任务

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL(5)

图五,添加定时任务

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL(6)

图六,任务初始化

一图学会如何使用该架构开发自己的裸机程序

后台服务器高级架构设计,一款开源的裸机开发架构操作系统抽象层-OSAL(7)

图七,OSAL工作机制

其实在工作中,单片机裸机开发是非常多的,有了这么一款类操作系统之后,让逻辑开发更加高效且优雅,毕竟优雅永远不会过时的。学生党get到了精髓之后,走上工作岗位也能写出让职场老鸟都自觉惊艳的裸机代码,岂不快哉?

最后再增加一点彩蛋,以下是一些开源免费的架构以及库,感兴趣的不妨读读源码,对自己的能力水平补补钙,即使现在用不着,以后说不着就能用到,赶紧收藏起来吧。

MultiTimer :一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。

MultiButton:一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。

lw_oopc:是了高先生及其MISOO团队创作的lw_oopc宏,一个轻量级的C语言面向对象编程框架。

EEPROMfs : 基于EEPROM的简易类文件的数据读写库,方便做动态功能增减时参数管理。增减参数块类似增减文件,不会对已有数据存储带来影响。

EFSM (event finite state machine,事件驱动型有限状态机) : 是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中 EFSM的设计原则是:简单!

OpenBLT:主要用作STM32引导加载程序。它可以与几乎任何微控制器一起工作,并使用几乎任何类型的通信接口来执行固件更新。

EasyLogger:是一款超轻量级(ROM<1.6K RAM<0.3K)、高性能的 C/C 日志库,非常适合对资源敏感的软件项目,

EasyFlash:是一款开源的轻量级嵌入式Flash存储器库,方便开发者更加轻松的实现基于Flash存储器的常见应用开发。

SFUD:一款开源的串行 SPI Flash 通用驱动库。解决 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性,同时也可以规避 Flash 缺货或停产给产品带来的风险。

znfat :振南的znFAT是一套高效、完备、精简且具有高可移植性的嵌入式FAT32文件系统。

它们均可以在github,gitee等开源平台搜索查找到。

猜您喜欢: