全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

在Ubuntu上开发基于先楫MCU的RT-Thread应用指南

时间:2025-08-29 12:22

人气:

作者:admin

标签: RT-Thread  Ubuntu  mcu 

导读:1、前言RT-ThreadEnv是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menuconfig提供了简单易用的配置剪...

1、前言

RT-Thread EnvRT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境图形化系统配置软件包管理功能。其内置的menuconfig提供了简单易用的配置剪裁工具,可对内核组件软件包进行自由裁剪,使系统以搭积木的方式进行构建。

先楫新发布的RT-Thread BSP v1.10也支持通过RT-Thread Env来方便的图形化的配置和裁剪应用、完成编译、生成cmake工程和Segger Embedded Studio工程等操作。

本文从介绍基于UbuntuRT-Thread开发环境的搭建开始,结合先楫RT-Thread BSP v1.10的新特性,介绍利用RT-Thread Env如何使用如下工具链来开发RT-Thread应用。

gcc

zcc

Segger Embedded Studio


2、准备开发环境

按照https://gitee.com/RT-Thread-Mirror/env提供的步骤依次安装开发环境。


2.1 安装RT-Thread Env环境


注意:以下配置环境变量的示例针对的是不熟悉Ubuntu的新手用户,对于熟悉Linux环境变量配置的朋友,可按照自己的习惯来配置,实现同样的效果即可。


1、下载并安装

wget https://gitee.com/RT-Thread-Mirror/env/raw/master/install_ubuntu.shchmod777install_ubuntu.sh./install_ubuntu.sh--gitee

rm install_ubuntu.sh


2、准备环境

在 ~/.bashrc 的最后一行追加

source ~/.env/env.sh


3、注意事项

版本匹配要求:

先楫RT-Thread BSP v1.10是基于RT-Threadv5.0.2开发的,必须使用RT-Thread Env v1.5.2来开发。

环境配置问题解决方案:


当遇到 scons --menuconfig 命令异常时,请按以下步骤处理:

· 检查是否安装了冲突的kconfiglib

pip list | grep kconfiglib

· 如果已安装(显示版本信息),则执行卸载

pip uninstall kconfiglib


2.1 安装工具链

以下三个工具链,可根据个人的喜好来安装

1、安装gcc工具链

从如下链接下载gcc工具链:
https://github.com/hpmicro/riscv-gnu-toolchain/releases/download/2022.05.15/riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz

https://gitee.com/hpmicro/riscv-gnu-toolchain/releases/download/2022.05.15/riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz

解压到指定的目录,如opt/riscv32-unknown-elf-newlib-multilib

添加环境变量

在 ~/.bashrc 的最后一行追加RTT_RISCV_TOOLCHAIN
此处假定工具链被安装/解压到/opt/riscv32-unknown-elf-newlib-multilib

exportRTT_RISCV_TOOLCHAIN=/opt/riscv32-unknown-elf-newlib-multilib/bin


2、安装zcc工具链

从兆松科技的官网的如下链接下载zcc 4.0.0zcc 4.1.1及以上版本的工具链
https://www.terapines.com/download/zcc

安装到指定目录。
以当前版本ZCC-Installer为例,按如下方式来安装。

chmod777ZCC-Installer

sudo ./ZCC-Installer

在弹出的窗口中点击Install,在新界面中选择安装的路径,本文使用默认路径/opt/Terapines/ZCC/4.0.0,继续点击Install,等待安装完成并关闭安装窗口。

添加到环境变量

在 ~/.bashrc 的最后一行追加ZCC_TOOLCHAIN_PATH

exportZCC_TOOLCHAIN_PATH=/opt/Terapines/ZCC/4.0.0/bin


3、安装Segger Embedded Studio

从Segger官方网点如下链接下载Segger Embedded StudioLinux版本。

解压并安装。
以8.24版本为例,解压到segger_embedded_studio_v824_linux_x64,通过命令行进入该文件夹,并通过如下命令安装:

cd segger_embedded_studio_v824_linux_x64

sudo ./install_segger_embedded_studio

按默认路径安装到/opt/SEGGER/segger_embedded_studio_8.24

设置环境变量
在 ~/.bashrc 的最后一行追加SEGGER_TOOLCHAIN_PATH

export SEGGER_TOOLCHAIN_PATH=/opt/SEGGER/segger_embedded_studio_8.24/bin

按如下链接申请License(非商用可跳过这一步)
https://license.segger.com/hpmicro.cgi


4、安装 OpenOCD

从如下链接下载OpenOCD,并解压到指定目录,如/opt/hpm-openocd
https://github.com/hpmicro/riscv-openocd/releases/download/hpm_xpi_v0.3.0/openocd-linux.tar.gz-设置环境变量在 ~/.bashrc 的最后一行追加:

export PATH=$PATH:/opt/hpm-openocd/bin

对于熟悉openocd编译的用户,也可自行基于https://github.com/hpmicro/riscv-openocd仓库的taghpm_xpi_v0.3.0
完成克隆和编译安装,在此不作展开。


5、安装 JLink 和 Ozone

该步骤为可选操作, 若手上没有JLink硬件,可跳过。

从如下链接下载JLinkOzone安装包并安装
https://www.segger.com/downloads/jlink/


3、项目开发流程

基于先楫的RT-Thread BSP包,典型的开发模式如下所示:

准备工作

下载相近开发板的BSP包

导出相近例程

工程的配置

使用RT-Thread Env完成工程相应的配置

scons的语法管理新添加的代码

指定编译器、ARCH、ABI等信息

工程生成、编译和调试

使用scons编译,或者生成对应的cmakeSegger Embedded Studio工程

使用openocd+gdb调试,或使用ozone+jlink调试


3.1 准备工作

第一步: 下载 先楫BSP 包

用户朋友可通过如下链接分别下载先楫官方开发板的BSP包。

开发板

仓库链接

hpm6750evkmini

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm6750evkmini/archive/v1.10.0.zip

hpm6750evk2

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm6750evk2/archive/v1.10.0.zip

hpm6300evk

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm6300evk/archive/v1.10.0.zip

hpm6200evk

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm6200evk/archive/v1.10.0.zip

hpm5300evk

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm5300evk/archive/v1.10.0.zip

hpm5301evklite

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm5301evklite/archive/v1.10.0.zip

hpm6800evk

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm6800evk/archive/v1.10.0.zip

hpm6e00evk

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm6e00evk/archive/v1.10.0.zip

hpm6p00evk

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm6p00evk/archive/v1.10.0.zip

hpm5e00evk

http://git-mirror.rt-thread.com:12236/hpmicro/rtt-bsp-hpm5e00evk/archive/v1.10.0.zip


第二步:导出例程

解压下载的BSP包,在包的根目录,先楫提供了bsp_utils.py脚本,该脚本的简要用法如下:

python bsp_utils.py -l查看BSP包支持的例程列表
python bsp_utils.py -e -p= -o=来导出指定的例程。若project_name的值为all,则导出所有支持的例程。

我们以blink_led例程为例,假定当前用户的目录为/home/builder/,可通过如下命令导出该例程。

python ./bsp_utils.py -e -p=blink_led -o=/home/builder

执行完该操作后,可在/home/builder/blink_led目录下找到该例程。


3.2 配置工程

第一步: 基于 RT-Thread Env 配置工程

1、通过menuconfig配置工程
基于上述教程,以blink_led例程为例,通过命令行进入/home/builder/blink_led目录。

通过scons --menuconfig打开kconfig相关的配置,完成如下操作:

板级配置

内核配置

组件配置

在线包配置

其他用户添加的配置等

操作示例如下图所示:

b821b312-848f-11f0-9080-92fbcf53809c.png

该操作和基于RT-Thread Studio中的图形化操作很类似。

关于kconfig相关的背景知识,请自行通过deepseek或者搜索引擎检索。

关于 RT-Thread Env 的详细用法,请参考如下链接:

https://github.com/RT-Thread/rt-thread/blob/master/documentation/env/env.md#bsp-configuration-menuconfig

https://www.rt-thread.org/document/site/#/development-tools/env/env

2、通过scons脚本组织工程

详见

https://www.rt-thread.org/document/site/#/development-tools/build-config-system/SCons


第二步:按需更改工具链参数

1、配置RV_ARCHRV_ABI(不适用于Segger Embedded Studio工程)

用户可在工程目录下的命令行执行如下操作完成ABI的配置,若无该操作,默认值为RV_ABI=ilp32

exportRV_ABI=

用户可在工程目录下的命令行执行如下操作完成ARCH的配置,若无该操作,默认值为RV_ARCH=rv32imac

exportRV_ARCH=

支持的RV_ARCH和RV_ABI的组合有:

rv32imac + ilp32

rv32imafc + ilp32f

rv32gc + ilp32d


2、配置 RTT_BUILD_TYPE(不适用于Segger Embedded Studio工程)

用户可通过如下操作完成RTT_BUILD_TYPE的配置,若无该操作,默认值为flash_debug。

exportRTT_BUILD_TYPE=

通常支持的RTT_BUILD_TYPE选项为:

ram_debug

ram_release

flash_debug

flash_relase

flash_hybrid_debug (仅限HPM5E00系列)

flash_hybrid_release (仅限HPM5E00系列)

详细支持的选项可从rtconfig.py中查询。


3、切换工具链
用户可以工程目录下使用如下操作完成工具链的切换,或无该操作,默认工具链为gcc

exportRTT_TOOLCHAIN_PLATFORM=

其中,platform支持的选项为:

gcc

zcc

segger


3.3第三步:生成、编译和调试工程

使用scons脚本,用户可以直接在命令行完成编译等高级功能。

1、使用scons直接编译生成可执行文件

scons-jN

其中:N代表线程数。

对于各位命令行大神,可以使用openocd+riscv32-unknown-elf-gdb实现基于命令行的调试。
手握JLink的玩家,也可使用JLink+Ozone来调试。


2、生成cmake 工程

当使用gcczcc工具链时,可通过如下命令生成cmake工程。

scons --target=cmake

之后,大家可使用自己熟悉的支持cmake的IDE(如vscode, CLion等) 来打开cmake工程完成后续的开发和调试。

注意:
在该模式下,如果需要重新更改RT-Thread相关的配置,可能需要反复执行如下操作:

scons--menuconfig

scons--target=cmake


3、生成Segger Embedded Studio工程

当使用segger工具链时,可通过如下命令生成Segger Embedded Studio工程。

exportRTT_TOOLCHAIN_PLATFORM=segger # Ensure this system variable is correct

scons --target=ses

注意:在该模式下,如果需要重新更改RT-Thread相关的配置,可能需要反复执行如下操作:

scons--menuconfig

scons--target=cmake

在生成工程后,可使用如下命令打开工程

xdg-open project.emProject

b82e50c2-848f-11f0-9080-92fbcf53809c.png

注:默认生成的project.emProject中的RISC-V ISARISC-V ABI的组合为rv32imacilp32,如下图所示。用户可根据需要自己调整为相应的配置。

b83e210a-848f-11f0-9080-92fbcf53809c.png

之后,可通过Segger Embedded Studio实现开发和调试。调试的体验和使用hpm_sdk一致。


4、典型示例

4.1 使用rv32imac+ilp32+gcc基于scons完成代码的编译

按如下示例脚本所示:

exportRTT_TOOLCHAIN_PLATFORM=gcc

exportRV_ARCH=rv32imac

exportRV_ABI=ilp32

scons-j16


4.2 使用 rv32gc+ilp32d + gcc基于scons完成cmake工程的生成

按如下示例脚本所示:

exportRTT_TOOLCHAIN_PLATFORM=gcc

exportRV_ARCH=rv32gc

exportRV_ABI=ilp32d

scons --target=cmake


4.3 使用 rv32imafc+ilp32f + zcc基于scons完成代码的编译

按如下示例脚本所示:

exportRTT_TOOLCHAIN_PLATFORM=zcc

exportRV_ARCH=rv32imafc

exportRV_ABI=ilp32f

scons-j16


4.4 使用 rv32gc+ilp32d + zcc基于scons完成cmake工程的生成

按如下示例脚本所示:

exportRTT_TOOLCHAIN_PLATFORM=zcc

exportRV_ARCH=rv32gc

exportRV_ABI=ilp32d

scons --target=cmake


4、小结

本文提供了在Ubuntu上开发基于先楫MCU的RT-Thread应用的简要流程,实际体验下来,整个过程和体验还是简单和直观的。大家如果在使用过程中有任何疑问和建议,欢迎在公众号下留言,或者在相应的github仓库提issue。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信