前面有朋友大概了问了这样一个问题:我想在stm8单片机上,不跑操作系统,在需要处理一些业务逻辑时,还需要检测按键短按、长按、多个按键同时按下,我要如何实现?
不跑操作系统,这个问题其实是一个“很难”的问题,在单线程(裸机)情况下,处理多件事情,这个逻辑处理必须要严谨才行。
但是,有了操作系统,这个问题就不是问题了。
1写在前面
在不跑操作系统的情况,我曾经也用stm8单线程(逻辑)处理过相对复杂的业务逻辑:检测键盘(短按、长按)、控制显示、检测信号、串口收发通信等......
虽然那些复杂的业务逻辑功能实现了,但开发的时间和周期,以及后期更新、维护的成本可想而知。
所以,本文针对资源较小的stm8,推荐大家使用一款轻量级的实时操作系统atomthreads。
到底有多轻量级?
能支持目前(2018年09月)最小资源(1k ram,8k rom)stm8运行五六个线程,可以说问题不大。
如果你的应用程序对ram占用量很小,可以运行更多线程,当然,线程多少不是问题,能合理处理各项业务逻辑才是关键。
为什么不选择stm32呢?
因为产品成本控制。我曾经也在想,为什么不选择一个资源大一点,而且速度快一点的stm32来开发呢,便宜的stm32也就两三元钱,但便宜的stm8就一块多钱。
说到stm8价格,不得不说51单片机,51单片机价格可以说是stm8的好几倍,而且资源也没有stm8丰富。据我了解,还有很多老一辈工程师还在使用51单片机(at89c51、stc89c51等)。
所以,如果你在学习51开发,有必要学习一下stm8开发。因为做产品的话,stm8比51明显有优势。
2
atomthreads介绍
atomthreads是一款免费的轻量级实时操作系统,适用于ram和rom资源较小的嵌入式系统。atomthreads在开源bsd许可下发布的,可以不受限制地免费商用。
主要特征
具有操作系统该有的功能:优先级抢占、信号量、队列、计时器等
轻量级:整个操作系统就几个c文件
高度可移植的ansi c代码,不依赖于任何编译器
易于阅读,源代码提供丰富的注释
可以使用单个体系结构特定模块移植到任何cpu体系结构
支持的cpu架构
从8位微控制器到32位多种处理器。
经常关注过我分享的朋友会发现,atomthreads也在我以前分享过的rtos列表中:
https://www.osrtos.com
3源码简介
atomthreads内核虽小,但该有的都有。而且源码提供众多例程,方便初学者学习。
源码下载地址:
https://github.com/kelvinlawson/atomthreads
内核函数接口:
支持port
因为atomthreads是一款非常轻量级的实时操作系统,不像freertos、rt-thread、μc/os等,没有文件系统、网络、cli等一些组件。所以,atomthreads不适合于实现复杂功能的嵌入式系统。
电容降压时的典型应用与注意事项详解
谈谈中国式SaaS的出路在哪
西班牙电信德国公司计划2021年商用云5G核心网
五款口碑好到爆炸的智能穿戴设备
普思立激光:激光设备——激光焊接的市场发展分析
关于一款可以在STM8上运行的实时操作系统Atomthreads
10G波长可调光模块已完成开发和验证测试,即将实现量产
安卓机皇三星S8今晚发布 配置渲染图满天飞只差价格不知道
在2019年光伏市场方面海外争夺战成关键
dc调光模块24V转100mA驱动隔离放大器的特性说明
基于矢量网络分析仪E5071C的TDR与传统采样示波器TDR之间的测量性
ST01与ST11系列热保护器对比:性能升级一览!「安的电子」
政策加持:四部委联合发布停车场与充电设施一体化建设通知
通过Logit调整的长尾学习
智能汽车的这些技巧,一大半人都不知道
逆变器的另类做法,Power inverter
32位M0核单片机XL32F003系列,多种不同封装类型多款产品
vivado中版本发生变化Ip核出现锁定现象
智能化妆镜呵护你的美丽与健康
RFID小型圆极化天线应该怎样来设计