cathy 在 提交
我想在单片机上,不跑操作系统,在需要处理一些业务逻辑时,还需要检测按键短按、长按、多个按键同时按下,我要如何实现?
如果在业务逻辑比较复杂的情况下,不跑操作系统,这个问题其实是一个“很难”的问题,在单线程(裸机)情况下,处理多件事情,这个处理逻辑必须要严谨才行,否则很有可能“卡机”或“死机”。
但是,有了操作系统,这个问题就不是问题了。
8位单片机能跑RTOS吗?
针对上面的问题,肯定又有人会问:8位单片机能跑RTOS吗?
现在8位单片机的资源相对以前更多了,跑RTOS完全没有问题。
还有,在8位单片机上跑RTOS会有意义吗?
针对本文开篇说的问题,就有意义,也有必要。如果跑裸机,虽然那些复杂的业务逻辑功能实现了,但开发的时间和周期,以及后期更新、维护的成本可想而知。
下面分享一款可以在 STM8 运行的轻量级的实时操作系统Atomthreads。
Atomthreads介绍
Atomthreads是一款免费的轻量级实时操作系统,适用于RAM和ROM资源较小的嵌入式系统。Atomthreads在开源BSD许可下发布的,可以不受限制地免费商用。
到底有多轻量级?
能支持最小资源(1K RAM,8K ROM)STM8运行五六个线程,可以说问题不大。
如果你的应用程序对RAM占用量很小,可以运行更多线程,当然,线程多少不是问题,能合理处理各项业务逻辑才是关键。
主要特征
- 具有操作系统该有的功能:优先级抢占、信号量、队列、计时器等
- 轻量级:整个操作系统就几个C文件
- 高度可移植的ANSI C代码,不依赖于任何编译器
- 易于阅读,源代码提供丰富的注释
- 可以使用单个体系结构特定模块移植到任何CPU体系结构
支持的CPU架构
从8位微控制器到32位多种处理器。
更多内容请参看官网:
源码简介
Atomthreads内核虽小,但该有的都有。而且源码提供众多例程,方便初学者学习。
源码下载地址:
https://github.com/kelvinlawson/atomthreads
内核函数接口:
支持Port
因为Atomthreads是一款非常轻量级的实时操作系统,不像FreeRTOS、RT-Thread、μC/OS等,没有文件系统、网络、CLI等一些组件。所以,Atomthreads不适合于实现复杂功能的嵌入式系统。
最后,分享一下移植好的Demo下载地址:
https://pan.baidu.com/s/1MC8dPjyyxm4cgHfCOOrmtg
提取码:f36g
来源:嵌入式专栏(作者 | strongerHuang)
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。