我想在单片机上不使用操作系统来处理一些业务逻辑,同时还需要检测按键的短按、长按和多个按键同时按下。那么应该如何实现呢?
在没有操作系统的情况下,处理复杂的业务逻辑问题确实比较困难,尤其是在单线程(裸机)环境下处理多个任务,需要非常谨慎,否则可能导致单片机“卡机”或“死机”。
然而,一旦引入操作系统,这个问题就不再是问题了。
让我们来回答一个常见的问题:8位单片机能否运行实时操作系统(RTOS)呢?
如今,8位单片机的资源相对以前更加丰富,完全可以运行实时操作系统。
另外,对于在8位单片机上运行RTOS是否有意义的问题,答案是肯定的。特别是对于我们开篇提到的问题,使用RTOS既有意义又必要。如果选择裸机方式开发,虽然可以实现复杂的业务逻辑功能,但开发时间和周期,以及后续的更新和维护成本将不可避免地增加。
接下来,我想分享一个适用于STM8的轻量级实时操作系统Atomthreads。
Atomthreads介绍
Atomthreads是一款免费的轻量级实时操作系统,适用于RAM和ROM资源较小的嵌入式系统。Atomthreads在开源BSD许可下发布的,可以不受限制地免费商用。
到底有多轻量级?
能支持最小资源(1K RAM,8K ROM)STM8运行五六个线程,可以说问题不大。
如果你的应用程序对RAM占用量很小,可以运行更多线程,当然,线程多少不是问题,能合理处理各项业务逻辑才是关键。
主要特征
-
具有操作系统该有的功能:优先级抢占、信号量、队列、计时器等 -
轻量级:整个操作系统就几个C文件 -
高度可移植的ANSI C代码,不依赖于任何编译器 -
易于阅读,源代码提供丰富的注释 -
可以使用单个体系结构特定模块移植到任何CPU体系结构
**
**
支持的CPU架构
从8位微控制器到32位多种处理器。
更多内容请参看官网:
http://atomthreads.com
(提示:公众号不支持外链接,请复制链接到浏览器打开)
源码简介
Atomthreads内核虽小,但该有的都有。而且源码提供众多例程,方便初学者学习。
源码下载地址:
https://github.com/kelvinlawson/atomthreads
内核函数接口:
支持Port
因为Atomthreads是一款非常轻量级的实时操作系统,不像FreeRTOS、RT-Thread、μC/OS等,没有文件系统、网络、CLI等一些组件。所以,Atomthreads不适合于实现复杂功能的嵌入式系统。
最后,分享一下移植好的Demo下载地址:
https://pan.baidu.com/s/1MC8dPjyyxm4cgHfCOOrmtg
提取码:f36g
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !