干货|龙芯智龙平台和RT-Thread系统

技术引领创新,用“芯”构建生态,第三期龙芯生态论坛踏春而来。本次活动恰逢第26届世界读书日,我们将邀请《嵌入式Linux系统设计及应用-基于国产龙芯SoC》图书作者孙冬梅教授,分享龙芯架构嵌入式系统软硬件平台应用开发技术。

以下内容为活动速记

分享主题:龙芯智龙平台和RT-Thread系统

龙芯中科耕耘自主核心CPU技术领域20年,一路走来,成果丰硕。龙芯一直重视成果积累与技术普及,将产品研发过程中的思考与收获编纂成册,陆续出版了近20本内容涵盖计算机体系机构、计算机应用开发、服务器运维管理等领域的龙芯系列图书。

作为龙芯系列图书成果分享,本次活动了邀请南京工业大学孙冬梅博士围绕《嵌入式Linux系统设计及应用-基于国产龙芯SoC》,结合国产操作系统的核心原理与开发技术,介绍嵌入式系统国产软硬件平台应用及开发实践,来作为世界读书日最具仪式感的庆祝。

分享嘉宾:南京工业大学副教授 孙冬梅

嘉宾介绍:南京工业大学“动力工程及工程热物理”博士后,江苏省仪器仪表学会理事、江苏省射频识别技术标准化技术委员会委员。长期从事嵌入式系统及虚拟仪器的软硬件开发研究,参与完成多项科研项目,有丰富的理论及实践经验。主要研究方向:嵌入式系统(微处理器、可编程逻辑器、CPLD和FPGA)的软硬件设计开发,虚拟仪器系统开发研究、测控系统设计研究、基于热导式微流量传感器的设计及应用研究。

1、主题介绍

本次分享的主题的是龙芯平台智龙开发板RT-Thread嵌入式系统,接下来将从四个方面进行介绍:龙芯智龙开发板及背景知识、RT-Thread和Linux交叉编译平台、智龙开发板教程及网络资源、智龙开发板应用实例。

2、龙芯智龙开发板介绍

智龙开发板是具有丰富外设的嵌入式开发平台,采用龙芯1系列中1C300B为主芯片,该芯片具有丰富的外设控制功能,具备多应用连接能力,能够满足工业控制应用中较高的算力要求。龙芯1C300B主频可达300MHz,并具有丰富的外设控制功能,包括Camera控制器、USB OTG及USB HOST接口、AC97/I2S控制器、LCD控制器、SPI接口及UART接口。

目前智龙开发板已适配成功且可进行相应扩展开发的操作系统共三种。首先是在嵌入式系统领域应用广泛的Linux操作系统;其次为国产嵌入式操作系统RT-Thread;第三种是翼辉操作系统SylixOS。其中RT-Thread作为物联网专用操作系统,因其小而美的特点,在智能家居、工业控制等领域均有广泛应用。
对于嵌入式系统开发学习者而言,可以遵循从通用操作系统Linux入手、逐步了解专用操作系统RT-Thread的学习路径,方便大家在具备基本的系统配置、使用、开发技能之后,能快速开展嵌入式系统开发工作。

除了前面介绍的丰富外设及所支持的系统之外,下面简单介绍几种智龙开发板目前支持的扩展模块。下图最上方1号图示为龙芯俱乐部设计的嵌入式智龙综合实验箱底板,底板上包含LCD点阵屏、数码管、按键及相应的AD、ESB8266 WiFi扩展模块;左下角2号图示为智能车实验箱、右下角为LCD的扩展屏。
干货|龙芯智龙平台和RT-Thread系统_第1张图片

配置了相应功能的扩展模块后,智龙开发板具备了包括网络连接在内的工业控制能力,适应不同场景下工业控制要求。

下图展示的是智龙开发板在2020年嵌入式系统芯片设计大赛中科博智龙北斗应用云中的使用效果,此外,智龙开发板还可以连接阿里云、中国移动OneNet等公有云,实现智能控制网络应用。
干货|龙芯智龙平台和RT-Thread系统_第2张图片

除了网络应用,智龙开发板在工业控制方面也有突出优势,为适应目前需求广泛的智能图形控制要求,智龙开发板支持LCD屏扩展板操作,可满足定制化GUI编程需求。
智龙开发板还支持应用于智能车、智能灯等智能控制的扩展模块,为用户设计、搭建符合个性化应用要求的嵌入式系统提供了良好的基础,围绕智能车/灯的控制应用系统已作为科研课题完成了开发并在大赛中获奖。

2、基于Windows的RT-Thread和Linux交叉编译平台

下面来了解智龙开发板的软件系统即基于Windows的RT-Thread及基于Linux的交叉编译平台。首先来看一下Windows平台下的RT-Thread系统。为方便进行基于RT-Thread的嵌入式系统开发,RT-Thread团队推出了env开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menuconfig提供了简单易用的配置裁剪工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。

下图为evn环境中执行menuconfig命令后的操作界面,通过menuconfig可以配置RT-Thread系统组件及模块,裁剪出符合要求的系统。
干货|龙芯智龙平台和RT-Thread系统_第3张图片

evn环境下使用scons命令完成项目编译,编译生成的可执行程序可通过网络下载到智龙开发板中运行。此外,RT-Thread还提供了finsh命令行工具,供用户通过命令行完成调试、系统信息查看等工作。
除以上介绍的Windows平台RT-Thread开发环境,RT-Thread也可在Linux平台进行开发。开发者可以自行安装Linux发行版系统或通过使用Windows环境下Linux系统虚拟机的方式来构建嵌入式开发上位机系统,并在其中安装交叉编译工具gcc-4.3-ls232。与Windows环境的开发过程类似,经过交叉编译生成的可执行程序,通过网络服务下载到开发板下位机中,即可正常运行,需要注意的是,在执行前需保证程序应具有执行权限。
为提高龙芯平台RT-Thread系统开发的灵活性及便捷性,龙芯技术爱好者勤为本将智龙开发板各类外设封装为龙芯1C库,在Windows环境命令行中对外设相关代码进行编译,再下载到开发板即可使用。同时,因龙芯1C库进行了封装,为用户提供了简便的操作接口及方法,也适合需要进行裸机开发的爱好者使用。下图为龙芯爱好者勤为本维护的龙芯1C库gitee主页。(https://gitee.com/caogos/OpenLoongsonLib1c)
干货|龙芯智龙平台和RT-Thread系统_第4张图片

3、智龙开发板教程及网络资源

目前嵌入式系统更多基于开源操作系统进行设计与开发,Linux作为主流开源系统,为开发爱好者了解、学习嵌入式系统提供了有利条件。源于此种开发背景,孙老师结合自身多年嵌入式系统研发、教学经验编写了《嵌入式Linux系统设计与应用-基于国产龙芯SoC》,本书包含三部分:
干货|龙芯智龙平台和RT-Thread系统_第5张图片

  • 基础篇:介绍龙芯智龙开发板实验平台及开发环境的搭建方法。
  • 中级篇:介绍Linux基础编程知识,包括线程、信号、网络等内容。
  • 高级篇:介绍开发板硬件编程、驱动编程等高级操作。
    高级篇中,孙老师基于开发实践,结合开发板硬件特点,详细介绍了PWM驱动、I2C总线及设备驱动、SPI总线及设备驱动知识,并实现了相关设备驱动代码,为大家进行外设开发提供了有价值的参考。
    书中的所有硬件驱动、实验案例代码均已经过验证,方便教学及学习使用。

此外,基于对RT-Thread的深厚理解,孙老师还专门编写了《基于RT-Thread的教程》一书,其内容参考了RT-Thread官网内核设计相关资料,案例代码已全部调试并在智龙开发板V3.0上运行通过,其中,部分应用程序与其他ARM架构系统可通用。全书共分为三个部分:

  • 基础入门篇:介绍从初学者成长为系统程序员应具备的基本技能。
  • 操作系统篇:介绍操作系统基本操作,包括文件、进程、线程、消息、内存、锁、信号、网络等。
  • 外设篇:介绍智龙开板相关外设驱动及应用程序编写方法,包括I2C总线设备、SPI总线设备、CAN总线设备、LCD设备、RTC设备、PWM设备。

下面介绍智龙开发板网络资源。作为技术图书《嵌入式Linux系统设计与应用-基于国产龙芯SoC》的配套学习资料,孙老师特别提供了虚拟机镜像及网络课程资源。大家可以根据需要从网盘下载镜像文件,并在vmware虚拟机管理工具中导入后,即可了解书中各章节介绍的驱动及实例代码,方便大家操作演练。同时,与书籍配套的30讲视频课程也已经在超星慕课发布(https://mooc1.chaoxing.com/course/214738662.html),该课程自发布以来已经指导了三轮课程教学工作,并荣获2020年“江苏省高校微课教学比赛”微课程类三等奖,课程包括2讲SylixOS,10讲Linux,18讲RT-Thread,欢迎有兴趣的开发者学习参考并提出宝贵意见。

4、智龙开发板应用实例

下面来介绍智龙开发板的应用实例。

  • 基于RT-Thread的百度语音项目
    2018年基于RT-Thread操作系统实现的百度语音识别项目,可在开发板上输入文字,将文字通过WiFi控制器发送到百度语音api,完成语音合成后,再发送回开发板。

  • 基于 RTT 的智能灯
    智能照明系统安装在卧室或书房内,当有人进入房间时,红外检测模块检测到人员进入,可自动打开LED灯,实现智能控制。
    干货|龙芯智龙平台和RT-Thread系统_第6张图片

  • 基于RTT 的柿饼的案例
    柿饼即PersimmonUI是以C++编写的,是RT-Thread上一款现代化图形UI库,通过在开发板上扩展的LCD触摸屏,可以实现炫目的图形化操作。

  • 基于RTT 的智能车
    智能车前端配置了遥感控制器来控制智能车运行,开发板通过输出PWM信号控制智能车的运行方向。设计基于Loongson 1C芯片及国产RT-Thread操作系统内核,使用智龙开发板编写应用程序,与PS2手柄通信,输出PWM信号控制电机驱动,实现远程控制小车。

最后是RT-Thread的开发实例。

  • 在finsh shell中运行第一个Hello 程序。

  • 在finsh shell中查看常用基本内置命令。

  • 在 finsh shell 中运行GPIO 的 KEY操作。

  • 在 finsh shell 中 运行 MicroPython实现pin的操作。

5、龙芯嵌入式Linux开发的原创集成开发环境-智龙IDE

随着国产智能硬件与系统的普及,更多基于相关平台的开发资源不断涌现,其中龙芯俱乐部开发的智龙IDE因其适用广泛、功能完善而得到了大家的关注。
干货|龙芯智龙平台和RT-Thread系统_第7张图片

龙芯俱乐部开发的基于龙芯嵌入式Linux原创集成开发环境–智龙IDE具有以下特色:

  • 开发平台适用面广:智龙IDE提供龙芯 Linux/X86 Linux/X86 Windows 三种版本。
  • 专注龙芯及国产操作系统:智龙IDE将支持更多龙芯芯片和板卡,如2K龙芯派/1B开发板/3A龙芯开发电脑等,实现对龙芯多芯片/多应用模式/多操作系统的支持。

目前智龙IDE已完成基于龙芯3A4000与统信UOS系统及X86电脑WIN10系统的内测,并逐步在高校、企业中推广。
干货|龙芯智龙平台和RT-Thread系统_第8张图片

问答环节:

Q1:RT-Thread的Nano Smart和RT Studio对于龙芯平台的适配情况 ?

A1:RT-Thread配套的IDE为RT Studio,在STM32系列中应用广泛。RTT Nano是RT-Thread的精简版,包含了RT-Thread的内核部分,如线程通信、线程同步、内存管理等主要内容,相关的外设组件,如网络系统组件,未包含在RTT Nano中。RTT Nano主要面向RAM、ROM资源有限的开发环境。开发板主芯片主频达到100MHz以上就可使用RT-Thread,且RT-Thread的组件非常丰富,可以帮助用户快速构建开发环境。

Q2: 嵌入式系统的设备驱动是否必须使用汇编语言编写?

A2:驱动一般使用C语言编写,仅在有限的必要的设备控制功能中使用汇编。

Q3: 《嵌入式Linux系统设计与应用-基于国产龙芯SoC》中有关于云的介绍吗?

A3:《嵌入式Linux系统设计与应用-基于国产龙芯SoC》这本书关于云的介绍比较少,在《基于RT-Thread的教程》中介绍了RT-Thread中连接云的package包,并介绍了百度云及MQTT的连接实例,ESB8266组件可以便捷地完成云平台连接。

你可能感兴趣的:(技术干货,嵌入式,网络,编程语言,python,linux)