开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用

2024-06-08


本期开发者:朱彦祖

RT-Thread 资深工程师,HPM6700/6400元老级开发者及骨灰级用户,先辑生态社区常驻优秀开发者,江湖人称杭州吴彦祖。


背景

最近在使用先辑HPM6750开发一款运动控制器,搭载

RT-Thread

实时操作系统,使用RT-Thread Studio进行开发。

RT-Thread

是一个伟大的操作系统,但是,

RT-Thread

Studio使用起来还是有些许不方便的地方。

这时候,如果找到一个更好用的能够用来开发

RT-Thread

的IDE就好了,想到

RT-Thread

的scons命令能够将当前的

RT-Thread

项目生成其他IDE对应的工程。例如,在有模板文件的前提下,scons—target=mdk5可以生成keil工程,scons—target=ses可以生成segger工程


开发方法


这里,我们生成RT-Thread的cmake工程,并使用JetBrains的CLion编译器进行开发。下面讲解一下具体的步骤:



1、安装RT-Thread Studio、CLion。按照如下官方教程下载sdk包。



迈向应用 | 先楫 RT-Thread BSP v1.4.0 正式发布


2、 配置环境变量

下一步开始配置环境变量HPM_SDK_BASE和GNURISCV_TOOLCHAIN_PATH,前者为SDK的根目录路径,后者为toolchain的根目录路径。我这里SDK用的是1.4版本,工具链为rv32imac-ilp32-multilib-win。

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第1张


3、创建一个新工程

使用

RT-Thread

Studio新建项目:

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第2张

BSP用最新的即可,我这里用的是1.5.0。调试器、接口选项默认就可以,因为我们后续并不会用

RT-Thread

Studio进行调试。

工程建立好之后,我们点击小锤子编译,编译成功就可以往下继续了,如果你使用的也是

RT-Thread

5.0.2并且编译报错,可以点击RT-Thread Settings,勾选上旧版本兼容性支持:

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第3张

重新编译,不出意外应该到这里编译都能通过。


4、生成CMake工程

右键工程,点击“打开env终端”

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第4张

输入命令:scons –target=cmake

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第5张

执行完命令后,刷新一下工程,可以发现工程根目录下面多了一个CmakeLists.txt,说明CMake工程已经生成成功了。


5、CLion配置工程

使用CLion打开工程根目录,会弹出CMake配置提示(如果没有提示,点击右上角设置 > Settings > Build,Execution,Deployment > CMake进行配置):

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第6张

这里默认为Toolchain为gcc,Generator为Ninja,我们直接点击右下角OK即可,如果你这里Generator为unix或者其他,需要配置为Ninja。

进入工程界面之后,点击右上角设置 > settings > Build,Execution > Deployment > Toolchains,新建一个system类型的工具链并命名为gcc,修改C/C++编译器和GDB的路径为先辑sdk中toolchain的可执行文件路径,我这里用的toolchain为SDK1.4的rv32imac-ilp32-multilib-win。

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第7张

点击ok,回到工程界面,我们可以看到上方已经有了
开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第8张
开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第9张
按钮。

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第10张

点击
开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第8张
进行编译。

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第12张


6、配置FPU和优化

打开工程根目录下的CMakeLists.txt文件,在CMAKE_C_FLAGS/MAKE_CXX_FLAGS/MAKE_ASM_FLAGS/MAKE_EXE_LINKER_FLAGS后面的标志中加入“-mabi=ilp32f -march=rv32imafc”:

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第13张

优化等级的修改直接修改标志中的”-Og”字段为你想要的优化等级,例如,改成”-O3”即可开启最大优化等级。


7、烧录运行

我这里用的是Jlink烧录调试。

我们点击上方
开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第8张
左边的rtthread.elf > Edit Configurations。点击左上角加号,点击Embeded GDB Server,按下图所示进行配置。Executable binary直接下拉选择rtthread.elf,GDB Server选择你自己的Jlink安装目录中的执行文件,GDB Server args根据自己的芯片名称和烧录接口修改,我这里设备是HPM6750xVMX,接口为jtag。

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第15张


配置成功后返回工程界面,按住上方小蜘蛛进行debug,CLion不会在main函数入口停一下,而是直接运行,打开串口发现如下信息,RT-Thread运行成功。

开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用 (https://ic.work/) 技术资料 第16张


至此,RT-Thread可以在CLion进行编译开发和烧录。


8、后续开发


RT-Thread

因其组件和软件包生态的丰富广受广大开发者的青睐,后续如果需要进行组件的配置以及软件包的移植,可以使用

RT-Thread

Studio中修改

RT-Thread

Settings进行相关配置,然后重新生成一下CMake工程,然后用CLion进行个人的开发。

文章推荐

相关推荐