掌上单片机实验室 – 尝试RT Thread(14)

文章讲述了在有限的学时中,注重培养学生用单片机解决实际问题的能力,选择了Arduino和FreeRTOS作为基础学习平台,但因其实用性限制,转而探索RT-Thread实时操作系统。作者强调学习RT-Thread的重点在于应用,而非深入其内部实现,并指出现有资料对新手使用指导不足。计划使用RT-ThreadStudio作为开发环境,以STM32为起点,对比不同RTOS的优缺点,期望帮助新人快速上手并推动RT-Thread在国内的普及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

        前面介绍了掌上单片机实验室的构想,以及以 Arduino、Free RTOS为基础的学习过程,如果针对非计算机专业的学生而言,所述内容作为单片机或嵌入式的课程素材,应该够了,因为他们只有大约40~60学时,能把前述的学习内容消化实施,再在此基础上做些拓展,结合自己的兴趣,做些个性化的应用尝试,已经能初步掌握单片机的应用技能。在此,我想说明一点:我认为在如此少的学时中,重点应放在“如何用单片机解决具体应用问题“的能力培养上,而非将某个具体单片机学懂、学透,重在需求分析及软件构思。所以选择了Arduino IDE;而引入RTOS是因为RTOS的设计思路对培养良好的软件构思方式颇有益处。

        但基于Arduino 和 FreeRTOS也有器局限性,主要是实用性略弱,学生基本上不能基于此去应对实际工作。

        为满足这类需求,尝试在“掌上单片机实验室“硬件平台上以RT-Thread 实时操作系统为基础,完成相应的学习内容。因为 RT-Thread 提供了较丰富的资源,在物联网应用上具有相当的实用性;此外,它的软件框架是完全基于对象的分层架构,可以学习不同的编程思路;而且,它是国产的开源软件,在目前的大环境下,有其特有的价值。

二、目的

        通过实现小车的驱动和基本操控,掌握基于 RT-Thread 的编程方式,学会基于 RT-Thread 构建程序的思路。

        在此,特别强调一点:学习过程是以应用RT-Thread为出发点,重点放在“用“上,而非去消化 RT-Thread 的内部是如何实现的?如何移植某款单片机到RT-Thread上?

        因为,作为学生,能在日后工作中用好一款操作系统已属不易,不要想去写一个操作系统了。我并不排斥通过了解操作系统是如何实现,来进一步掌握系统的应用,但这不是在学习过之初!RT-Thread是开源的,完全可以在实际应用中,遇到问题或想提高性能或代码效率时,用单步调试方式,跟踪到系统代码中,琢磨如何结合应用的需求去优化。在此过程中,自然就了解了系统的实现过程。

        而单片机的移植根本不用使用者操心,单片机厂家会去做,而且他们也做的会更好!如果一款单片机厂家都不愿意去做RT-Thread的移植,那你也不必选择它。

        我觉得,网上以及RT-Thread官方的资料中,侧重介绍RT-Thread 内部的内容太多,而将其看成是一个“黑箱“或”灰箱“,侧重于系统介绍如何使用、如何避坑的内容太少,只能靠学习者通过大量的网上资料自己拼凑出应用的方法(这是我初步尝试的感受)。

        目前嵌入式软件(单片机程序)都在逐步API化,其用意就在于封装,让使用者可以比较方便上手,将编程的精力放在解决应用问题上,而非耗在学习、适应开发环境上。

        RT-Thread的框架应该是基于此宗旨设计的,但由于单片机的多样性和灵活性,其在驱动(组件)的添加上有点麻烦;但正因为如此,更应该为使用者提供全面、系统的使用说明,否则会有人因此而放弃选用。

        从使用角度考虑,当然希望RT-Thread能像Arduino那样封装的比较完善,用起来可以“傻“一些。但目前的设备驱动添加模式应该已经成形,有大的改动估计很难。那至少官方能提供比较全面、系统的实现过程说明,通过实际的示例,让初学者可以方便的实现设备组件添加。(我是绕了很大一圈才搞定PWM设备,虽说最后重新梳理后觉得很好理解和实现,但这是通过网上查阅别人的分享、自己摸索后才得到的,我觉得应该通过官方的资料中获得,从别人的分享中得到答案不是正途,因为RT-Thread还在不断完善、更新,网友分享是无法做到同步更新的)。

        尝试RT-Thread的目的是希望通过我的分享,能帮助新人快速上手,使RT-Thread更为普遍的为国人所选用。

三、实施计划

        对照前面用 Arduino和Free RTOS的过程,将编程环境替换为 RT-Thread,实现完全相同的内容。这样可以对照看出不同系统的差异,以及各自的优越性,针对不同需求,做合适的选择。

        在初步摸索过程中,因为使用的是STM32,且STM32CubeMX中可以方便的添加RT-Thread,故首先考虑选择 STM32CubeMX作为开发环境。略加尝试后,觉得还是有诸多不便,主要是由于不但要学习STM32CubeMX,还要学用 STM32CubeIDE,否则就要使用盗版的 IAR或MDK,似有不妥。

        于是就尝试一下 RT-Thread 官方的RT-Thread Studio,初步体验不错。既然是要使用 RT-Thread,官方提供的集成开发环境应该是最完善的,否则不是自己打脸吗?而且考虑到如果替换为别的MCU,如势头正盛的RISC-V内核MCU,用STM32CubeMX开发的经验就全部作废了。所以从学习的潜在价值考虑,选择官方的 RT-Thread Studio 更加合理!

四、结语

        下面就开始我的 RT-Thread 学习之旅吧,但愿能从中获得惊喜,因为这是我尝试的第三个RTOS,前面两个是:uCOSII、FreeRTOS。

        期待国人自己的OS能做的更好。

——————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入之梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值