Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
RT-Thread
《玩转ART-Pi开发板》第2章 ART-Pi开发环境搭建 (Keil+env)
发布于 2021-03-14 06:23:34 浏览:1205
订阅该版
[tocm] **开发环境:** RT-Thread版本:4.0.3 操作系统:Windows10 Keil版本:V5.30 开发板MCU:STM32H750XB ## 2.1准备工作 在电脑上装好 git,软件包管理功能需要 git 的支持。git 的下载地址为 https://git-scm.com/downloads ,根据向导正确安装 git,并将 git 添加到系统环境变量。 注意在工作环境中,所有的路径都不可以有中文字符或者空格。 ### 2.1.1 Env工具安装 Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。 **主要特性:** > menuconfig 图形化配置界面,交互性好,操作逻辑强; 丰富的文字帮助说明,配置无需查阅文档; 使用灵活,自动处理依赖,功能开关彻底; 自动生成 rtconfig.h,无需手动修改; 使用 scons 工具生成工程,提供编译环境,操作简单; 提供多种软件包,模块化软件包耦合关联少,可维护性好; 软件包可在线下载,软件包持续集成,包可靠性高; Env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。从 RT-Thread 官网下载 Env 工具。 [Env 下载地址](https://www.rt-thread.org/page/download.html) 下载完成后,打开 Env 控制,RT-Thread 软件包环境主要以命令行控制台为主,同时以字符型界面来进行辅助,使得尽量减少修改配置文件的方式即可搭建好 RT-Thread 开发环境的方式。 打开 Env 控制台有两种方式: **方法一:点击 Env 目录下可执行文件** 进入 Env 目录,可以运行本目录下的 env.exe,如果打开失败可以尝试使用 env.bat。 ![DzklnK.png](https://s3.ax1x.com/2020/12/07/DzklnK.png) 打开env的界面如下: ![DzAcVO.png](https://s3.ax1x.com/2020/12/07/DzAcVO.png)
**方法二:在文件夹中通过右键菜单打开 Env 控制台** Env 目录下有一张 Add_Env_To_Right-click_Menu.png(添加 Env 至右键菜单.png) 的图片,如下: ![DzAXGj.png](https://s3.ax1x.com/2020/12/07/DzAXGj.png) 根据图片上的步骤操作,就可以在任意文件夹下通过右键菜单来启动 Env 控制台。效果如下: ![DzEpLV.png](https://s3.ax1x.com/2020/12/07/DzEpLV.png) 【注意】因为需要设置 Env 进程的环境变量,第一次启动可能会出现杀毒软件误报的情况,如果遇到了 杀毒软件误报 ,允许 Env 相关程序运行,然后将相关程序添加至白名单即可。 Env就安装好了,很简单。 ### 2.1.2下载源码 ART-Pi SDK源码在 https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi 地址,点击链接找到下图的位置,将其下载下来。 ![DzEVzR.png](https://s3.ax1x.com/2020/12/07/DzEVzR.png) 可以在线下载,也可使用Git下载 RT-Thread 源码,使用命令: ``` $git clone https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi.git ``` 下载源码,进入源码目录: ![DzEMdO.png](https://s3.ax1x.com/2020/12/07/DzEMdO.png) 下表是该目录的简单说明。 | 目录名 | 描述 | |:--|:--| | debug | QSPI FLASH 下载算法等 | |components| RT-Thread 的各个组件目录| |documents |一些说明文件,如电路图,文档,图片以及 datasheets 等| |libraries |STM32H7 固件库,通用外设驱动,rt_ota 固件库,wlan 固件库等| |projects |示例工程文件夹,包含出厂程序,网关程序等| |rt-thread |RT-Thread 内核的源文件| |tools |ART-Pi wifi 固件,BT 固件,rbl 打包工具等| |RealThread_STMH750-ART-Pi |描述 ART-Pi 的硬件信息| [附上gitee下载地址](https://gitee.com/RT-Thread-Studio-Mirror/sdk-bsp-stm32h750-realthread-artpi) ## 2.2使用ART-Pi编译和运行 RT-Thread 第一个例子还是使用点灯的实例。先看看笔者使用的开发板的LED硬件电路图。 ![DzENOP.png](https://s3.ax1x.com/2020/12/07/DzENOP.png) ### 2.2.1选择工程 这个例子是RT-Thread已经做好的,我们直接用就行。 ![DzEwTS.png](https://s3.ax1x.com/2020/12/07/DzEwTS.png) 值得注意的是,我们选择工程是应用程序。 项目框架主要目录及文件的说明如下表所示: |文件 / 目录 | 描述 | |:--|:--| | applications | 用户应用代码目录| |drivers 或 board |RT-Thread 提供的底层驱动/板级相关的移植| |Libraries |芯片官网下载的固件库| |rt-thread |RT-Thread 源代码| |Kconfig |menuconfig 使用的文件| |project.ewww |用户使用的 IAR 工程文件| |project.uvprojx |用户使用的 MDK 工程文件| |template. uvprojx |MDK 工程模板文件|| |SConscript |SCons 配置工具使用的文件| |SConstruct |SCons 配置工具使用的文件| |README.md |BSP 说明文件| |rtconfig.h |BSP 配置头文件| **注意:此命令从 RT-Thread 3.1.0 正式版才开始支持。** 下图为根据自己使用的调试工具设置对应的调试选项,相关配置修改完成后就可以关闭模板工程。笔者使用的是ST-Link。 ![DzEH61.png](https://s3.ax1x.com/2020/12/07/DzEH61.png) 【注意】源代码和头文件路径的添加不建议直接修改工程模板,后面会介绍使用 Scons 工具往工程添加源代码及头文件路径。 ### 2.2.2使用 menuconfig配置和裁剪 RT-Thread 每个 BSP 下的工程都有默认的配置,比如系统内核支持的最大线程优先级、系统时钟频率、使用的设备驱动、控制台使用的串口等。RT-Thread 操作系统具有高度的可裁剪性,用户可以根据自己的需求使用 Env 工具进行配置和裁剪。 在 BSP 目录下打开 Env,首先进入工程目录,如:sdk-bsp-stm32h750-realthread-artpi \projects\art_pi_blink_led,如图所示以管理员身份打开 PowerShell: ![DzEXTO.png](https://s3.ax1x.com/2020/12/07/DzEXTO.png) 依次输入如下三个命令: ``` #cmd #mklink /D rt-thread ..\..\rt-thread #mklink /D libraries ..\..\libraries ``` ![DzExte.png](https://s3.ax1x.com/2020/12/07/DzExte.png) 然后在使用 menuconfig 命令打开配置界面。menuconfig 常用快捷键如图所示: ![DzV91A.png](https://s3.ax1x.com/2020/12/07/DzV91A.png) 还可以使能在线软件包,如下图所示,使能了 mqtt 相关的软件包。 ![DzVKcn.png](https://s3.ax1x.com/2020/12/07/DzVKcn.png) ### 2.2.3生成MDK工程 选择软件包后需要使用 pkgs --update 命令下载软件包,然后使用scons --target=mdk5 命令或者 scons --target=iar 命令生成 MDK 或者 IAR 工程。 ``` #scons --target=mdk5 ``` 打开新生成的 MDK 工程 project.uvprojx ,可以看到我们选择的 paho mqtt 相关的软件包源文件已经被添加到了工程中。工程对应的芯片型号也是前文基于工程模板选择的芯片型号。 **【注1】**如果我们要使用 menuconfig 命令来配置,则需要检查 art_pi_blink_led 工程根目录下的 Kconfig 文件中的相关路径是否正确,否则会报错导致打不开配置面板。 **【注2】软件更新** **下载** :如果软件包在本地已被选中,但是未下载,此时输入:pkgs --update ,该软件包自动下载; **更新** :如果选中的软件包在服务器端有更新,并且版本号选择的是 latest 。此时输入: pkgs --update ,该软件包将会在本地进行更新; **删除** :某个软件包如果无需使用,需要先在 menuconfig 中取消其的选中状态,然后再执行: pkgs --update 。此时本地已下载但未被选中的软件包将会被删除。 **【注3】** 如果大家直接修改 MDK 工程文件 project.uvprojx 或者 IAR 的工程文件 project.ewww 添加了自己的代码,或者修改了工程的一些基本配置,生成的新工程会覆盖之前对工程文件 project 的修改。 ### 2.2.4编译 RT-Thread固件 接下来就是编译工程,生成目标代码。 Env 中携带了 Python & scons 环境,只需在相应bsp目录中运行 scons 命令即可使用默认的 ARM_GCC 工具链编译 bsp。输入 scons 命令编译工程: ![DzV1BV.png](https://s3.ax1x.com/2020/12/07/DzV1BV.png) 编译完成会有如下信息: ![DzVYh4.png](https://s3.ax1x.com/2020/12/07/DzVYh4.png) rtthread.bin就是生成的可执行文件。 ![DzVU39.md.png](https://s3.ax1x.com/2020/12/07/DzVU39.md.png) ==【注】Env工具支持Linux的基本指令。== 当然我们也可以使用keil或者IAR编译,前提是安装有KEIL或者IAR,笔者安装了KEIL,因此直接使用KEIL编译。 ![DzVBB6.png](https://s3.ax1x.com/2020/12/07/DzVBB6.png) 值得注意的是,我们在调试代码时,需要跟踪代码,在MDK 中需要设置 Browse Information 跟踪代码,设置好后记得重新编译,但是勾选后编译比较慢,请耐心等待一会。 ![DzVTUS.png](https://s3.ax1x.com/2020/12/07/DzVTUS.png) ### 2.2.5使用STM32CubeProgrammer烧写 RT-Thread固件 下面介绍STM32CubeProgrammer烧录固件到开发板的过程。 1.连接板子STlink,并将STlink连接到电脑。 2.打开STM32CubeProgrammer,默认配置即可。 ![DzVq3j.png](https://s3.ax1x.com/2020/12/07/DzVq3j.png) 如果连接正常会识别设备号,点击“connect”即可进行连接。 ![DzVvD0.png](https://s3.ax1x.com/2020/12/07/DzVvD0.png) 连接成功如下: ![DzZGrt.png](https://s3.ax1x.com/2020/12/07/DzZGrt.png) 打开一个bin或者hex文件,然后点击“download”。 ![DzZdPg.png](https://s3.ax1x.com/2020/12/07/DzZdPg.png) 等待下载完成即可。 ![DzZTqx.png](https://s3.ax1x.com/2020/12/07/DzZTqx.png) **【注】如果STlink版本过低,是无法使用的,可使用ST-LinkUpgrade进行固件升级。** ### 2.2.6实验现象 烧写成功后复位。即可看到D2亮灭。 接下来我们使用串口终端进行调试,本文使用终端软件 Xshell、PuTTY 等工具接收工程控制台对应串口发送的数据,电脑右键→属性→设备管理器→端口(COM 和 LPT),即可查看串口对应的 COM 号,本文为 COM4。打开 Xshell按照下图配置,波特率一般配置为 115200。 ![DzZXJe.png](https://s3.ax1x.com/2020/12/07/DzZXJe.png) ### 欢迎访问我的网站 [BruceOu的哔哩哔哩](https://space.bilibili.com/338944611) [BruceOu的主页](https://www.bruceou.cn/) [BruceOu的博客](https://blog.bruceou.cn/) [BruceOu的CSDN博客](https://blog.csdn.net/bruceoxl) [BruceOu的gitee](https://gitee.com/ouxiaolong/)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
BruceOu
这家伙很懒,什么也没写!
文章
27
回答
0
被采纳
0
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
CAN总线
Hardfault
FinSH
USB
文件系统
RT-Thread
DMA
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
WIZnet_W5500
ota在线升级
cubemx
I2C
flash
UART
packages_软件包
freemodbus
潘多拉开发板_Pandora
PWM
定时器
BSP
ADC
keil_MDK
socket
中断
编译报错
MicroPython
GD32
Debug
ulog
SDIO总线
msh
rt_mq_消息队列_msg_queue
C++_cpp
SFUD
本月问答贡献
xiaorui
20
个答案
3
次被采纳
Juggernaut
12
个答案
3
次被采纳
踩姑娘的小蘑菇
12
个答案
2
次被采纳
小小李sunny
10
个答案
2
次被采纳
crystal266
4
个答案
2
次被采纳
本月文章贡献
ZVML_9668
4
篇文章
6
次点赞
Lu_盼盼
4
篇文章
3
次点赞
Z_Y
3
篇文章
5
次点赞
ThinkCode
2
篇文章
2
次点赞
oxlm
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部