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

2024-06-06
浏览量:
411

本期开发者:朱彦祖

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工程

本文内容参考一位前辈大佬关于CLion开发先辑SDK的推文,这里附上链接: 

在 CLion 中开发 HPM6000 系列单片机 - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/564229673

开发方法

这里,我们生成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。

3、创建一个新工程

使用RT-Thread Studio新建项目:

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

工程建立好之后,我们点击小锤子编译,编译成功就可以往下继续了,如果你使用的也是RT-Thread 5.0.2并且编译报错,可以点击RT-Thread Settings,勾选上旧版本兼容性支持:

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

4、生成CMake工程

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

输入命令:scons –target=cmake

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

5、CLion配置工程

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

这里默认为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。

点击ok,回到工程界面,我们可以看到上方已经有了按钮。

点击进行编译。

6、配置FPU和优化

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

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

7、烧录运行

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

我们点击上方左边的rtthread.elf > Edit Configurations。点击左上角加号,点击Embeded GDB Server,按下图所示进行配置。Executable binary直接下拉选择rtthread.elf,GDB Server选择你自己的Jlink安装目录中的执行文件,GDB Server args根据自己的芯片名称和烧录接口修改,我这里设备是HPM6750xVMX,接口为jtag。

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

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

使用openocd烧录可以参考如下链接进行配置:

在 CLion 中开发 HPM6000 系列单片机 - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/564229673

8、后续开发

RT-Thread因其组件和软件包生态的丰富广受广大开发者的青睐,后续如果需要进行组件的配置以及软件包的移植,可以使用RT-Thread Studio中修改RT-Thread Settings进行相关配置,然后重新生成一下CMake工程,然后用CLion进行个人的开发。

-END-



以上内容来自先楫开发者的原创分享。

我们始终相信开发者共创的力量。先楫社区坚持开源共享、互惠互利,贴近每一个开发者,一步一个脚印,一点一滴积累,为成为更好的我们而不断努力。


心之所向,锐意进取,星辰大海,恣意成长。


MCU生态建设需要您的贡献与支持!欢迎广大爱好者和开发者踊跃投稿,供稿请联系sha.li@hpmicro.com。