RT-Thread Env下载信息:软件大小为241MB

作者:二师兄的小弟八 时间:2021-10-19 10:23:18

RT-Thread Env下载信息:软件大小为241MB。软件语言:中文。软件分类:编程开发。运行环境:WinAll。

RT-Thread Env是一款专业能力很强的輔助软件,这款软件主要是对于于RT-Thread所打造出的。在RT-Thread Env电脑版本中,关键包含了配备器与包管理工具作用,主要是对核心及其部件的作用开展配备、随意剪裁、管理方法这些,让系统软件以积木游戏的方法开展搭建,十分方便快捷。

RT-Thread Env免费完整版是将机器设备端与云空间开展了一体化的设计方案,轻轻松松连接各种流行的物联网设备云服务平台,例如Thingworx 8 IoT、 Microsoft Azure这些,拥有 十分强劲的兼容模式。

RT-Thread Env

RT-Thread Env使用方法

配置和裁剪 RT-Thread

每个 BSP 下的工程都有默认的配置,比如系统内核支持的最大线程优先级、系统时钟频率、使用的设备驱动、控制台使用的串口等。RT-Thread 操作系统具有高度的可裁剪性,用户可以根据自己的需求使用 Env 工具进行配置和裁剪。

在 BSP 目录下打开 Env,然后在使用 menuconfig 命令打开配置界面。

Env 命令行界面

menuconfig 常用快捷键

menuconfig 配置界面

使能在线软件包

下图使能了 mqtt 相关的软件包。

使能 MQTT 软件包

生成工程

选择软件包后需要使用 pkgs --update 命令下载软件包,然后使用scons --target=mdk5 命令或者 scons --target=iar 命令生成 MDK 或者 IAR 工程。如果大家直接修改 MDK 工程文件 project.uvprojx 或者 IAR 的工程文件 project.ewww 添加了自己的代码,或者修改了工程的一些基本配置,生成的新工程会覆盖之前对工程文件 project 的修改。

下载软件包并更新工程

打开新生成的 MDK 工程 project.uvprojx ,可以看到我们选择的 paho mqtt 相关的软件包源文件已经被添加到了工程中。工程对应的芯片型号也是前文基于工程模板选择的芯片型号。

新文件已经添加到工程

验证工程

编译工程,生成目标代码,然后就可以下载至开发板运行。本文使用终端软件 PuTTY 接收工程控制台对应串口 2 发送的数据,电脑右键→属性→设备管理器→端口(COM 和 LPT),即可查看串口对应的 COM 号,本文为 COM14。打开 PuTTY 按照下图配置,波特率一般配置为 115200。

PuTTY 配置

点击 open 打开,重启开发板后会看到 RT-Thread 的启动 logo 信息。

RT-Thread 的启动 logo 信息

添加文件到工程

BSP 下的 applications 文件夹用于存放用户自己的应用代码,目前只有一个 main.c 文件。如果用户的应用代码不是很多,建议相关源文件都放在这个文件夹下面,本文在 applications 文件夹下新增了 2 个简单的文件 hello.c 和 hello.h。

/* file: hello.h */

#ifndef _HELLO_H_

#define _HELLO_H_

int hello_world(void);

#endif /* _HELLO_H_ */

/* file: hello.c */

#include <stdio.h>

#include <finsh.h>

#include <rtthread.h>

int hello_world(void)

{

rt_kprintf("Hello, world!n");

return 0;

}

MSH_CMD_EXPORT(hello_world, Hello world!)

那么用户如何加入自己的应用程序的初始化代码呢?RT-Thread 将 main 函数作为了用户代码入口,只需要在 main 函数里添加自己的代码即可。

#include <rtthread.h>

#include <board.h>

#include "hello.h"

int main(void)

{

/* user app entry */

hello_world();

return 0;

}

RT-Thread 还支持 finsh,提供一套供用户在命令行的操作接口,通过使用宏 MSH_CMD_EXPORT() 就可以新增一个自己命令,并可以在命令行端启动自己的应用代码。

注意事项

applications 文件夹下新增的 2 个文件需要使用 scons --target=xxx 命令生成新的工程,才会添加到工程项目中。每次新增文件都要重新生成工程。

下图为应用程序 hello_world() 的两种调用结果。

hello-world

applications 文件夹下新增的文件是怎么样添加到工程中的呢?每个 BSP 的 applications 文件夹里都有一个 SConscript 文件,这些文件的功能都相似。RT-Thread 使用 SCons 构建系统,SCons 使用 SConscript 和 SConstruct 文件来组织源码结构。通常来说一个项目只有一个 SConstruct,但是会有多个 SConscript 。一般情况下,每个存放有源代码的子目录下都会放置一个 SConscript。

SConscript 文件是使用 Python 语言编写,stm32f4xx-HAL BSP 里面的 applications 文件夹里的 SConscript 文件的内容如下所示,# 号后面内容为注释。

Import('RTT_ROOT')

Import('rtconfig')

from building import *

# str(Dir('#') 表示获取工程的 SConstruct 所在的目录, 也就是 D:repositoryrt-threadbspstm32f4xx-HAL

# os.path.join() 表示将 `str(Dir('#')` 表示的目录和 applications 一起拼接成一个完整目录。

# 也就是获得当前目录 `D:repositoryrt-threadbspstm32f4xx-HALapplications`

cwd     = os.path.join(str(Dir('#')), 'applications')

# 获取当前目录下所有的 C 文件

src = Glob('*.c')

# 将当前目录和 SConstruct 所在的目录保存到 list 变量 CPPPATH 中

CPPPATH = [cwd, str(Dir('#'))]

# 将 src 包含的源文件创建为 Applications 组。depend 为空表示该组不依赖 rtconfig.h 中的任何宏。

# CPPPATH = CPPPATH 表示将右边 CPPPATH 变量包含的目录添加到系统的头文件路径中,左边的 CPPPATH 表示头文件路径。

# 这个 Applications 组也就对应 MDK 或者 IAR 工程里面的 Applications 分组。

group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)

Return('group')

通过这个 SConscript 文件,applications 目录下的所有源文件和相关头文件目录就添加到了工程中,而不需要用户手动添加。

添加模块到工程

前文提到在自己源代码文件不多的情况下,建议所有源代码文件都放在 applications 文件夹里面。如果用户源代码很多了,并且想创建自己的工程模块,或者需要使用自己获取的其他模块,怎么做会比较合适呢?前文对 applications 文件夹里的 SConscript 文件做了简单介绍,这一小节将简单演示怎么实现自己的 SConscript 文件来管理工程文件。

添加源代码

同样以上文提到的 hello.c 和 hello.h 为例,需要把他们作为一个单独的模块管理,并且在 MDK 或者 IAR 的工程文件里有自己的分组,且可以通过 menuconfig 选择是否使用这个模块。在 BSP 下新增 hello 文件夹。

新增 hello 模块

编写 SConscript 文件

大家注意到文件夹里多了一个 SConscript 文件,如果想要将自己的一些源代码加入到 SCons 编译环境中,一般可以创建或修改已有 SConscript 文件。SConscript 文件可以控制源码文件的加入,并且可以指定文件的 Group(与 MDK/IAR 等 IDE 中的 Group 的概念类似)。对于这个新增的 hello 模块 SConscript 文件内容如下,# 号后面的内容为注释。

# -*- coding: UTF-8 -*-             # 指定文件的编码格式是 UTF-8,文件可以用中文

Import('RTT_ROOT')

Import('rtconfig')

from building import *

cwd          = GetCurrentDir()      # 将当前路径赋值给字符串 cwd

include_path = [cwd]                # 将当前头文件路径保存到 list 变量 include_path 中

src          = []                   # 定义一个 list 变量 src

if GetDepend(['RT_USING_HELLO']):   # hello.c 依赖宏 RT_USING_HELLO

src += ['hello.c']              # 保存 hello.c 字符串到 list 变量 src 中

# 将 src 包含的源文件创建为 hello 组。depend 为空表示该组不依赖 rtconfig.h 的任何宏。

# CPPPATH = include_path 表示将当前目录添加到系统的头文件路径中

group = DefineGroup('hello', src, depend = [''], CPPPATH = include_path)

Return('group')

通过上面几行简单的 python 代码就创建了一个新的 hello 分组,并且可以通过宏定义控制要加入到组里面的源文件。关于 SCons 的更多使用可以参考 Scons 官方文档 或者参考 RT-Thread 提供的 [Scons 构建工具手册][Scons 构建工具手册]。

增加 menuconfig 菜单

那么自定义宏 RT_USING_HELLO 又是通过怎样的方式定义呢?这里要介绍一个新的文件 Kconfig 。Kconfig 用来配置内核,menuconfig 命令通过读取工程的各个 Kconfig 文件,生成配置界面供用户配置内核 ,最后所有配置相关的宏定义都会自动保存到 BSP 目录里的 rtconfig.h 文件中,每一个 BSP 都有一个 rtconfig.h 文件,也就是这个 BSP 的配置信息。

在潘多拉 stm32l475-atk-pandora BSP 目录下已经有了关于这个 BSP 的 Kconfig 文件,如果用户的 BSP 没有则可以自己新建一个。我们可以基于这个文件添加自己需要的配置选项。关于 hello 模块添加了如下配置选项,# 号后面为注释。

新增 hello 模块配置信息

使用 Env 工具进入 stm32l475-atk-pandora BSP 目录后,使用 menuconfig 命令在主页面最下面就可以看到新增的 hello 模块的配置菜单,进入菜单后如下图显示。

新增 hello 模块配置菜单

我们还可以修改 hello value 的值。

新增 hello 模块配置菜单

保存配置后退出配置界面,打开 stm32l475-atk-pandora BSP 目录下的 rtconfig.h 文件可以看到 hello 模块的配置信息已经有了。

新增 hello 模块配置信息

注意事项

每次 menuconfig 配置完成后要使用 scons --target=XXX 生成新工程。

生成新工程

打开新生成的 MDK5 工程文件 project.uvprojx 后可以看到新增一个 hello 分组,以及此分组下包含的 hello.c 文件。

使用方法

RT-Thread Env特色

面向物联网设备

设备端和云端一体化设计,轻松接入各类主流物联网设备云平台。

跨芯片平台

支持所有主流微控制器,

解决设备碎片化问题。

实时操作系统内核

完全自主开发,硬实时,

精致,高效,高度可定制。

云端一体化

设备端和云端一体化设计,

轻松接入各类主流物联网设备云平台。

超低功耗设计

最大限度的降低系统功耗,针对

不同应用场景,采用自动功耗控制策略。

快速启动

上电即启动,毫秒级启动时间,

真正零等待开机。

安全性设计

层次化的系统安全架构,提供

各类安全机制,保障应用和系统安全。

智能AI引擎

集成音频,图像相关的各类算法和

智能引擎。

开放平台

独立第三方开放平台,支持各类,

第三方软件包和SDK,扩展系统功能。

软件特色

资源下载地址

主线路:快速下载


RT-Thread Env相关游戏
随便看看

新闻 攻略 问答 教程 公告