当前位置:首页 > > 记得诚
[导读]最近看见我的一个技术交流群在讨论一个问题:在51单片机上跑RTOS有没有意义?今天就来围绕51和RTOS展开讲讲。1关于51单片机及性能和资源51单片机可以说是我们这一代人的经典,因为它资源不是那么多,而且相对简单,是很多初学者的入门必选之一。1.51单片机种类51单片机的种类很...

最近看见我的一个技术交流群在讨论一个问题:51单片机上跑RTOS有没有意义?
今天就来围绕51和RTOS展开讲讲。

1关于51单片机及性能和资源

51单片机可以说是我们这一代人的经典,因为它资源不是那么多,而且相对简单,是很多初学者的入门必选之一。
1.51单片机种类51单片机的种类很多,我们这里是一种笼统的叫法,通常来说指的是8位MCU。
比如早期市面上常见的:英特尔的80C51系列、 爱特梅尔的AT89C51系列、 国产宏晶的STC89C51系列、STM8系列,还有恩智浦、微芯这些公司都有51单片机。



其实,早期很多做通用MCU的半导体公司,自家都有51单片机系列,只是随着32位单片机的出现,很多以前的51单片机逐渐离开了大家的视野。
2.51单片机的性能再说下51单片机的性能,性能主要是主频(或者时钟频率),当然还有一些其他因素决定性能,比如总线位宽。(可以参看文章《CPU性能由主频决定吗?》)
目前51单片机的主频通常从几兆到几十兆,比如STC89C51的主频可以高达48M:



48M的速度,按理说也不低了,这个速度如果32位MCU,跑GUI基本都可以了。
但是,这个是在8位的51单片机上,因为总线数据位宽的限制、没有预处理操作等,其性能相对32位来说还是低了很多。
这么说吧,同样跑一段程序,以48M运行的51单片机,是跑不过同主频(48M)的32位机(比如STM32)。
当然,51单片机如果以最高48M主频运行,其性能跑RTOS还是足足有余。
3.存储资源我们通常说的资源,其实还包含外设资源,比如ADC、I2C等。因为这里讨论的是RTOS,这里主要说Flash(用于代码存储)和RAM(运行存储)的资源。

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


2适用于51单片机的RTOS有哪些?

上面说了51的性能和资源,再来说说哪些RTOS可以在51单片机上运行。
早期的RTOS,很多都对流行的51单片机做了适配(底层驱动,例程),即使没有做适配,也做了一些通用的驱动接口,供更多人选择。

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

3在51单片机上跑RTOS有没有意义?

可能很多人认为:现在是32位单片机的天下,再加上51单片机的性能和资源都很少,跑RTOS很吃力,所以在51单片机上跑RTOS没有意义了。
是的,确实存在这样的问题。但是,我认为有没有意义要看情况,在某些情况下,在51单片机上跑RTOS依然有意义。
1.意义不大的情况因为目前确实32位MCU存在各方面优势的情况,51单片机存在后天的不足,目前很多情况下,在51单片机上跑RTOS其意义确实显得不是那么大。
比如:一个包含各种外设模块,处理各种业务逻辑大型的系统,这种情况下不适合用51单片机以及在上面跑RTOS。
还比如:一个功能非常简单的系统,像采集一个温度值,通过串口传输出去的单元系统。因为简单项目使用RTOS会额外增加系统的复杂程度。
2.有意义的情况我认为,一个东西的存在必然有它存在的意义。
像用于学习,我觉得意义还是比较大,毕竟RTOS编程思维和裸机思维方式差异比较大。

可能有些初学者目前主要掌握了51单片机的知识,想学习RTOS,这个时候在51单片机上跑RTOS就显得有意义。
还比如:一个相对不是那么复杂的项目,它的外设模块(或资源)用的比较多,同时,整体业务逻辑不是那么复杂,也不要求处理太多事件。像采集温度、湿度传输、按键检测等小项目,通过RTOS各任务模块化运行,我觉得还是比较有意义。
最后,还是那句话,有没有意义,还与你实际情况有关。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭