打印
[MM32生态]

8位MCU跑RTOS有没有意义?

[复制链接]
1377|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 可怜的小弗朗士 于 2022-5-30 15:10 编辑

关于8位单片机及性能和资源
8位单片机可以说是我们这一代人的经典,因为它资源不是那么多,而且相对简单,是很多初学者的入门必选之一。


原文来自公众号:嵌入式专栏

使用特权

评论回复
沙发
可怜的小弗朗士|  楼主 | 2022-5-30 15:04 | 只看该作者
1.8位单片机种类8位单片机种类很多,我们了解最多的就是8位单片机,我们这里是一种笼统的叫法,通常泛指8位MCU。
比如早期市面上常见的:英特尔80C51系列爱特梅尔的AT89C51系列、 国产宏晶的STC89C51系列、STM8系列,还有恩智浦、微芯等这些公司都有51单片机。其实,早期很多做通用MCU的半导体公司,自家都有51单片机系列,只是随着32位单片机的出现,很多以前的51单片机逐渐离开了大家的视野。

使用特权

评论回复
板凳
可怜的小弗朗士|  楼主 | 2022-5-30 15:06 | 只看该作者
2.8位单片机的性能
再说下8位单片机的性能,性能主要是主频(或者时钟频率),当然还有一些其他因素决定性能,比如总线位宽。目前8位单片机的主频通常从几兆到几十兆,比如STC89C51的主频可以高达48M:48M的速度,按理说也不低了,这个速度如果32位MCU,跑GUI基本都可以了。
但是,这个是在8位的51单片机上,因为总线数据位宽的限制、没有预处理操作等,其性能相对32位来说还是低了很多。
这么说吧,同样跑一段程序,以48M运行的51单片机,是跑不过同主频(48M)的32位机(比如STM32)。
当然,51单片机如果以最高48M主频运行,其性能跑RTOS还是足足有余。

使用特权

评论回复
地板
可怜的小弗朗士|  楼主 | 2022-5-30 15:07 | 只看该作者
3.存储资源
我们通常说的资源,其实还包含外设资源,比如ADC、I2C等。因为这里讨论的是RTOS,这里主要说Flash(用于代码存储)和RAM(运行存储)的资源。

早期的51单片机,因为存储技术的限制(生产Flash和RAM成本很高),其资源相对都很小。比如经典的AT89C51其内部只有:128Bit的RAM,4K的Falsh。
但随着存储技术的成熟,现在51单片机存储容量都普遍增多了,比如市面上流行的STC单片机,其内部高达8K的RAM,以及64k的Flash.

使用特权

评论回复
5
可怜的小弗朗士|  楼主 | 2022-5-30 15:07 | 只看该作者
适用于8位单片机的RTOS有哪些?
上面说了8位的性能和资源,再来说说哪些RTOS可以在8位单片机上运行。
早期的RTOS,很多都对流行的8位单片机做了适配(底层驱动,例程),即使没有做适配,也做了一些通用的驱动接口,供更多人选择。

因为现在的芯片制造技术成熟了,然后随着需求的增加(软件资源更丰富、要求更高),很多RTOS都普遍偏向于32位的MCU,导致有一些RTOS对8位单片机不是那么友好。
当然,目前可用于8位单片机的RTOS依然有很多,只是有一些相对小众化,大家不是那么了解。
像Small RTOS、Keil 自带的RTX51 Tiny、大家熟悉的uCOS等这些都可以运行在51单片机上的RTOS。
之前给大家分享过一篇文章《STM8都支持哪些RTOS》中有描述,像AtomThreads、 Chibios、 CMX-Tiny+、 embOS这些RTOS都对8位单片机做了适配。
我之前学习8位的时候,在上面跑过高度裁剪的uCOS,简单跑两个任务还是问题不大,包括我给大家分享的文章《在STM8上运行的Atomthreads》还提供了对应的实例供大家学习。

使用特权

评论回复
6
可怜的小弗朗士|  楼主 | 2022-5-30 15:08 | 只看该作者
在8位单片机上跑RTOS有没有意义?
可能很多人认为:现在是32位单片机的天下,再加上8位单片机的性能和资源都很少,跑RTOS很吃力,所以在8位单片机上跑RTOS没有意义了。
是的,确实存在这样的问题。但是,我认为有没有意义要看情况,在某些情况下,在8位单片机上跑RTOS依然有意义。
1.意义不大的情况
因为目前确实32位MCU存在各方面优势的情况,8位单片机存在后天的不足,目前很多情况下,在51单片机上跑RTOS其意义确实显得不是那么大。
比如:一个包含各种外设模块,处理各种业务逻辑大型的系统,这种情况下不适合用8位单片机以及在上面跑RTOS。
还比如:一个功能非常简单的系统,像采集一个温度值,通过串口传输出去的单元系统。因为简单项目使用RTOS会额外增加系统的复杂程度。

使用特权

评论回复
7
可怜的小弗朗士|  楼主 | 2022-5-30 15:09 | 只看该作者
2.有意义的情况
我认为,一个东西的存在必然有它存在的意义。
像用于学习,我觉得意义还是比较大,毕竟RTOS编程思维和裸机思维方式差异比较大。

可能有些初学者目前主要掌握了51单片机的知识,想学习RTOS,这个时候在51单片机上跑RTOS就显得有意义。
还比如:一个相对不是那么复杂的项目,它的外设模块(或资源)用的比较多,同时,整体业务逻辑不是那么复杂,也不要求处理太多事件。像采集温度、湿度传输、按键检测等小项目,通过RTOS各任务模块化运行,我觉得还是比较有意义
最后,还是那句话,有没有意义,还与你实际情况有关。

使用特权

评论回复
8
phoenixwhite| | 2022-6-6 12:58 | 只看该作者
占用的内存大不大?

使用特权

评论回复
9
macpherson| | 2022-6-7 09:31 | 只看该作者
没有意义  

使用特权

评论回复
10
fentianyou| | 2022-6-7 09:54 | 只看该作者
使用定时器就可以。   

使用特权

评论回复
11
sheflynn| | 2022-6-7 11:50 | 只看该作者
可以运行rtso   

使用特权

评论回复
12
uytyu| | 2022-6-7 12:37 | 只看该作者
如果不扩展接口,运行系统比较吃力了。  

使用特权

评论回复
13
tabmone| | 2022-6-7 13:35 | 只看该作者
跑RTOS可以的,解决资源占用问题。  

使用特权

评论回复
14
天意无罪| | 2022-6-12 21:32 | 只看该作者
8位机的应用一般都比较简单,跑系统的意义不大,关键是要逻辑清晰简单。

使用特权

评论回复
15
yangxiaor520| | 2022-6-13 08:45 | 只看该作者
个人觉得意义不大

使用特权

评论回复
16
kiwis66| | 2022-6-14 21:26 | 只看该作者
确定能跑起来?

使用特权

评论回复
17
tpgf| | 2022-7-1 11:57 | 只看该作者
看具体的需求啦

使用特权

评论回复
18
aoyi| | 2022-7-1 12:12 | 只看该作者
有跑系统的必要吗

使用特权

评论回复
19
nawu| | 2022-7-1 12:16 | 只看该作者
好像比较费劲啊

使用特权

评论回复
20
zljiu| | 2022-7-1 12:37 | 只看该作者
没用8位的跑过啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

742

帖子

0

粉丝