跳转到主要内容

8位单片机轻松跑RTOS操作系统

cathy 提交于

我想在单片机上,不跑操作系统,在需要处理一些业务逻辑时,还需要检测按键短按、长按、多个按键同时按下,我要如何实现?

如果在业务逻辑比较复杂的情况下,不跑操作系统,这个问题其实是一个“很难”的问题,在单线程(裸机)情况下,处理多件事情,这个处理逻辑必须要严谨才行,否则很有可能“卡机”或“死机”。

但是,有了操作系统,这个问题就不是问题了。

<strong><font color="#004a85" size="5px">8位单片机能跑RTOS吗?</font> </strong>

针对上面的问题,肯定又有人会问:8位单片机能跑RTOS吗?

现在8位单片机的资源相对以前更多了,跑RTOS完全没有问题。

还有,在8位单片机上跑RTOS会有意义吗?

针对本文开篇说的问题,就有意义,也有必要。如果跑裸机,虽然那些复杂的业务逻辑功能实现了,但开发的时间和周期,以及后期更新、维护的成本可想而知。

下面分享一款可以在 STM8 运行的轻量级的实时操作系统Atomthreads。

<strong><font color="#004a85" size="5px">Atomthreads介绍</font> </strong>

Atomthreads是一款免费的轻量级实时操作系统,适用于RAM和ROM资源较小的嵌入式系统。Atomthreads在开源BSD许可下发布的,可以不受限制地免费商用。

<strong>到底有多轻量级?</strong>

能支持最小资源(1K RAM,8K ROM)STM8运行五六个线程,可以说问题不大。

如果你的应用程序对RAM占用量很小,可以运行更多线程,当然,线程多少不是问题,能合理处理各项业务逻辑才是关键。

<strong>主要特征</strong>
<ul>
<li>具有操作系统该有的功能:优先级抢占、信号量、队列、计时器等</li>
<li>轻量级:整个操作系统就几个C文件</li>
<li>高度可移植的ANSI C代码,不依赖于任何编译器</li>
<li>易于阅读,源代码提供丰富的注释</li>
<li>可以使用单个体系结构特定模块移植到任何CPU体系结构</li>
</ul>

<strong>支持的CPU架构</strong>

从8位微控制器到32位多种处理器。

<center><img src="http://mcu.eetrend.com/files/2021-10/博客/100554289-222865-1.png&quot; alt=“8位单片机轻松跑RTOS操作系统"></center>

更多内容请参看官网:

<a href="http://atomthreads.com">http://atomthreads.com</a&gt;

<strong><font color="#004a85" size="5px">源码简介</font> </strong>

Atomthreads内核虽小,但该有的都有。而且源码提供众多例程,方便初学者学习。

源码下载地址:

<a href="https://github.com/kelvinlawson/atomthreads">https://github.com/kelvinl…;

<strong>内核函数接口:</strong>

<center><img src="http://mcu.eetrend.com/files/2021-10/博客/100554289-222866-2.png&quot; alt=“8位单片机轻松跑RTOS操作系统"></center>

<strong>支持Port</strong>

<center><img src="http://mcu.eetrend.com/files/2021-10/博客/100554289-222867-3.png&quot; alt=“8位单片机轻松跑RTOS操作系统"></center>

因为Atomthreads是一款非常轻量级的实时操作系统,不像FreeRTOS、RT-Thread、μC/OS等,没有文件系统、网络、CLI等一些组件。所以,Atomthreads不适合于实现复杂功能的嵌入式系统。

最后,分享一下移植好的Demo下载地址:

https://pan.baidu.com/s/1MC8dPjyyxm4cgHfCOOrmtg
提取码:f36g

来源:<a href="https://mp.weixin.qq.com/s/l7YszpiiwHS9kPHPuinKLQ">嵌入式专栏(作者 | strongerHuang)</a>
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。