0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Thread软件包定义和使用

RTThread物联网操作系统 来源:未知 作者:李倩 2018-05-21 11:29 次阅读

1、软件包的目的

软件包在高级语言中非常常见,很多高级语言都有对应的软件包平台,比如 Python 的 PyPi,Ruby 的 Gems 等等。软件包生态对于一门语言的选择至关重要,因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内,打造出自己想要的软件。

从工具的角度去看软件包,我们很容易联想到高级动物与低级动物的差别:无外乎就是使用和制造工具的熟练程度。这个道理对于我们程序员世界也同样适用,比如高级的程序员和初级程序员的差距可以归纳为:开发工具和软件包的熟练程度上,甚至在于是否会创造适用面广的软件包(圆轮子)或开发工具。

所以,想要成为高级程序员就快来使用、创造软件包吧~

2、软件包的定义

RT-Thread 软件包:运行于 RT-Thread 物联网操作系统平台上,面向不同应用领域的通用软件组件。软件包由描述信息,源代码或库文件组成。

RT-Thread 同时提供了开放的软件包平台,这里存放了官方提供或开发者提供的软件包。该平台为开发者提供了众多可重用软件包的选择,这也是 RT-Thread 生态的重要组成部分。

3、软件包的使用

RT-Thread 为开发者提供的全面的使用教程,详情如下:

入门文档教程:位于 RT-Thread 官网,文档->开发指南->env 工具用户手册

软件包制作教程:位于 RT-Thread 官网,文档->开发指南->package 开发指南

4、软件包汇总

RT-Thread 已经支持的软件包数量已经达到40+。所有软件包已经按照软件功能的角度,在 menuconfig 中进行了分类。每个分类下的软件包都可以在menuconfig->RT-Thread online packages菜单里对应的子菜单下找到。

为了降低大家的上手门槛,每个软件包在其项目首页都有详细的使用说明文档及示例代码。

4.1 物联网相关的软件包

物联网(IoT) 是 RT-Thread 当前非常重视一个环节,与其相关的软件包也非常庞大。你所开发的任何物联网应用,几乎都可以在这里找到对应的软件包,目前包括如下:

Paho MQTT:基于 Eclipse 开源的 Paho MQTT,对于做了很多功能及性能优化,比如:增加了断线自动重连功能,采用 pipe 模型,支持非阻塞 API,支持 TLS 加密传输等等;

WebClient:简单易用的 HTTP 客户端,支持 HTTP GET/POST 等常见请求功能,支持 HTTPS ,断点续传等功能;

mongoose:嵌入式 Web 服务器网络库,类似嵌入式世界里的 Nginx 。授权许可不够友好,商业需要收费;

WebTerminal:网友 @armink 开发的,可以在浏览器访问 Finsh/MSH Shell 的软件包,甚至是手机端;

cJSON:超轻量级的 JSON 解析库;

ljson:网友 @qiaoqidui 开发的 json 到 struct 的解析,输出库;

ezXML: XML 文件解析库,目前还不支持解析 XML 数据;

nanopb:Protocol Buffers 格式数据解析库,Protocol Buffers 格式比 JSON、XML 格式资源占用更少;

GAgent:接入机智云的软件包;

Marvell WiFi:Marvell WiFi 驱动;

Wiced WiFi:Wiced 接口的 WiFi 驱动;

CoAP:移植 libcoap 的 CoAP 通信软件包;

nopoll:移植的开源 WebSocket 通信软件包;

netutils:实用的网络调试小工具集合,包括:ping、TFTP、iperf、NetIO、NTP、Telnet 等;

OneNet:与中国移动 OneNet 云对接的软件包;

4.2 安全相关的软件包

安全一直是 RT-Thread 非常重视一个领域,尤其是在 RT-Thread 3.0 IoT OS 发布以后。接入网络的设备对于网络安全需求更是强烈,主要软件包:

mbedtls:ARM 公司开源的、可移植的适合嵌入式领域的 SSL 库,一些物联网包中的一些加密通信都会依赖它;

libsodium:现代化的、可移植的、易于使用的加密库,libsodium 的目标是提供构建高层密码学工具所需的核心算法

TinyCrypt:轻量级、可配置的加密库,支持 MD5、base64、AES、SHA1、SHA256 算法;

4.3 脚本语言相关的软件包

高级语言中的一些特性非常人性化,也很大程度上降低的开发门槛,但一直受限于嵌入式的资源。随着 MCU 技术的逐步发展,资源也是越来越多了。未来,也许 C 将不在是 MCU 编程的主流选择。目前 RT-Thread 支持的脚本语言如下:

JerryScript:超轻量级的 JavaScript 引擎;

MicroPython:针对嵌入式领域的 Python 语言实现软件包。这块也是 RT-Thread 最近一直在热推的技术,只要是支持的 RT-Thread 并有一定资源(ROM: 190KB, RAM: 8KB)的开发板,都可以跑 MicroPython 在官网文档中能找到 RTT 最新出炉的《MicroPython 开发手册》。MicroPython 现在也被广泛应用于产品原型验证、教育、创客 DIY硬件测试等领域;

4.4 多媒体相关的软件包

Openmv:基于 MicroPython 的开源的机器视觉库;

mupdf:网友 @rtoslab 移植的轻量级 PDF, XPS, E-book解析/渲染库。用 RTT DIY 一个 Kindle 不是梦;

4.5 工具类软件包

这里主要是一些辅助开发、调试的实用工具。这些专业化的工具,使用以后能够很大程度上提高大家的开发效率,节省我们程序员的宝贵开发时间。

CmBacktrace:网友 @armink 开源的 ARM Cortex-M 系列 MCU 的 HardFault 错误追踪库。目前已对 RTT 做了无缝对接,不用在修改任何移植代码,下载即用;

EasyFlash:网友 @armink 开源的轻量级 Flash 闪存库,非常适用于物联网产品的参数存储、日志记录的场景;

EasyLogger:网友 @armink 开源的超轻量级日志库。日志支持异步输出模式,各级别日志格式(包括颜色)可独立设置,并支持日志关键词过滤功能。极大的方便的开发者的调试过程。

SystemView:可以实时查看、追踪、分析 RT-Thread 各线程等资源使用情况,对于性能分析很有帮助。这里有很多是网友 @ArdaFu 的贡献;

4.6 系统相关的软件包

系统类的软件包,更多的是与操作系统精密联系在一起的软件组件:

RTGUI:RT-Thread GUI 绘图引擎。RT-Thread 的 Persimmon 柿饼 UI 组件,就依赖于该软件包;

Persimmon UI:适合嵌入式的,支持手势识别、滑动特效等类 Android 的 UI 库;

lwext4:来自网友 @parai 移植的,适合嵌入式的 ext2/3/4 文件系统库;

partition:一个简单的适合块设备的分区管理库;

SQLite:一个高可靠的、适合嵌入式领域的SQL数据库引擎。SQLite 也是 Android 内部集成的数据库,有一定的应用领域;

RT-Thread Insight:简写是 RTI ,一个用于 RT-Thread 的探测工具,用来帮助分析系统的内部行为;

LittlevGL2RTT:网友 @liu2guang 移植的 LittlevGl GUI 库,这是一个最近新出的嵌入式 GUI 库;

4.7 外设库和驱动类软件包

STM32F4_HAL:STM32 F4 系列的 HAL 固件函数库;

STM32F4_Drivers:STM32 F4 系列的 标准 固件函数库;

4.8 其他的软件包

Fastlz:一个可移植的、实时的压缩库;

miniLZO:一个类 LZO 压缩库的小型实时压缩库;

QuickLZ:一个号称是世界上压缩速度最快的压缩库;

MultiButton:由网友 @liu2guang 移植的简单易用的,基于事件驱动型的按键驱动库,可无限量扩展按键;

CanFestival:Canfestival (一个开源的 CANopen 协议栈)在 RT-Thread 系统上的移植,由网友 @gbcwbz 移植。提供了 CANopen 的一些示例,力图做到开箱即用;

samples:RT-Thread 的示例代码。这是一个降低新手入门学习门槛的软件包,里面从基础、内核、文件系统、网络以及驱动这几个方面,由浅入深,逐个引导大家去上手使用 RT-Thread 。不仅有详细代码及注释,还有完善的文档。把这个软件包都学会,就算已经入 RT-Thread 的门了;

hello:这是一个软件包的模板,如果想要制作软件包,需要可以借鉴它。

5、软件包的未来

从去年 9 月 RT-Thread 3.0 发布至今,RT-Thread 官方团队和我们开发者在半年多的时间里积累下来 40 多个软件包足以说明的 RT-Thread 软件生态的强大。当然我们并没有满足于此,未来已经有更多的、更高质量的软件包在我们开放计划中了,例如:

AT 命令库:同时支持 AT 服务器及客户端,提供 CLI 命令行交互调试模式,自动检测参数格式等等实用功能。已经进入发布倒计时;

低功耗框架:超低功耗设计、系统自动休眠,动态调频调压,应用不需要关心低功耗状态;

软件包的积累将会是一个量变到质变过程,能够汇集到更多大家常用的软件组件。真正做到,底层使用 RT-Thread 操作系统,上层使用搭积木方式开发应用。

当然,距离这个目标还是有一定的距离。RT-Thread 作为国内最为活跃嵌入式开源社区,深刻体会到了开放的心态所能产生的价值。期待更多的人来使用、反馈甚至是创建自己的软件包。换个角度去想,也许今天你的分享所产生的积累,未来可能会是你解决明天困难的“钥匙”。

最后,借用一句歌词:如果人人都贡献(包括反馈)软件包,嵌入式将变成美好的明天

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2900

    文章

    43954

    浏览量

    369748
  • 软件包
    +关注

    关注

    0

    文章

    99

    浏览量

    11562
  • RT-Thread
    +关注

    关注

    31

    文章

    1256

    浏览量

    39798

原文标题:RT-Thread 软件包介绍

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RT-Thread记录(十八、SHT21与24C02软件包

    本文学习测试一下几款典型设备的 RT-Thread I2C软件包
    的头像 发表于 07-08 11:07 3214次阅读
    <b class='flag-5'>RT-Thread</b>记录(十八、SHT21与24C02<b class='flag-5'>软件包</b>)

    RT-Thread Studio添加软件包报错怎么解决?

    RT-Thread Studio添加软件包报错ImportError: No module named psutil
    发表于 03-01 08:41

    RT-Thread OneNET软件包的功能特点是什么?

    有哪位大神能否介绍一下OneNET 平台 。 RT-Thread OneNET 软件包功能特点是什么?
    发表于 04-02 06:39

    介绍RT-Thread软件包

    学习要点介绍 RT-Thread软件包;简介 nRF24L01 软件包的使用,讲解如何使用此软件包将数据正确发送和接收;学习线程间的通信,IPC 的使用,即获取温度的线程 A 与无
    发表于 07-27 06:07

    使用menuconfig配置基于RT-Thread的NimBLE软件包

    controller 功能的选项,当其没有被定义时,NimBLE 软件包中蓝牙 controller 部分功能则会被屏蔽失效。还有一些宏可以用于定义运行参数,例如栈大小、线程优先级等,关于
    发表于 06-27 11:18

    使用RT-Thread Studio开发CH32V307实现按键软件包使用

    使用上篇帖子创建的工程,使用RT-Thread Studio软件包添加工具,快速实现MultiButton的使用在RT-Thread Studio工程内打开RT-Thread Sett
    发表于 04-15 21:16

    RT-Thread 软件包介绍

    。所以,想要成为高级程序员就快来使用、创造软件包吧~软件包定义RT-Thread 软件包:运行于 RT
    发表于 05-21 19:38 5512次阅读

    RT-Thread社区上有哪些优秀的软件包

    SX12XX 软件包是基于 semtech 官网 Firmware Drivers V2.1.0代码库的移植实现,目前只支持 SX1278 LoRa设备。该软件包在原代码库功能的基础上,对接 RT-Thread SPI 设备驱动
    的头像 发表于 04-03 15:35 7572次阅读

    RT-Thread v4.1.0中FAL介绍

    在 V4.1.0 中,将 fal 软件包重新定义RT-Thread 内部组件。
    的头像 发表于 04-26 13:34 3716次阅读

    2022 RT-Thread全球技术大会:RT-Thread软件包

    RT-Thread在2022年上半年新增几十个软件包:rtt-rust、LuatOS、gui-guider-demo。
    的头像 发表于 05-27 14:12 1008次阅读
    2022 <b class='flag-5'>RT-Thread</b>全球技术大会:<b class='flag-5'>RT-Thread</b><b class='flag-5'>软件包</b>

    RT-Thread全球技术大会:恩智浦新增100+软件包

    RT-Thread全球技术大会:恩智浦新增100+软件包,支持了很多有用的功能。             审核编辑:彭静
    的头像 发表于 05-27 14:26 912次阅读
    <b class='flag-5'>RT-Thread</b>全球技术大会:恩智浦新增100+<b class='flag-5'>软件包</b>

    RT-Thread在线软件包改为本地软件包的方法

    RT-Thread软件包,使用时需要手动通过 ENV 工具 更新到 本地的 packages 目录,并且 packages 目录默认不参与 Git 工程管理,软件包多了,偶尔需要更改软件包
    的头像 发表于 08-11 15:02 1114次阅读
    <b class='flag-5'>RT-Thread</b>在线<b class='flag-5'>软件包</b>改为本地<b class='flag-5'>软件包</b>的方法

    RT-Thread使用cjson软件包发送64位长整型数据

    开发环境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的资源为0.2.2,rt-thread版本为4.1.1,cjson软件包使
    的头像 发表于 10-11 15:09 850次阅读
    <b class='flag-5'>RT-Thread</b>使用cjson<b class='flag-5'>软件包</b>发送64位长整型数据

    RT-Thread中Agile Modbus软件包的使用方法

    开发环境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的资源为0.2.2,Agile Modbus软件包版本为v1.1.2。工程使用上一篇
    的头像 发表于 10-11 15:37 2218次阅读
    <b class='flag-5'>RT-Thread</b>中Agile Modbus<b class='flag-5'>软件包</b>的使用方法

    RT-Thread中mymqtt软件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip协议栈的使用的工程基础上添加mymqtt软件包。 使能mqtt example和mqtt test,保存,等待下载更新软件包
    的头像 发表于 10-13 10:44 882次阅读
    <b class='flag-5'>RT-Thread</b>中mymqtt<b class='flag-5'>软件包</b>的使用方法