计算机与软件学院开展RT-Thread全球公益技术讲座
日期:2024-10-15  作者:wangxinyu_jsj   来源:  浏览量:54

2024年9月7日,由计算机与软件学院网络与物联网工程系与上海瑞赛德电子科技有限公司联合举办的一场关于国产开源操作系统 RT-Thread的公益技术讲座在我校举行。参加本次技术讲座的有来自北京芯驰半导体科技有限公司大连分公司的工程师、大连理工大学控制科学与工程学院的专业教师、大连海事大学的学生,以及大连东软信息学院物联网工程专业的老师和同学们。

图1 RT-Thread开发者留影纪念

RT-Thread是一款完全由国内团队开发维护的嵌入式实时操作系统,具有完全的自主知识产权。诞生于2006年,至今已有近20年的历史,由上海睿赛德电子科技有限公司负责开发维护和运营。RT-Thread被广泛应用于能源、车载、医疗、消费电子等多个行业,并且因其高可靠性、安全、高可伸缩性和中间组件丰富易用等特性,成为市面上装机量最大(超20亿台)、开发者数量最多(超20万)的操作系统之一。此外,RT-Thread还积极支持物联网(IoT)领域的发展,提供了丰富的物联网相关软件包和解决方案。

值得欣慰的是本次技术讲座的两位RT-Thread主讲工程师是我校学生,其中一位是2018级物联网工程专业毕业生张丙儒同学另一位是物联网工程专业大四的曲付冠同学。

2 RT-Thread大东软培训现场照

 

3 RT-Thread讲师照1

 

4 RT-Thread讲师照2

为期一天RT-Thread培训内容主要包括:

一、RT-Thread 内核学习:包括启动流程、线程、IPC等知识点. RT-Thread的启动流程大致可以分为以下几个步骤:(1)硬件初始化:在启动之初,首先进行硬件相关的初始化,包括设置堆栈指针、初始化处理器、设置系统时钟等。这些步骤通常在汇编语言中完成,并可能涉及到特定的CPU或板级初始化代码。(2)系统内核对象初始化:如定时器、调度器、信号量等。这些对象对于系统的正常运行至关重要,它们为系统提供了时间管理、任务调度、线程间同步等功能。(3)创建main线程、idle线程、timer线程。(4)启动调度器:通过rt_system_scheduler_start()函数来完成调度器是RT-Thread的核心部分,它负责任务的调度和切换,确保系统能够按照预定的优先级和时间片来执行各个任务。RT-Thread支持抢占式调度和时间片轮转两种调度策略。

线程是RT-Thread中最基本、最核心的概念之一。RT-Thread支持动态创建和静态创建线程两种方式,通过rt_thread_create()和rt_thread_init()两个函数来完成。线程的销毁是通过rt_thread_delete()和rt_thread_detach()来完成。如图4是RT-Thread线程状态转换图。

5 RT-Thread线程状态转换图

 

二、RT-Thread 组件学习:学习使用设备驱动、网络、UI、Arduino等组件。RT-Thread 提供了一套简单的 I/O 设备驱动框架(如图5),它位于硬件和应用程序之间,共分成三层:I/O 设备管理层、设备驱动框架层、设备驱动层。RT-Thread也提供了完整的网络组件,支持多种网络协议栈,如 LwIP、uIP、Salstack 等,以及 TCP/IP 协议栈。RT-Thread也支持多种 UI 组件,其中Persimmon UI 是一套运行在 RT-Thread 上的图形用户组件界面。

6 RT-Thread IO驱动框架

三、丰富有趣的应用案例:OpenMV-机器视觉应用、Arduino-RT-Thread应用、IOT智能监控应用。

案例1,先使用Vision_Board开发板通过RT-Thread开发环境烧录vision_board_openmv示例工程,然后上层使用OpenMV 固件(使用MicroPython 进行上层应用编程的),OpenMV 中集成了 TF-Micro 神经网络功能,使其可以加载 tflite 模型进行图像识别图像分类等任务,打开 OpenMV IDE,打开如下 Demo:

7 Vision_Board开发板

 

8 OpenMV Demo

打开Demo后,tf_object_detection.py 脚本会运行一个 FOMO 人脸检测的模型,当画面中出现人脸后,会在人脸中心位置标记圆圈。实现效果类似下图:

9 tf_object_detection.py人脸识别运行效果

 

案例2,训练神经网络模型并部署,训练神经网络模型是通过Edge impluse 网站,第一步在网站上上传训练集,第二步生成特征,第三步迁移训练(如果最后的结果和准确率不满足自己的实验要求,可尝试重新训练,重新更改参数及训练模型),第四步在Vision_Board开发板上进行部署。部署后再次拍摄图片,模型可以准确的识别,如图10左下角,识别truck的准确率=0.996.

 

10 Edge impluse 网站训练后的模型准确率

图11 网站训练后的识别测试

最后,各位RT-Thread开发爱好者度过了收获满满的一天,各位爱好者也纷纷上台发表感言,最后各位爱好者也集体留影纪念。

图12 某高校学生发表感言

 

图13 某企业工程师发表感言

图14 某高校老师发表感言

通过本次的公益技术讲座,让网络与物联网工程系与上海瑞赛德电子科技有限公司有了更深入的了解,为未来的校企合作奠定基础。

 

计算机与软件学院 网络与物联网工程系

王阳

收藏本页