【正点原子STM32探索者】体验RT-Thread最新5.x版本
- 一、准备RT-Thread Env工具
- 二、创建RT-Thread项目
- 2.1 下载RT-Thread源码
- 2.2 生成RT-Thread项目
- 三、编译和运行RT-Thread项目
- 3.1 编译RT-Thread项目
- 3.2 下载程序到开发板
- 3.3 运行RT-Thread项目
- 四、体验RT-Thread的交互式shell
- 五、参考链接
本位将介绍如何在正点原子STM32探索者V3开发板上运行RT-Thread 5.0.0版本,并体验交互式shell命令行操作。本文介绍的方法,同样适用于体验rt-thread最新开发版本,即github主线(master)分支版本。对于想要体验RT-Thread最新版本,或者想要参与RT-Thread开源贡献的朋友,本文值得你的阅读。
一、准备RT-Thread Env工具
RT-Thread Env工具可以用于创建RT-Thread项目,并且支持生成Keil项目文件(也支持生成RT-Thread Studio项目)。本篇将继续使用Keil作为集成开发环境,继续使用JLink作为硬件调试器。
RT-Thread Env工具下载链接:https://www.rt-thread.org/download.html#download-rt-thread-studio
下载下来是一个压缩包,加压后,运行里面的 env.bat,会打开env命令行窗口。
RT-Thread官方提供了《Env 用户手册》:https://www.rt-thread.org/document/site/#/development-tools/env/env
详细使用细节可以查阅官方手册,本文后续仅介绍这次实验用到的功能。
二、创建RT-Thread项目
2.1 下载RT-Thread源码
首先,使用git命令下载rt-thread最新版本(国内推荐从gitee下载,速度更快):
下载完成后,可以使用git tag --list
查看所有TAG:
使用git checkout v5.0.0
,切换到5.0.0发布的tag点:
到这里,我们已经成功下载最新代码,并将代码版本切换为RT-Thread 5.0.0发布版本了。
2.2 生成RT-Thread项目
在Env命令行窗口中,首先跳转到刚刚的rt-thread源码目录,在跳转到bsp/stm32/stm32f407-atk-explorer
子目录:
然后,使用命令如下即可创建基于Keil的RT-Thread项目:
scons --dist --target=mdk --project-name=rtt_sh --project-path=PATH_YOU_WANT
PS:这里的PATH_YOU_WANT
可以替换成你需要的路径;
例如,我这里创建RT-Thread项目的路径是D:\Hardware\ST\ExplorerV3_STM32F407\Elecfans_02\rtt_sh
:
这里创建出来的项目是根据rt-thread bsp目录下的项目模板生成的。
生成的目录内,顶层文件目录如下:
其中,rtt_sh.uvprojx
文件即为Keil项目文件。
三、编译和运行RT-Thread项目
直接双击打开rtt_sh.uvprojx
文件,默认将会启动Keil,并打开该Keil项目,如下图所示:
3.1 编译RT-Thread项目
由于我安装的是Keil 5.37,需要先切换默认便器才可以正常编译通过。
切换默认编译器,具体操作为:
-
鼠标右击Project视图中的rt-thread目录,选择“Options for Target - rt-thread”,弹出菜单,如下图所示:
-
在弹出的Options for Target - rt-thread界面中,下拉ARM Compiler,选择Use default compiler version 6,即使用默认的版本6编译器;
-
点击底部的OK,确认。
修改完默认编译器后,点击编译图标(或者按快捷键F7进行编译),将会开始编译:
编译完成后,Build Output将会看到Program Size信息:
3.2 下载程序到开发板
开始下载之前,我们需要检查开发板和PC之间的连接:
- JTAG调试器,一端插在PC的USB口上,另一端插在开发板JTAG口上,用于下载程序和断点调试;
- USB数据线,一端插在PC的USB口上,另一端插在开发板的USB-UART口上,用于串口输入输出;
由于我使用的是JLink调试器,因此还需要修改项目的调试器设置(Keil项目默认的调试器设置是ULINK)。
修改Keil项目的调试设置,具体操作如下(这里以JLink为例):
-
鼠标右击Project视图中的rt-thread目录,选择“Options for Target - rt-thread”,弹出菜单,如下图所示:
-
在弹出的Options for Target - rt-thread界面中,切换到Debug标签页面,如下图所示:
-
Use右边的下拉,选择J-LINK/J-TRACE Cortex,然后点击右侧的Settings,弹出Cortex JLink/JTrace Target Driver Setup界面,如下图所示:
这里,我修改了Port为SW,代表使用SWD接口(JTAG也可以),Max表示最大时钟信号频率,修改为50M下载速度更快。
看到成功识别了 ARM CoreSight JTAG-DP,说明JLINK调试器已经成功识别到主控芯片了。
-
切换到Flash Download标签页,勾选Reset and Run,便于调试,如下图所示:
-
最后点击确定,回到Options for Target - Blinky界面,点击OK,保存设置;
完成上述修改后,就可以进行下载了。
点击Keil中的下载按钮,或者F8快捷键,将会开始下载,如下图:
下载完成后,Build Output窗口中可以看到下载耗时信息:
3.3 运行RT-Thread项目
由于我们为调试器设置了 Reset and run 选项,下载完成后会自动复位开发板 运行程序。
所以如果一切正常的话,下载完成后,将可以看到开发板上的红色LED灯闪烁。
因为默认的main.c程序代码为:
main.c代码中,
- 首先,使用rt_pin_mode设置PF9引脚为输出;
- 然后,循环使用rt_pin_write改变PF9引脚高低电平,再并延时500毫秒;
四、体验RT-Thread的交互式shell
RT-Thread系统提供了交互式shell,实际开发过程中,非常方便进行多种功能的调试和测试(PS:可以将每个功能的测试实现为一个命令,这样就可以通过命令测试不同功能了)。
开始体验RT-Thread的交互式shell之前,需要再次先检查USB数据线是否连接正确:
- 一端插在PC的USB口上,另一端插在开发板的USB-UART口上
然后,在设备管理器中找到串口设备编号:
接着,使用串口助手 sscom 或者 MobaXterm 连接到COM12设备,波特率设置为115200:
直接敲击回车,可以看到有提示符msh>
输出:
输入version
命令并回车,可以看到输出的版号为5.0.0
:
输入help
命令并回车,可以看到支持哪些命令:
输入ps
命令并回车,可以看到当前正在运行的任务有哪些:
另外,可以看到5.0版本的list
命令用法和4.x版本不一样了:
4.x版本是list_thread
、list_timer
之类的命令,5.0都改成了list
的子命令。
list thread
命令和ps
等同:
五、参考链接
- RT-Thread Env工具下载: https://www.rt-thread.org/download.html#download-rt-thread-studio
- RT-Thread Env 用户手册: https://www.rt-thread.org/document/site/#/development-tools/env/env
- RT-Thread 5.0.0 发布声明: https://mp.weixin.qq.com/s/x9Sb3hc_GxV5VYfagGKhcA