0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

先楫半导体HPMicro ? 2025-08-29 12:22 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18142

    浏览量

    372500
  • Ubuntu
    +关注

    关注

    5

    文章

    599

    浏览量

    31765
  • RT-Thread
    +关注

    关注

    32

    文章

    1453

    浏览量

    42443
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RT-Thread BSP v1.2.0的主要功能

    各位关注的小伙伴们, hpm_sdk v1.2.0发布一个多月后,基于该版本SDK的 RT-T
    发表于 08-14 11:13 ?701次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>RT-Thread</b> BSP v1.2.0的主要功能

    RT-Thread设备驱动开发指南基础篇—以bsp的hwtimer设备为例

    RT-Thread设备驱动开发指南》书籍是RT-thread官方出品撰写,系统讲解RT-thread IO设备驱动开发方法,从三方面进行讲解
    的头像 发表于 02-20 16:01 ?2806次阅读
    <b class='flag-5'>RT-Thread</b>设备驱动<b class='flag-5'>开发指南</b>基础篇—以<b class='flag-5'>先</b><b class='flag-5'>楫</b>bsp的hwtimer设备为例

    RT-Thread驱动开发指南进阶篇-动手驱动未适配的外设LCD

    经过上一篇的《《RT-Thread设备驱动开发指南》基础篇--以bsp的hwtimer设备为例》阐述,可以大致了解到RT-thread
    的头像 发表于 02-25 11:04 ?4282次阅读
    <b class='flag-5'>RT-Thread</b>驱动<b class='flag-5'>开发指南</b>进阶篇-动手驱动<b class='flag-5'>先</b><b class='flag-5'>楫</b>未适配的外设LCD

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

    本期开发者:朱彦祖RT-Thread资深工程师,HPM6700/6400元老级开发者及骨灰级用户,辑生态社区常驻优秀开发者,江湖人称杭州吴
    的头像 发表于 06-07 08:17 ?3958次阅读
    <b class='flag-5'>开发</b>者分享 | 基于<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>RT-Thread</b> BSP,使用CLion<b class='flag-5'>开发</b>应用

    RT-Thread编程指南

    RT-Thread编程指南——RT-Thread开发组(2015-03-31)。RT-Thread做为国内有较大影响力的开源实时操作系统,本
    发表于 11-26 16:06 ?0次下载

    RT-Thread全球技术大会:RT-Thread编写测试用例

    RT-Thread全球技术大会:RT-Thread编写测试用例 ? ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 16:28 ?1814次阅读
    <b class='flag-5'>RT-Thread</b>全球技术大会:<b class='flag-5'>在</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>编写测试用例

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南
    发表于 02-22 18:23 ?10次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手<b class='flag-5'>指南</b>

    上海线下培训:RT-Thread× HPM5300 for RT-Thread ,高性能 RISC-V 平台开发快速上手

    RT-Thread的代表性产品和服务。 同时,我们也邀请到的资深工程师杨帆,他将为开发者们带来期待已久的热门技术主题培训,RT-Thread
    的头像 发表于 11-03 19:10 ?1187次阅读
    上海线下培训:<b class='flag-5'>RT-Thread</b>×<b class='flag-5'>先</b><b class='flag-5'>楫</b>  HPM5300 for <b class='flag-5'>RT-Thread</b> ,高性能 RISC-V 平台<b class='flag-5'>开发</b>快速上手

    线下活动|HPM5300 for RT-Thread ,高性能 RISC-V 平台开发快速上手

    公司最新技术和创新解决方案的机会。参与者将深入了解半导体和RT-Thread的代表性产品和服务。同时,我们也邀请到的资深工程师杨帆老
    的头像 发表于 11-08 08:18 ?954次阅读
    线下活动|<b class='flag-5'>先</b><b class='flag-5'>楫</b>HPM5300 for <b class='flag-5'>RT-Thread</b> ,高性能 RISC-V 平台<b class='flag-5'>开发</b>快速上手

    半导体亮相2023 RDC RT-Thread开发者大会

    2023年12月23日,上海临港中心 - 国产高性能微控制器厂商上海半导体科技有限公司(半导体,HPMicro)携其高性能MCU产品
    的头像 发表于 12-25 17:18 ?1088次阅读

    RT-Thread BSP v1.4.0 正式发布

    亲爱的小伙伴们:我们很高兴地通知您,RT-ThreadBSPv1.4.0正式发布了!!1个小转变:从这个版本开始,我们将更侧重于利用RT-Thread丰富的组件以及特色的在线包,基
    的头像 发表于 02-19 12:20 ?1106次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b> <b class='flag-5'>RT-Thread</b> BSP v1.4.0 正式发布

    RT-Thread设备驱动开发指南》基础篇--以bsp的hwtimer设备为例

    一、概述(一)RT-Thread设备驱动《RT-Thread设备驱动开发指南》书籍是RT-thread官方出品撰写,系统讲解RT-threa
    的头像 发表于 02-24 08:16 ?2888次阅读
    《<b class='flag-5'>RT-Thread</b>设备驱动<b class='flag-5'>开发指南</b>》基础篇--以<b class='flag-5'>先</b><b class='flag-5'>楫</b>bsp的hwtimer设备为例

    半导体所有开发板已RT-Thread主线啦

    目前,半导体RT-Thread主线支持的开发板包含以下这些
    的头像 发表于 06-05 08:17 ?1127次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半导体所有<b class='flag-5'>开发</b>板已<b class='flag-5'>上</b><b class='flag-5'>RT-Thread</b>主线啦

    【好书推荐】RT-Thread设备驱动开发指南

    强烈,他们迫切地希望有一本可以指导他们RT-Thread开发驱动的指南。为了解决开发者的燃眉
    的头像 发表于 08-01 08:35 ?1470次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>设备驱动<b class='flag-5'>开发指南</b>

    Windows使用ENV工具开发基于MCURT-Thread应用

    前言Env是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menuconfig提供了简单易用的配置剪裁
    的头像 发表于 08-29 12:22 ?96次阅读
    Windows<b class='flag-5'>上</b>使用ENV工具<b class='flag-5'>开发</b>基于<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>MCU</b>的<b class='flag-5'>RT-Thread</b>应用